Initializing help system before first use

QuadExpression

A quadratic expression that represents its data by a collection of terms. More...

#include <xpress_objects.hpp>

Inheritance diagram for xpress::objects::QuadExpression:
xpress::objects::AbstractExpression xpress::objects::Expression xpress::objects::QuadTermList xpress::objects::QuadTermMap

Public Member Functions

virtual auto  addConstant (double c) -> QuadExpression &
  Add a value to the constant term of this expression.
 
virtual auto  addTerm (double const &coefficient, Variable const &variable) -> QuadExpression &
  Add a term to this expression.
 
virtual auto  addTerm (double const &coefficient, Variable const &variable1, Variable const &variable2) -> QuadExpression &
  Add a term to this expression.
 
auto  addTerm (LinTerm const &term) -> QuadExpression &
  Add term to this expression.
 
auto  addTerm (QuadTerm const &term) -> QuadExpression &
  Add term to this expression.
 
virtual auto  addTerm (Variable const &variable, double const &coefficient) -> QuadExpression &
  Add a term to this expression.
 
virtual auto  addTerm (Variable const &variable1, Variable const &variable2, double const &coefficient) -> QuadExpression &
  Add a term to this expression.
 
virtual auto  addTerm (Variable const &x) -> QuadExpression &
  Add term 1.0*x to this expression.
 
virtual auto  addTerm (Variable const &x1, Variable const &x2) -> QuadExpression &
  Add term 1.0*x1*x2 to this expression.
 
virtual auto  addTerms (LinExpression const &expr) -> QuadExpression &
  Add another linear expression to this expression.
 
virtual auto  addTerms (LinExpression const &expr, double const &factor) -> QuadExpression &
  Add another linear expression to this expression.
 
virtual auto  addTerms (QuadExpression const &expr) -> QuadExpression &
  Add another quadratic expression to this expression.
 
virtual auto  addTerms (QuadExpression const &expr, double const &factor) -> QuadExpression &
  Add another quadratic expression to this expression.
 
template<typename Strm0 , typename Strm1 , typename Strm0IsStream = typename std::enable_if<xpress::is_stream<Strm0>::value>::type, typename Strm1IsStream = typename std::enable_if<xpress::is_stream<Strm1>::value>::type>
auto  addTerms (Strm0 const &variables, Strm1 const &coefficients) -> QuadExpression &
  Add multiple linear terms to this expression.
 
template<typename Strm0 , typename Strm1 , typename Strm2 , typename Strm0IsStream = typename std::enable_if<xpress::is_stream<Strm0>::value>::type, typename Strm1IsStream = typename std::enable_if<xpress::is_stream<Strm1>::value>::type, typename Strm2IsStream = typename std::enable_if<xpress::is_stream<Strm2>::value>::type>
auto  addTerms (Strm0 const &variables1, Strm1 const &variables2, Strm2 const &coefficients) -> QuadExpression &
  Add multiple quadratic terms to this expression.
 
auto  addTerms (xpress::SizedArray< Variable const > const &variables, xpress::SizedArray< double const > const &coefficients, int offset, int count) -> QuadExpression &
  Add multiple terms to this expression.
 
auto  addTerms (xpress::SizedArray< Variable const > const &variables1, xpress::SizedArray< Variable const > const &variables2, xpress::SizedArray< double const > const &coefficients, int offset, int count) -> QuadExpression &
  Add multiple terms to this expression.
 
virtual auto  deepCopy () -> xpress::objects::QuadExpression
  Get a deep copy of this expression.
 
virtual auto  deepCopy (double factor) -> xpress::objects::QuadExpression
  Get a deep copy of this expression multiplied by a constant.
 
virtual auto  getConstant () const -> double
  Get the constant value in this expression.
 
virtual auto  reset () -> QuadExpression &
  Clear this expression.
 
virtual auto  setConstant (double c) -> QuadExpression &
  Set the constant term in this expression.
 
 Public Member Functions inherited from xpress::objects::AbstractExpression
virtual auto  eq (double rhs) const -> xpress::objects::InequalityDefinition override
  Create an "equals" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
virtual auto  eq (Expression const &rhs) const -> xpress::objects::InequalityDefinition override
  Create an "equals" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
virtual auto  geq (double rhs) const -> xpress::objects::InequalityDefinition override
  Create a "greater than or equal" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
virtual auto  geq (Expression const &rhs) const -> xpress::objects::InequalityDefinition override
  Create a "greater than or equal" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
virtual auto  in (double lb, double ub) -> xpress::objects::InequalityDefinition override
  Create a range constraint that bounds this expression from below and above.
Parameters
lb Lower bound for this expression.
ub Upper bound for this expression.
Returns
The constraint.
Since
44.00

 
virtual auto  leq (double rhs) const -> xpress::objects::InequalityDefinition override
  Create a "less than or equal" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
virtual auto  leq (Expression const &rhs) const -> xpress::objects::InequalityDefinition override
  Create a "less than or equal" constraint with this expression as left-hand side.
Parameters
rhs Right-hand side of constraint.
Returns
The constraint.
Since
44.00

 
 Public Member Functions inherited from xpress::objects::Expression
virtual auto  div (double arg) const -> xpress::objects::Expression
  Create a expression that represents the quotient of this and arg.
 
virtual auto  div (Expression arg) const -> xpress::objects::Expression
  Create a expression that represents the quotient of this and arg.
 
virtual auto  evaluate (xpress::SizedArray< double const > const &solution) const -> double
  Compute the value of this expression with respect to the given solution vector (which is not required to be feasible).
 
virtual auto  minus (double arg) const -> xpress::objects::Expression
  Create a expression that represents the difference of this and arg.
 
virtual auto  minus (xpress::objects::Expression arg) const -> xpress::objects::Expression
  Create a expression that represents the difference of this and arg.
 
virtual auto  mul (double arg) const -> xpress::objects::Expression
  Create a expression that represents the product of this and arg.
 
virtual auto  mul (Expression arg) const -> xpress::objects::Expression
  Create a expression that represents the product of this and arg.
 
virtual auto  plus (double arg) const -> xpress::objects::Expression
  Create a expression that represents the sum of this and arg.
 
virtual auto  plus (xpress::objects::Expression arg) const -> xpress::objects::Expression
  Create a expression that represents the sum of this and arg.
 
virtual auto  toString () const -> std::string
  Get a string representation of this expression.
 
virtual auto  uminus () const -> xpress::objects::Expression
  Create a expression that represents the unary minus of this one.
 

Static Public Member Functions

static auto  create () -> xpress::objects::QuadExpression
  Create a empty quadratic expression.
 
static auto  create (double constant) -> xpress::objects::QuadExpression
  Create a quadratic expression with the specified constant term.
 

Detailed Description

A quadratic expression that represents its data by a collection of terms.

This is an abstract base class that is implement by different subclasses which use different data types to actually store the various terms in the expression.

Since
44.00

Member Function Documentation

addConstant()

auto xpress::objects::QuadExpression::addConstant ( double c ) -> QuadExpression&
inlinevirtual

Add a value to the constant term of this expression.

Parameters
c The constant to add.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [1/8]

auto xpress::objects::QuadExpression::addTerm ( double const & coefficient,
Variable const & variable ) -> QuadExpression&
inlinevirtual

Add a term to this expression.

If the expression already has a coefficient for variable then the old and the coefficients will be added.

Parameters
coefficient Coefficient to add for variable.
variable Variable.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [2/8]

auto xpress::objects::QuadExpression::addTerm ( double const & coefficient,
Variable const & variable1,
Variable const & variable2 ) -> QuadExpression&
inlinevirtual

Add a term to this expression.

If the expression already has a coefficient for variable1*variable2 then the old and the coefficients will be added.

Parameters
coefficient Coefficient to add for variable1*variable2.
variable1 First variable.
variable2 Second variable.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [3/8]

auto xpress::objects::QuadExpression::addTerm ( LinTerm const & term ) -> QuadExpression&
inline

Add term to this expression.

Parameters
term The term to add.
Returns
Always returns this.
Since
44.00

addTerm() [4/8]

auto xpress::objects::QuadExpression::addTerm ( QuadTerm const & term ) -> QuadExpression&
inline

Add term to this expression.

Parameters
term The term to add.
Returns
Always returns this.
Since
44.00

addTerm() [5/8]

auto xpress::objects::QuadExpression::addTerm ( Variable const & variable,
double const & coefficient ) -> QuadExpression&
inlinevirtual

Add a term to this expression.

If the expression already has a coefficient for variable then the old and the coefficients will be added.

Parameters
variable Variable.
coefficient Coefficient to add for variable.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [6/8]

auto xpress::objects::QuadExpression::addTerm ( Variable const & variable1,
Variable const & variable2,
double const & coefficient ) -> QuadExpression&
inlinevirtual

Add a term to this expression.

If the expression already has a coefficient for variable1*variable2 then the old and the coefficients will be added.

Parameters
variable1 First variable.
variable2 Second variable.
coefficient Coefficient to add for variable1*variable2.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [7/8]

auto xpress::objects::QuadExpression::addTerm ( Variable const & x ) -> QuadExpression&
inlinevirtual

Add term 1.0*x to this expression.

If the expression already has a coefficient for x then the old and the coefficients will be added.

Parameters
x Variable.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerm() [8/8]

auto xpress::objects::QuadExpression::addTerm ( Variable const & x1,
Variable const & x2 ) -> QuadExpression&
inlinevirtual

Add term 1.0*x1*x2 to this expression.

If the expression already has a coefficient for x then the old and the coefficients will be added.

Parameters
x1 First variable.
x2 Second variable.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerms() [1/8]

auto xpress::objects::QuadExpression::addTerms ( LinExpression const & expr ) -> QuadExpression&
inlinevirtual

Add another linear expression to this expression.

Parameters
expr The expression to add
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerms() [2/8]

auto xpress::objects::QuadExpression::addTerms ( LinExpression const & expr,
double const & factor ) -> QuadExpression&
inlinevirtual

Add another linear expression to this expression.

Parameters
expr The expression to add.
factor Factor by which to multiply elements in expr before adding.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerms() [3/8]

auto xpress::objects::QuadExpression::addTerms ( QuadExpression const & expr ) -> QuadExpression&
inlinevirtual

Add another quadratic expression to this expression.

Parameters
expr The expression to add
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerms() [4/8]

auto xpress::objects::QuadExpression::addTerms ( QuadExpression const & expr,
double const & factor ) -> QuadExpression&
inlinevirtual

Add another quadratic expression to this expression.

Parameters
expr The expression to add.
factor Factor by which to multiply elements in expr before adding.
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

addTerms() [5/8]

template<typename Strm0 , typename Strm1 , typename Strm0IsStream , typename Strm1IsStream >
auto xpress::objects::QuadExpression::addTerms ( Strm0 const & variables,
Strm1 const & coefficients ) -> QuadExpression&
inline

Add multiple linear terms to this expression.

Adds the scalar product defined by the element-wise multiplication of variables and coefficients.

Parameters
variables Variables.
coefficients Coefficients.
Template Parameters
Strm0 Something that supports begin() and end() and contains values of type Variable.
Strm1 Something that supports begin() and end() and contains values of type double.
Returns
Always returns this.
Since
44.00

addTerms() [6/8]

template<typename Strm0 , typename Strm1 , typename Strm2 , typename Strm0IsStream , typename Strm1IsStream , typename Strm2IsStream >
auto xpress::objects::QuadExpression::addTerms ( Strm0 const & variables1,
Strm1 const & variables2,
Strm2 const & coefficients ) -> QuadExpression&
inline

Add multiple quadratic terms to this expression.

Adds the scalar product defined by the element-wise multiplication of variables1, variables2 and coefficients.

Parameters
variables1 First variables.
variables2 Second variables.
coefficients Coefficients.
Template Parameters
Strm0 Something that supports begin() and end() and contains values of type Variable.
Strm1 Something that supports begin() and end() and contains values of type Variable.
Strm2 Something that supports begin() and end() and contains values of type double.
Returns
Always returns this.
Since
44.00

addTerms() [7/8]

auto xpress::objects::QuadExpression::addTerms ( xpress::SizedArray< Variable const > const & variables,
xpress::SizedArray< double const > const & coefficients,
int offset,
int count ) -> QuadExpression&
inline

Add multiple terms to this expression.

Adds the scalar product defined by the element-wise multiplication of variables and coefficients using count elements starting from offset.

Parameters
variables Variables
coefficients Coefficients
offset Offset into arrays.
count Number of elements to use from each array.
Returns
Always returns this.
Since
44.00

addTerms() [8/8]

auto xpress::objects::QuadExpression::addTerms ( xpress::SizedArray< Variable const > const & variables1,
xpress::SizedArray< Variable const > const & variables2,
xpress::SizedArray< double const > const & coefficients,
int offset,
int count ) -> QuadExpression&
inline

Add multiple terms to this expression.

Adds the scalar product defined by the element-wise multiplication of variables1, variables2 and coefficients using count elements starting from offset.

Parameters
variables1 First variables
variables2 Second variables
coefficients Coefficients
offset Offset into arrays.
count Number of elements to use from each array.
Returns
Always returns this.
Since
44.00

create() [1/2]

auto xpress::objects::QuadExpression::create ( ) -> xpress::objects::QuadExpression
inlinestatic

Create a empty quadratic expression.

Returns
The quadratic expression.
Since
44.00

create() [2/2]

auto xpress::objects::QuadExpression::create ( double constant ) -> xpress::objects::QuadExpression
inlinestatic

Create a quadratic expression with the specified constant term.

Parameters
constant The constant term to which the expression is initialized.
Returns
The quadratic expression.
Since
44.00

deepCopy() [1/2]

auto xpress::objects::QuadExpression::deepCopy ( ) -> xpress::objects::QuadExpression
inlinevirtual

Get a deep copy of this expression.

Returns
A deep copy of this expression.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

deepCopy() [2/2]

auto xpress::objects::QuadExpression::deepCopy ( double factor ) -> xpress::objects::QuadExpression
inlinevirtual

Get a deep copy of this expression multiplied by a constant.

Parameters
factor Factor to scale this with.
Returns
A deep copy of this expression multiplied by factor.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

getConstant()

auto xpress::objects::QuadExpression::getConstant ( ) const -> double
inlinevirtual

Get the constant value in this expression.

Returns
The constant value in this expression.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

reset()

auto xpress::objects::QuadExpression::reset ( ) -> QuadExpression&
inlinevirtual

Clear this expression.

Removes all terms and sets the constant to 0.

Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.

setConstant()

auto xpress::objects::QuadExpression::setConstant ( double c ) -> QuadExpression&
inlinevirtual

Set the constant term in this expression.

Any existing constant term will be overwritten.

Parameters
c New constant term for this expression
Returns
Always returns this.
Since
44.00

Reimplemented in xpress::objects::QuadTermList, and xpress::objects::QuadTermMap.


The documentation for this class was generated from the following file:
  • xpress_objects.hpp

© 2001-2025 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.