Clp  1.17.3
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 
19 public:
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 
56 
58  ClpConstraintQuadratic(int row, int numberQuadraticColumns, int numberColumns,
59  const CoinBigIndex *start,
60  const int *column, const double *element);
61 
65 
68 
70  virtual ~ClpConstraintQuadratic();
71 
73  virtual ClpConstraint *clone() const;
75 
77  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 
103 private:
106  CoinBigIndex *start_;
108  int *column_;
110  double *coefficient_;
112  int numberColumns_;
114  int numberCoefficients_;
116  int numberQuadraticColumns_;
118 };
119 
120 #endif
121 
122 /* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
123 */
ClpConstraintQuadratic()
Default Constructor.
virtual ClpConstraint * clone() const
Clone.
int numberColumns() const
Number of columns in constraint.
double functionValue() const
Stored constraint function value.
Constraint Abstract Base Class.
virtual void resize(int newNumberColumns)
Resize constraint.
virtual void deleteSome(int numberToDelete, const int *which)
Delete columns in constraint.
virtual ~ClpConstraintQuadratic()
Destructor.
This solves LPs using the simplex method.
Definition: ClpSimplex.hpp:106
virtual int markNonlinear(char *which) const
Given a zeroed array sets nonquadratic columns to 1.
virtual void reallyScale(const double *columnScale)
Scale constraint.
const double * coefficient() const
Coefficients.
int CoinBigIndex
virtual int numberCoefficients() const
Number of coefficients.
virtual int gradient(const ClpSimplex *model, const double *solution, double *gradient, double &functionValue, double &offset, bool useScaling=false, bool refresh=true) const
Fills gradient.
virtual int markNonzero(char *which) const
Given a zeroed array sets possible nonzero coefficients to 1.
double offset() const
Constraint offset.
ClpConstraintQuadratic & operator=(const ClpConstraintQuadratic &rhs)
Assignment operator.
CoinBigIndex * start() const
Column starts.
const int * column() const
Columns.
Quadratic Constraint Class.