/build/buildd/coinor-cbc-2.5.0/Cbc/src/ClpConstraintAmpl.hpp
Go to the documentation of this file.
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