ClpObjective.hpp

Go to the documentation of this file.
00001 /* $Id: ClpObjective.hpp 1825 2011-11-20 16:02:57Z forrest $ */
00002 // Copyright (C) 2002, 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 ClpObjective_H
00007 #define ClpObjective_H
00008 
00009 
00010 //#############################################################################
00011 class ClpSimplex;
00012 class ClpModel;
00013 
00019 class ClpObjective  {
00020 
00021 public:
00022 
00024 
00025 
00032      virtual double * gradient(const ClpSimplex * model,
00033                                const double * solution,
00034                                double & offset, bool refresh,
00035                                int includeLinear = 2) = 0;
00038      virtual double reducedGradient(ClpSimplex * model, double * region,
00039                                     bool useFeasibleCosts) = 0;
00046      virtual double stepLength(ClpSimplex * model,
00047                                const double * solution,
00048                                const double * change,
00049                                double maximumTheta,
00050                                double & currentObj,
00051                                double & predictedObj,
00052                                double & thetaObj) = 0;
00054      virtual double objectiveValue(const ClpSimplex * model, const double * solution) const = 0;
00056      virtual void resize(int newNumberColumns) = 0;
00058      virtual void deleteSome(int numberToDelete, const int * which) = 0;
00060      virtual void reallyScale(const double * columnScale) = 0;
00064      virtual int markNonlinear(char * which);
00066      virtual void newXValues() {}
00068 
00069 
00071 
00072 
00073      ClpObjective();
00074 
00076      ClpObjective(const ClpObjective &);
00077 
00079      ClpObjective & operator=(const ClpObjective& rhs);
00080 
00082      virtual ~ClpObjective ();
00083 
00085      virtual ClpObjective * clone() const = 0;
00090      virtual ClpObjective * subsetClone (int numberColumns,
00091                                          const int * whichColumns) const;
00092 
00094 
00096 
00097 
00098      inline int type() const {
00099           return type_;
00100      }
00102      inline void setType(int value) {
00103           type_ = value;
00104      }
00106      inline int activated() const {
00107           return activated_;
00108      }
00110      inline void setActivated(int value) {
00111           activated_ = value;
00112      }
00113 
00115      inline double nonlinearOffset () const {
00116           return offset_;
00117      }
00119 
00120      //---------------------------------------------------------------------------
00121 
00122 protected:
00124 
00125 
00126      double offset_;
00128      int type_;
00130      int activated_;
00132 };
00133 
00134 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 28 Aug 2015 for Cgl by  doxygen 1.6.1