/build/buildd/clp-1.12.0/Clp/src/ClpLinearObjective.hpp
Go to the documentation of this file.
00001 /* $Id: ClpLinearObjective.hpp 1525 2010-02-26 17:27:59Z mjs $ */
00002 // Copyright (C) 2003, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 #ifndef ClpLinearObjective_H
00005 #define ClpLinearObjective_H
00006 
00007 #include "ClpObjective.hpp"
00008 
00009 //#############################################################################
00010 
00015 class ClpLinearObjective : public ClpObjective {
00016 
00017 public:
00018 
00020 
00021 
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