Clp trunk
ClpConstraintLinear.hpp
Go to the documentation of this file.
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 ClpConstraintLinear_H
00007 #define ClpConstraintLinear_H
00008 
00009 #include "ClpConstraint.hpp"
00010 
00011 //#############################################################################
00012 
00017 class ClpConstraintLinear : 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      ClpConstraintLinear();
00059 
00061      ClpConstraintLinear(int row, int numberCoefficients, int numberColumns,
00062                          const int * column, const double * element);
00063 
00066      ClpConstraintLinear(const ClpConstraintLinear & rhs);
00067 
00069      ClpConstraintLinear & operator=(const ClpConstraintLinear& rhs);
00070 
00072      virtual ~ClpConstraintLinear ();
00073 
00075      virtual ClpConstraint * clone() const;
00077 
00078 
00079 
00080      virtual int numberCoefficients() const;
00082      inline int numberColumns() const {
00083           return numberColumns_;
00084      }
00086      inline const int * column() const {
00087           return column_;
00088      }
00090      inline const double * coefficient() const {
00091           return coefficient_;
00092      }
00094 
00095      //---------------------------------------------------------------------------
00096 
00097 private:
00100      int * column_;
00102      double * coefficient_;
00104      int numberColumns_;
00106      int numberCoefficients_;
00108 };
00109 
00110 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines