00001
00002
00003
00004
00005
00006 #ifndef _ClpParameters_H
00007 #define _ClpParameters_H
00008
00012 enum ClpIntParam {
00015 ClpMaxNumIteration = 0,
00018 ClpMaxNumIterationHotStart,
00037 ClpNameDiscipline,
00040 ClpLastIntParam
00041 };
00042
00043 enum ClpDblParam {
00047 ClpDualObjectiveLimit,
00051 ClpPrimalObjectiveLimit,
00054 ClpDualTolerance,
00057 ClpPrimalTolerance,
00060 ClpObjOffset,
00062 ClpMaxSeconds,
00064 ClpMaxWallSeconds,
00066 ClpPresolveTolerance,
00069 ClpLastDblParam
00070 };
00071
00072
00073 enum ClpStrParam {
00076 ClpProbName = 0,
00079 ClpLastStrParam
00080 };
00081
00083 template <class T> inline void
00084 ClpDisjointCopyN( const T * array, const int size, T * newArray)
00085 {
00086 memcpy(reinterpret_cast<void *> (newArray), array, size * sizeof(T));
00087 }
00089 template <class T> inline void
00090 ClpFillN( T * array, const int size, T value)
00091 {
00092 int i;
00093 for (i = 0; i < size; i++)
00094 array[i] = value;
00095 }
00097 template <class T> inline T*
00098 ClpCopyOfArray( const T * array, const int size, T value)
00099 {
00100 T * arrayNew = new T[size];
00101 if (array)
00102 ClpDisjointCopyN(array, size, arrayNew);
00103 else
00104 ClpFillN ( arrayNew, size, value);
00105 return arrayNew;
00106 }
00107
00109 template <class T> inline T*
00110 ClpCopyOfArray( const T * array, const int size)
00111 {
00112 if (array) {
00113 T * arrayNew = new T[size];
00114 ClpDisjointCopyN(array, size, arrayNew);
00115 return arrayNew;
00116 } else {
00117 return NULL;
00118 }
00119 }
00121 typedef struct {
00122 int typeStruct;
00123 int typeCall;
00124 void * data;
00125 } ClpTrustedData;
00126 #endif