Clp 1.17.5
Loading...
Searching...
No Matches
ClpConstraintQuadratic.hpp
Go to the documentation of this file.
1/* $Id: ClpConstraintQuadratic.hpp 2385 2019-01-06 19:43:06Z unxusr $ */
2// Copyright (C) 2007, International Business Machines
3// Corporation and others. All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#ifndef ClpConstraintQuadratic_H
7#define ClpConstraintQuadratic_H
8
9#include "ClpConstraint.hpp"
10
11//#############################################################################
12
18
19public:
21
22
29 virtual int gradient(const ClpSimplex *model,
30 const double *solution,
31 double *gradient,
32 double &functionValue,
33 double &offset,
34 bool useScaling = false,
35 bool refresh = true) const;
37 virtual void resize(int newNumberColumns);
39 virtual void deleteSome(int numberToDelete, const int *which);
41 virtual void reallyScale(const double *columnScale);
45 virtual int markNonlinear(char *which) const;
49 virtual int markNonzero(char *which) const;
51
53
54
56
58 ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns,
59 const CoinBigIndex *start,
60 const int *column, const double *element);
61
65
68
71
73 virtual ClpConstraint *clone() const;
75
77
78 virtual int numberCoefficients() const;
80 inline int numberColumns() const
81 {
82 return numberColumns_;
83 }
85 inline CoinBigIndex *start() const
86 {
87 return start_;
88 }
90 inline const int *column() const
91 {
92 return column_;
93 }
95 inline const double *coefficient() const
96 {
97 return coefficient_;
98 }
100
101 //---------------------------------------------------------------------------
102
103private:
106 CoinBigIndex *start_;
118};
119
120#endif
121
122/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
123*/
Quadratic Constraint Class.
ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
Constructor from quadratic.
const double * coefficient() const
Coefficients.
CoinBigIndex * start() const
Column starts.
int numberQuadraticColumns_
Number of quadratic columns.
virtual void resize(int newNumberColumns)
Resize constraint.
int numberColumns_
Useful to have number of columns about.
virtual int markNonlinear(char *which) const
Given a zeroed array sets nonquadratic columns to 1.
virtual int markNonzero(char *which) const
Given a zeroed array sets possible nonzero coefficients to 1.
int numberColumns() const
Number of columns in constraint.
const int * column() const
Columns.
int numberCoefficients_
Number of coefficients in gradient.
virtual ClpConstraint * clone() const
Clone.
virtual void reallyScale(const double *columnScale)
Scale constraint.
virtual ~ClpConstraintQuadratic()
Destructor.
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in constraint.
ClpConstraintQuadratic(const ClpConstraintQuadratic &rhs)
Copy constructor .
int * column_
Column (if -1 then linear coefficient)
ClpConstraintQuadratic()
Default Constructor.
virtual int numberCoefficients() const
Number of coefficients.
double * coefficient_
Coefficients.
ClpConstraintQuadratic & operator=(const ClpConstraintQuadratic &rhs)
Assignment operator.
virtual int gradient(const ClpSimplex *model, const double *solution, double *gradient, double &functionValue, double &offset, bool useScaling=false, bool refresh=true) const
Fills gradient.
Constraint Abstract Base Class.
double offset() const
Constraint offset.
double functionValue() const
Stored constraint function value.
This solves LPs using the simplex method.