Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

ClpQuadraticObjective.hpp

00001 // Copyright (C) 2003, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef ClpQuadraticObjective_H
00004 #define ClpQuadraticObjective_H
00005 
00006 #include "ClpObjective.hpp"
00007 #include "CoinPackedMatrix.hpp"
00008 
00009 //#############################################################################
00010 
00015 class ClpQuadraticObjective : public ClpObjective {
00016   
00017 public:
00018   
00020 
00021   
00026   virtual double * gradient(const double * solution, double & offset,bool refresh);
00028   virtual void resize(int newNumberColumns) ; 
00030   virtual void deleteSome(int numberToDelete, const int * which) ; 
00031   
00033   
00034   
00036 
00037 
00038   ClpQuadraticObjective(); 
00039   
00041   ClpQuadraticObjective(const double * linearObjective, int numberColumns,
00042                         const CoinBigIndex * start,
00043                         const int * column, const double * element,
00044                         int numberExtendedColumns_=-1);
00045   
00047   ClpQuadraticObjective(const ClpQuadraticObjective &);
00051   ClpQuadraticObjective (const ClpQuadraticObjective &rhs,int numberColumns, 
00052                                       const int * whichColumns) ;
00053   
00055   ClpQuadraticObjective & operator=(const ClpQuadraticObjective& rhs);
00056   
00058   virtual ~ClpQuadraticObjective ();
00059 
00061   virtual ClpObjective * clone() const;
00065   virtual ClpObjective * subsetClone (int numberColumns, 
00066                                       const int * whichColumns) const;
00067  
00069   void loadQuadraticObjective(const int numberColumns, 
00070                               const CoinBigIndex * start,
00071                               const int * column, const double * element,
00072                               int numberExtendedColumns=-1);
00073   void loadQuadraticObjective (  const CoinPackedMatrix& matrix);
00075   void deleteQuadraticObjective();
00077 
00078 
00079 
00080    inline CoinPackedMatrix * quadraticObjective() const     { return quadraticObjective_; }
00082    inline double * linearObjective() const     { return objective_; }
00084   inline int numberExtendedColumns() const
00085   {return numberExtendedColumns_;};
00087   inline int numberColumns() const
00088   {return numberColumns_;};
00090 
00091   //---------------------------------------------------------------------------
00092   
00093 private:
00096   CoinPackedMatrix * quadraticObjective_;
00098   double * objective_;
00100   double * gradient_;
00102   int numberColumns_;
00104   int numberExtendedColumns_;
00106 };
00107 
00108 #endif

Generated on Wed Dec 3 14:37:31 2003 for CLP by doxygen 1.3.5