00001 /* $Id: ClpConstraintAmpl.hpp 1173 2009-06-04 09:44:10Z forrest $ */ 00002 // Copyright (C) 2007, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 #ifndef ClpConstraintAmpl_H 00005 #define ClpConstraintAmpl_H 00006 00007 #include "ClpConstraint.hpp" 00008 00009 //############################################################################# 00010 00015 class ClpConstraintAmpl : public ClpConstraint { 00016 00017 public: 00018 00020 00021 00022 00029 virtual int gradient(const ClpSimplex * model, 00030 const double * solution, 00031 double * gradient, 00032 double & functionValue , 00033 double & offset, 00034 bool useScaling = false, 00035 bool refresh = true) const ; 00037 virtual void resize(int newNumberColumns) ; 00039 virtual void deleteSome(int numberToDelete, const int * which) ; 00041 virtual void reallyScale(const double * columnScale) ; 00045 virtual int markNonlinear(char * which) const ; 00049 virtual int markNonzero(char * which) const; 00051 virtual void newXValues() ; 00053 00054 00056 00057 00058 ClpConstraintAmpl(); 00059 00061 ClpConstraintAmpl(int row, void * amplInfo); 00062 00065 ClpConstraintAmpl(const ClpConstraintAmpl & rhs); 00066 00068 ClpConstraintAmpl & operator=(const ClpConstraintAmpl& rhs); 00069 00071 virtual ~ClpConstraintAmpl (); 00072 00074 virtual ClpConstraint * clone() const; 00076 00077 00078 00079 virtual int numberCoefficients() const; 00081 inline const int * column() const { 00082 return column_; 00083 } 00085 inline const double * coefficient() const { 00086 return coefficient_; 00087 } 00089 00090 //--------------------------------------------------------------------------- 00091 00092 private: 00095 void * amplInfo_; 00097 int * column_; 00099 double * coefficient_; 00101 int numberCoefficients_; 00103 }; 00104 00105 #endif 00106