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 double objectiveValue(const ClpSimplex * model, const double * solution) const ;
00050 virtual void resize(int newNumberColumns) ;
00052 virtual void deleteSome(int numberToDelete, const int * which) ;
00054 virtual void reallyScale(const double * columnScale) ;
00055
00057
00058
00060
00061
00062 ClpLinearObjective();
00063
00065 ClpLinearObjective(const double * objective, int numberColumns);
00066
00068 ClpLinearObjective(const ClpLinearObjective &);
00072 ClpLinearObjective (const ClpLinearObjective &rhs,int numberColumns,
00073 const int * whichColumns) ;
00074
00076 ClpLinearObjective & operator=(const ClpLinearObjective& rhs);
00077
00079 virtual ~ClpLinearObjective ();
00080
00082 virtual ClpObjective * clone() const;
00086 virtual ClpObjective * subsetClone (int numberColumns,
00087 const int * whichColumns) const;
00088
00090
00091
00092
00093 private:
00096 double * objective_;
00098 int numberColumns_;
00100 };
00101
00102 #endif