Clp trunk
ClpConstraintQuadratic.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 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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines