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 ClpConstraintQuadratic_H 00007 #define ClpConstraintQuadratic_H 00008 00009 #include "ClpConstraint.hpp" 00010 00011 //############################################################################# 00012 00017 class ClpConstraintQuadratic : 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 ClpConstraintQuadratic(); 00059 00061 ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns, 00062 const CoinBigIndex * start, 00063 const int * column, const double * element); 00064 00067 ClpConstraintQuadratic(const ClpConstraintQuadratic & rhs); 00068 00070 ClpConstraintQuadratic & operator=(const ClpConstraintQuadratic& rhs); 00071 00073 virtual ~ClpConstraintQuadratic (); 00074 00076 virtual ClpConstraint * clone() const; 00078 00079 00080 00081 virtual int numberCoefficients() const; 00083 inline int numberColumns() const { 00084 return numberColumns_; 00085 } 00087 inline CoinBigIndex * start() const { 00088 return start_; 00089 } 00091 inline const int * column() const { 00092 return column_; 00093 } 00095 inline const double * coefficient() const { 00096 return coefficient_; 00097 } 00099 00100 //--------------------------------------------------------------------------- 00101 00102 private: 00105 CoinBigIndex * start_; 00107 int * column_; 00109 double * coefficient_; 00111 int numberColumns_; 00113 int numberCoefficients_; 00115 int numberQuadraticColumns_; 00117 }; 00118 00119 #endif