- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Clp-1.5.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