00001
00002
00003
00004 #ifndef _ClpParameters_H
00005 #define _ClpParameters_H
00006
00010 enum ClpIntParam {
00013 ClpMaxNumIteration = 0,
00016 ClpMaxNumIterationHotStart,
00019 ClpLastIntParam
00020 };
00021
00022 enum ClpDblParam {
00026 ClpDualObjectiveLimit,
00030 ClpPrimalObjectiveLimit,
00033 ClpDualTolerance,
00036 ClpPrimalTolerance,
00039 ClpObjOffset,
00041 ClpMaxSeconds,
00044 ClpLastDblParam
00045 };
00046
00047
00048 enum ClpStrParam {
00051 ClpProbName = 0,
00054 ClpLastStrParam
00055 };
00056
00058 template <class T> inline void
00059 ClpDisjointCopyN( const T * array, const int size, T * newArray)
00060 {
00061 memcpy((void *) newArray,array,size*sizeof(T));
00062 }
00064 template <class T> inline void
00065 ClpFillN( T * array, const int size, T value)
00066 {
00067 int i;
00068 for (i=0;i<size;i++)
00069 array[i]=value;
00070 }
00072 template <class T> inline T*
00073 ClpCopyOfArray( const T * array, const int size, T value)
00074 {
00075 T * arrayNew = new T[size];
00076 if (array)
00077 ClpDisjointCopyN(array,size,arrayNew);
00078 else
00079 ClpFillN ( arrayNew, size,value);
00080 return arrayNew;
00081 }
00082
00084 template <class T> inline T*
00085 ClpCopyOfArray( const T * array, const int size)
00086 {
00087 if (array) {
00088 T * arrayNew = new T[size];
00089 ClpDisjointCopyN(array,size,arrayNew);
00090 return arrayNew;
00091 } else {
00092 return NULL;
00093 }
00094 }
00095 #endif