Clp trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2003, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef ClpLinearObjective_H 00007 #define ClpLinearObjective_H 00008 00009 #include "ClpObjective.hpp" 00010 00011 //############################################################################# 00012 00017 class ClpLinearObjective : public ClpObjective { 00018 00019 public: 00020 00022 00023 00028 virtual double * gradient(const ClpSimplex * model, 00029 const double * solution, double & offset, bool refresh, 00030 int includeLinear = 2); 00033 virtual double reducedGradient(ClpSimplex * model, double * region, 00034 bool useFeasibleCosts); 00041 virtual double stepLength(ClpSimplex * model, 00042 const double * solution, 00043 const double * change, 00044 double maximumTheta, 00045 double & currentObj, 00046 double & predictedObj, 00047 double & thetaObj); 00049 virtual double objectiveValue(const ClpSimplex * model, const double * solution) const ; 00051 virtual void resize(int newNumberColumns) ; 00053 virtual void deleteSome(int numberToDelete, const int * which) ; 00055 virtual void reallyScale(const double * columnScale) ; 00056 00058 00059 00061 00062 00063 ClpLinearObjective(); 00064 00066 ClpLinearObjective(const double * objective, int numberColumns); 00067 00069 ClpLinearObjective(const ClpLinearObjective &); 00073 ClpLinearObjective (const ClpLinearObjective &rhs, int numberColumns, 00074 const int * whichColumns) ; 00075 00077 ClpLinearObjective & operator=(const ClpLinearObjective& rhs); 00078 00080 virtual ~ClpLinearObjective (); 00081 00083 virtual ClpObjective * clone() const; 00087 virtual ClpObjective * subsetClone (int numberColumns, 00088 const int * whichColumns) const; 00089 00091 00092 //--------------------------------------------------------------------------- 00093 00094 private: 00097 double * objective_; 00099 int numberColumns_; 00101 }; 00102 00103 #endif