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 ClpPresolveTolerance,
00067 ClpLastDblParam
00068 };
00069
00070
00071 enum ClpStrParam {
00074 ClpProbName = 0,
00077 ClpLastStrParam
00078 };
00079
00081 template <class T> inline void
00082 ClpDisjointCopyN( const T * array, const int size, T * newArray)
00083 {
00084 memcpy(reinterpret_cast<void *> (newArray), array, size * sizeof(T));
00085 }
00087 template <class T> inline void
00088 ClpFillN( T * array, const int size, T value)
00089 {
00090 int i;
00091 for (i = 0; i < size; i++)
00092 array[i] = value;
00093 }
00095 template <class T> inline T*
00096 ClpCopyOfArray( const T * array, const int size, T value)
00097 {
00098 T * arrayNew = new T[size];
00099 if (array)
00100 ClpDisjointCopyN(array, size, arrayNew);
00101 else
00102 ClpFillN ( arrayNew, size, value);
00103 return arrayNew;
00104 }
00105
00107 template <class T> inline T*
00108 ClpCopyOfArray( const T * array, const int size)
00109 {
00110 if (array) {
00111 T * arrayNew = new T[size];
00112 ClpDisjointCopyN(array, size, arrayNew);
00113 return arrayNew;
00114 } else {
00115 return NULL;
00116 }
00117 }
00119 typedef struct {
00120 int typeStruct;
00121 int typeCall;
00122 void * data;
00123 } ClpTrustedData;
00124 #endif