/home/coin/SVN-release/CoinAll-1.1.0/Clp/src/ClpObjective.hpp

Go to the documentation of this file.
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 class ClpSimplex;
00009 class ClpModel;
00010 
00016 class ClpObjective  {
00017   
00018 public:
00019   
00021 
00022   
00029   virtual double * gradient(const ClpSimplex * model,
00030                             const double * solution,
00031                             double & offset,bool refresh,
00032                             int includeLinear=2)=0;
00035   virtual double reducedGradient(ClpSimplex * model, double * region,
00036                                  bool useFeasibleCosts)=0;
00043   virtual double stepLength(ClpSimplex * model,
00044                             const double * solution,
00045                             const double * change,
00046                             double maximumTheta,
00047                             double & currentObj,
00048                             double & predictedObj,
00049                             double & thetaObj)=0;
00051   virtual double objectiveValue(const ClpSimplex * model, const double * solution) const = 0;
00053   virtual void resize(int newNumberColumns) = 0; 
00055   virtual void deleteSome(int numberToDelete, const int * which) = 0; 
00057   virtual void reallyScale(const double * columnScale) =0;
00061   virtual int markNonlinear(char * which);
00063   virtual void newXValues() {}
00065   
00066   
00068 
00069 
00070   ClpObjective(); 
00071   
00073   ClpObjective(const ClpObjective &);
00074   
00076   ClpObjective & operator=(const ClpObjective& rhs);
00077   
00079   virtual ~ClpObjective ();
00080 
00082   virtual ClpObjective * clone() const = 0;
00087   virtual ClpObjective * subsetClone (int numberColumns, 
00088                                       const int * whichColumns) const;
00089  
00091 
00093 
00094 
00095   inline int type()
00096   { return type_;}
00098   inline int activated() const
00099   {return activated_;}
00101   inline void setActivated(int value)
00102   {activated_=value;}
00103   
00105   inline double nonlinearOffset () const
00106   { return offset_;}
00108 
00109   //---------------------------------------------------------------------------
00110   
00111 protected:
00113 
00114 
00115   double offset_;
00117   int type_;
00119   int activated_;
00121 };
00122 
00123 #endif

Generated on Sun Nov 14 14:06:32 2010 for Coin-All by  doxygen 1.4.7