- Main Page
- Namespaces
- Classes
- Files
- Directories

- Search for |

- File List
- File Members

# ClpQuadraticObjective.hpp

Go to the documentation of this file.

    00001 /* $Id: ClpQuadraticObjective.hpp 1665 2011-01-04 17:55:54Z lou $ */
    00002 // Copyright (C) 2003, 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 ClpQuadraticObjective_H
    00007 #define ClpQuadraticObjective_H
    00008
    00009 #include "ClpObjective.hpp"
    00010 #include "CoinPackedMatrix.hpp"
    00011
    00012 //#############################################################################
    00013
    00018 class ClpQuadraticObjective : public ClpObjective {
    00019
    00020 public:
    00021
    00023
    00024
    00031      virtual double * gradient(const ClpSimplex * model,
    00032                                const double * solution, double & offset, bool refresh,
    00033                                int includeLinear = 2);
    00035
    00037      virtual double reducedGradient(ClpSimplex * model, double * region,
    00038                                     bool useFeasibleCosts);
    00045      virtual double stepLength(ClpSimplex * model,
    00046                                const double * solution,
    00047                                const double * change,
    00048                                double maximumTheta,
    00049                                double & currentObj,
    00050                                double & predictedObj,
    00051                                double & thetaObj);
    00053      virtual double objectiveValue(const ClpSimplex * model, const double * solution) const ;
    00054      virtual void resize(int newNumberColumns) ;
    00056      virtual void deleteSome(int numberToDelete, const int * which) ;
    00058      virtual void reallyScale(const double * columnScale) ;
    00062      virtual int markNonlinear(char * which);
    00063
    00065
    00066
    00068
    00069
    00070      ClpQuadraticObjective();
    00071
    00073      ClpQuadraticObjective(const double * linearObjective, int numberColumns,
    00074                            const CoinBigIndex * start,
    00075                            const int * column, const double * element,
    00076                            int numberExtendedColumns_ = -1);
    00077
    00082      ClpQuadraticObjective(const ClpQuadraticObjective & rhs, int type = 0);
    00086      ClpQuadraticObjective (const ClpQuadraticObjective &rhs, int numberColumns,
    00087                             const int * whichColumns) ;
    00088
    00090      ClpQuadraticObjective & operator=(const ClpQuadraticObjective& rhs);
    00091
    00093      virtual ~ClpQuadraticObjective ();
    00094
    00096      virtual ClpObjective * clone() const;
    00100      virtual ClpObjective * subsetClone (int numberColumns,
    00101                                          const int * whichColumns) const;
    00102
    00104      void loadQuadraticObjective(const int numberColumns,
    00105                                  const CoinBigIndex * start,
    00106                                  const int * column, const double * element,
    00107                                  int numberExtendedColumns = -1);
    00108      void loadQuadraticObjective (  const CoinPackedMatrix& matrix);
    00110      void deleteQuadraticObjective();
    00112
    00113
    00114
    00115      inline CoinPackedMatrix * quadraticObjective() const     {
    00116           return quadraticObjective_;
    00117      }
    00119      inline double * linearObjective() const     {
    00120           return objective_;
    00121      }
    00123      inline int numberExtendedColumns() const {
    00124           return numberExtendedColumns_;
    00125      }
    00127      inline int numberColumns() const {
    00128           return numberColumns_;
    00129      }
    00131      inline bool fullMatrix() const {
    00132           return fullMatrix_;
    00133      }
    00135
    00136      //---------------------------------------------------------------------------
    00137
    00138 private:
    00141      CoinPackedMatrix * quadraticObjective_;
    00143      double * objective_;
    00145      double * gradient_;
    00147      int numberColumns_;
    00149      int numberExtendedColumns_;
    00151      bool fullMatrix_;
    00153 };
    00154
    00155 #endif