Cbc
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 ClpConstraintAmpl_H 00007 #define ClpConstraintAmpl_H 00008 00009 #include "ClpConstraint.hpp" 00010 00011 //############################################################################# 00012 00017 class ClpConstraintAmpl : 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 virtual void newXValues() ; 00055 00056 00058 00059 00060 ClpConstraintAmpl(); 00061 00063 ClpConstraintAmpl(int row, void * amplInfo); 00064 00067 ClpConstraintAmpl(const ClpConstraintAmpl & rhs); 00068 00070 ClpConstraintAmpl & operator=(const ClpConstraintAmpl& rhs); 00071 00073 virtual ~ClpConstraintAmpl (); 00074 00076 virtual ClpConstraint * clone() const; 00078 00079 00080 00081 virtual int numberCoefficients() const; 00083 inline const int * column() const { 00084 return column_; 00085 } 00087 inline const double * coefficient() const { 00088 return coefficient_; 00089 } 00091 00092 //--------------------------------------------------------------------------- 00093 00094 private: 00097 void * amplInfo_; 00099 int * column_; 00101 double * coefficient_; 00103 int numberCoefficients_; 00105 }; 00106 00107 #endif 00108