00001
00002
00003 #ifndef ClpLinearObjective_H
00004 #define ClpLinearObjective_H
00005
00006 #include "ClpObjective.hpp"
00007
00008
00009
00014 class ClpLinearObjective : public ClpObjective {
00015
00016 public:
00017
00019
00020
00027 virtual double * gradient(const ClpSimplex * model,
00028 const double * solution, double & offset,bool refresh,
00029 int includeLinear=2);
00032 virtual double reducedGradient(ClpSimplex * model, double * region,
00033 bool useFeasibleCosts);
00040 virtual double stepLength(ClpSimplex * model,
00041 const double * solution,
00042 const double * change,
00043 double maximumTheta,
00044 double & currentObj,
00045 double & predictedObj,
00046 double & thetaObj);
00048 virtual void resize(int newNumberColumns) ;
00050 virtual void deleteSome(int numberToDelete, const int * which) ;
00052 virtual void reallyScale(const double * columnScale) ;
00053
00055
00056
00058
00059
00060 ClpLinearObjective();
00061
00063 ClpLinearObjective(const double * objective, int numberColumns);
00064
00066 ClpLinearObjective(const ClpLinearObjective &);
00070 ClpLinearObjective (const ClpLinearObjective &rhs,int numberColumns,
00071 const int * whichColumns) ;
00072
00074 ClpLinearObjective & operator=(const ClpLinearObjective& rhs);
00075
00077 virtual ~ClpLinearObjective ();
00078
00080 virtual ClpObjective * clone() const;
00084 virtual ClpObjective * subsetClone (int numberColumns,
00085 const int * whichColumns) const;
00086
00088
00089
00090
00091 private:
00094 double * objective_;
00096 int numberColumns_;
00098 };
00099
00100 #endif