00001
00002
00003 #ifndef ClpConstraintQuadratic_H
00004 #define ClpConstraintQuadratic_H
00005
00006 #include "ClpConstraint.hpp"
00007
00008
00009
00014 class ClpConstraintQuadratic : 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 ClpConstraintQuadratic();
00056
00058 ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns,
00059 const CoinBigIndex * start,
00060 const int * column, const double * element);
00061
00064 ClpConstraintQuadratic(const ClpConstraintQuadratic & rhs);
00065
00067 ClpConstraintQuadratic & operator=(const ClpConstraintQuadratic& rhs);
00068
00070 virtual ~ClpConstraintQuadratic ();
00071
00073 virtual ClpConstraint * clone() const;
00075
00076
00077
00078 virtual int numberCoefficients() const;
00080 inline int numberColumns() const
00081 {return numberColumns_;}
00083 inline CoinBigIndex * start() const
00084 { return start_;}
00086 inline const int * column() const
00087 { return column_;}
00089 inline const double * coefficient() const
00090 { return coefficient_;}
00092
00093
00094
00095 private:
00098 CoinBigIndex * start_;
00100 int * column_;
00102 double * coefficient_;
00104 int numberColumns_;
00106 int numberCoefficients_;
00108 int numberQuadraticColumns_;
00110 };
00111
00112 #endif