00001 // Copyright (C) 2002, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 #ifndef ClpObjective_H 00004 #define ClpObjective_H 00005 00006 00007 //############################################################################# 00008 00015 class ClpObjective { 00016 00017 public: 00018 00020 00021 00026 virtual double * gradient(const double * solution, double & offset,bool refresh) = 0; 00028 virtual void resize(int newNumberColumns) = 0; 00030 virtual void deleteSome(int numberToDelete, const int * which) = 0; 00032 00033 00035 00036 00037 ClpObjective(); 00038 00040 ClpObjective(const ClpObjective &); 00041 00043 ClpObjective & operator=(const ClpObjective& rhs); 00044 00046 virtual ~ClpObjective (); 00047 00049 virtual ClpObjective * clone() const = 0; 00054 virtual ClpObjective * subsetClone (int numberColumns, 00055 const int * whichColumns) const; 00056 00058 00060 00061 00062 inline int type() 00063 { return type_;}; 00064 00066 00067 //--------------------------------------------------------------------------- 00068 00069 protected: 00071 00072 00073 int type_; 00075 }; 00076 00077 #endif