Clp trunk
|
00001 /* $Id$ */ 00002 // Copyright (C) 2007, 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 ClpConstraintLinear_H 00007 #define ClpConstraintLinear_H 00008 00009 #include "ClpConstraint.hpp" 00010 00011 //############################################################################# 00012 00017 class ClpConstraintLinear : public ClpConstraint { 00018 00019 public: 00020 00022 00023 00024 00031 virtual int gradient(const ClpSimplex * model, 00032 const double * solution, 00033 double * gradient, 00034 double & functionValue , 00035 double & offset, 00036 bool useScaling = false, 00037 bool refresh = true) const ; 00039 virtual void resize(int newNumberColumns) ; 00041 virtual void deleteSome(int numberToDelete, const int * which) ; 00043 virtual void reallyScale(const double * columnScale) ; 00047 virtual int markNonlinear(char * which) const ; 00051 virtual int markNonzero(char * which) const; 00053 00054 00056 00057 00058 ClpConstraintLinear(); 00059 00061 ClpConstraintLinear(int row, int numberCoefficients, int numberColumns, 00062 const int * column, const double * element); 00063 00066 ClpConstraintLinear(const ClpConstraintLinear & rhs); 00067 00069 ClpConstraintLinear & operator=(const ClpConstraintLinear& rhs); 00070 00072 virtual ~ClpConstraintLinear (); 00073 00075 virtual ClpConstraint * clone() const; 00077 00078 00079 00080 virtual int numberCoefficients() const; 00082 inline int numberColumns() const { 00083 return numberColumns_; 00084 } 00086 inline const int * column() const { 00087 return column_; 00088 } 00090 inline const double * coefficient() const { 00091 return coefficient_; 00092 } 00094 00095 //--------------------------------------------------------------------------- 00096 00097 private: 00100 int * column_; 00102 double * coefficient_; 00104 int numberColumns_; 00106 int numberCoefficients_; 00108 }; 00109 00110 #endif