00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ClpSimplexNonlinear_H
00012 #define ClpSimplexNonlinear_H
00013
00014 class ClpNonlinearInfo;
00015 class ClpQuadraticObjective;
00016 class ClpConstraint;
00017
00018 #include "ClpSimplexPrimal.hpp"
00019
00028 class ClpSimplexNonlinear : public ClpSimplexPrimal {
00029
00030 public:
00031
00038
00039 int primal();
00044 int primalSLP(int numberPasses, double deltaTolerance,
00045 int otherOptions=0);
00047 int primalDualCuts(char * rowsIn, int startUp, int algorithm);
00053 int primalSLP(int numberConstraints, ClpConstraint ** constraints,
00054 int numberPasses, double deltaTolerance);
00055
00061 void directionVector (CoinIndexedVector * longArray,
00062 CoinIndexedVector * spare1, CoinIndexedVector * spare2,
00063 int mode,
00064 double & normFlagged, double & normUnflagged,
00065 int & numberNonBasic);
00067 int whileIterating (int & pivotMode);
00080 int pivotColumn(CoinIndexedVector * longArray,
00081 CoinIndexedVector * rowArray,
00082 CoinIndexedVector * columnArray,
00083 CoinIndexedVector * spare,
00084 int & pivotMode,
00085 double & solutionError,
00086 double * array1);
00096 void statusOfProblemInPrimal(int & lastCleaned, int type,
00097 ClpSimplexProgress * progress,
00098 bool doFactorization,
00099 double & bestObjectiveWhenFlagged);
00112 int pivotNonlinearResult();
00114
00115 };
00116 #endif
00117