00001
00002
00003 #ifndef ClpConstraintLinear_H
00004 #define ClpConstraintLinear_H
00005
00006 #include "ClpConstraint.hpp"
00007
00008
00009
00014 class ClpConstraintLinear : public ClpConstraint {
00015
00016 public:
00017
00019
00020
00021
00028 virtual int gradient(const ClpSimplex * model,
00029 const double * solution,
00030 double * gradient,
00031 double & functionValue ,
00032 double & offset,
00033 bool useScaling=false,
00034 bool refresh=true) const ;
00036 virtual void resize(int newNumberColumns) ;
00038 virtual void deleteSome(int numberToDelete, const int * which) ;
00040 virtual void reallyScale(const double * columnScale) ;
00044 virtual int markNonlinear(char * which) const ;
00048 virtual int markNonzero(char * which) const;
00050
00051
00053
00054
00055 ClpConstraintLinear();
00056
00058 ClpConstraintLinear(int row, int numberCoefficients, int numberColumns,
00059 const int * column, const double * element);
00060
00063 ClpConstraintLinear(const ClpConstraintLinear & rhs);
00064
00066 ClpConstraintLinear & operator=(const ClpConstraintLinear& rhs);
00067
00069 virtual ~ClpConstraintLinear ();
00070
00072 virtual ClpConstraint * clone() const;
00074
00075
00076
00077 virtual int numberCoefficients() const;
00079 inline int numberColumns() const
00080 {return numberColumns_;}
00082 inline const int * column() const
00083 { return column_;}
00085 inline const double * coefficient() const
00086 { return coefficient_;}
00088
00089
00090
00091 private:
00094 int * column_;
00096 double * coefficient_;
00098 int numberColumns_;
00100 int numberCoefficients_;
00102 };
00103
00104 #endif