6 #ifndef ClpQuadraticObjective_H
7 #define ClpQuadraticObjective_H
10 #include "CoinPackedMatrix.hpp"
32 const double * solution,
double & offset,
bool refresh,
33 int includeLinear = 2);
38 bool useFeasibleCosts);
46 const double * solution,
47 const double * change,
50 double & predictedObj,
54 virtual void resize(
int newNumberColumns) ;
56 virtual void deleteSome(
int numberToDelete,
const int * which) ;
58 virtual void reallyScale(
const double * columnScale) ;
74 const CoinBigIndex * start,
75 const int * column,
const double * element,
76 int numberExtendedColumns_ = -1);
87 const int * whichColumns) ;
101 const int * whichColumns)
const;
105 const CoinBigIndex * start,
106 const int * column,
const double * element,
116 return quadraticObjective_;
124 return numberExtendedColumns_;
128 return numberColumns_;
141 CoinPackedMatrix * quadraticObjective_;
149 int numberExtendedColumns_;
virtual ClpObjective * clone() const
Clone.
virtual void resize(int newNumberColumns)
Resize objective.
virtual double * gradient(const ClpSimplex *model, const double *solution, double &offset, bool refresh, int includeLinear=2)
Returns gradient.
Quadratic Objective Class.
virtual ClpObjective * subsetClone(int numberColumns, const int *whichColumns) const
Subset clone.
virtual double objectiveValue(const ClpSimplex *model, const double *solution) const
Return objective value (without any ClpModel offset) (model may be NULL)
virtual void reallyScale(const double *columnScale)
Scale objective.
void deleteQuadraticObjective()
Get rid of quadratic objective.
int numberColumns() const
Number of columns in quadratic objective.
Objective Abstract Base Class.
ClpQuadraticObjective & operator=(const ClpQuadraticObjective &rhs)
Assignment operator.
virtual double stepLength(ClpSimplex *model, const double *solution, const double *change, double maximumTheta, double ¤tObj, double &predictedObj, double &thetaObj)
Returns step length which gives minimum of objective for solution + theta * change vector up to maxim...
virtual ~ClpQuadraticObjective()
Destructor.
int numberExtendedColumns() const
Length of linear objective which could be bigger.
This solves LPs using the simplex method.
int type() const
Returns type (above 63 is extra information)
void loadQuadraticObjective(const int numberColumns, const CoinBigIndex *start, const int *column, const double *element, int numberExtendedColumns=-1)
Load up quadratic objective.
bool fullMatrix() const
If a full or half matrix.
virtual double reducedGradient(ClpSimplex *model, double *region, bool useFeasibleCosts)
Resize objective.
ClpQuadraticObjective()
Default Constructor.
virtual int markNonlinear(char *which)
Given a zeroed array sets nonlinear columns to 1.
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in objective.
CoinPackedMatrix * quadraticObjective() const
Quadratic objective.
double * linearObjective() const
Linear objective.