00001
00002
00003
00004
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