OR-Tools  9.6
variable_and_expressions.h File Reference

Go to the source code of this file.

Classes

class  Variable
 
struct  LinearTerm
 
class  LinearExpression
 
struct  VariablesEquality
 
struct  LowerBoundedLinearExpression
 
struct  UpperBoundedLinearExpression
 
struct  BoundedLinearExpression
 
class  QuadraticTermKey
 
class  QuadraticTerm
 
class  QuadraticExpression
 
struct  LowerBoundedQuadraticExpression
 
struct  UpperBoundedQuadraticExpression
 
struct  BoundedQuadraticExpression
 

Namespaces

 operations_research
 Collection of objects used to extend the Constraint Solver library.
 
 operations_research::math_opt
 
 operations_research::math_opt::internal
 

Typedefs

template<typename V >
using VariableMap = IdMap< Variable, V >
 
using QuadraticProductId = std::pair< VariableId, VariableId >
 
template<typename V >
using QuadraticTermMap = IdMap< QuadraticTermKey, V >
 

Functions

std::ostream & operator<< (std::ostream &ostr, const Variable &variable)
 
LinearTerm operator* (double coefficient, LinearTerm term)
 
LinearTerm operator* (LinearTerm term, double coefficient)
 
LinearTerm operator* (double coefficient, Variable variable)
 
LinearTerm operator* (Variable variable, double coefficient)
 
LinearTerm operator/ (LinearTerm term, double coefficient)
 
LinearTerm operator/ (Variable variable, double coefficient)
 
template<typename Iterable >
LinearExpression Sum (const Iterable &items)
 
template<typename LeftIterable , typename RightIterable >
LinearExpression InnerProduct (const LeftIterable &left, const RightIterable &right)
 
std::ostream & operator<< (std::ostream &ostr, const LinearExpression &expression)
 
LinearExpression operator- (LinearExpression expr)
 
LinearExpression operator+ (Variable lhs, double rhs)
 
LinearExpression operator+ (double lhs, Variable rhs)
 
LinearExpression operator+ (Variable lhs, Variable rhs)
 
LinearExpression operator+ (const LinearTerm &lhs, double rhs)
 
LinearExpression operator+ (double lhs, const LinearTerm &rhs)
 
LinearExpression operator+ (const LinearTerm &lhs, Variable rhs)
 
LinearExpression operator+ (Variable lhs, const LinearTerm &rhs)
 
LinearExpression operator+ (const LinearTerm &lhs, const LinearTerm &rhs)
 
LinearExpression operator+ (LinearExpression lhs, double rhs)
 
LinearExpression operator+ (double lhs, LinearExpression rhs)
 
LinearExpression operator+ (LinearExpression lhs, Variable rhs)
 
LinearExpression operator+ (Variable lhs, LinearExpression rhs)
 
LinearExpression operator+ (LinearExpression lhs, const LinearTerm &rhs)
 
LinearExpression operator+ (LinearTerm lhs, LinearExpression rhs)
 
LinearExpression operator+ (LinearExpression lhs, const LinearExpression &rhs)
 
LinearExpression operator- (Variable lhs, double rhs)
 
LinearExpression operator- (double lhs, Variable rhs)
 
LinearExpression operator- (Variable lhs, Variable rhs)
 
LinearExpression operator- (const LinearTerm &lhs, double rhs)
 
LinearExpression operator- (double lhs, const LinearTerm &rhs)
 
LinearExpression operator- (const LinearTerm &lhs, Variable rhs)
 
LinearExpression operator- (Variable lhs, const LinearTerm &rhs)
 
LinearExpression operator- (const LinearTerm &lhs, const LinearTerm &rhs)
 
LinearExpression operator- (LinearExpression lhs, double rhs)
 
LinearExpression operator- (double lhs, LinearExpression rhs)
 
LinearExpression operator- (LinearExpression lhs, Variable rhs)
 
LinearExpression operator- (Variable lhs, LinearExpression rhs)
 
LinearExpression operator- (LinearExpression lhs, const LinearTerm &rhs)
 
LinearExpression operator- (LinearTerm lhs, LinearExpression rhs)
 
LinearExpression operator- (LinearExpression lhs, const LinearExpression &rhs)
 
LinearExpression operator* (LinearExpression lhs, double rhs)
 
LinearExpression operator* (double lhs, LinearExpression rhs)
 
LinearExpression operator/ (LinearExpression lhs, double rhs)
 
internal::VariablesEquality operator== (const Variable &lhs, const Variable &rhs)
 
bool operator!= (const Variable &lhs, const Variable &rhs)
 
std::ostream & operator<< (std::ostream &ostr, const BoundedLinearExpression &bounded_expression)
 
LowerBoundedLinearExpression operator>= (LinearExpression expression, double constant)
 
LowerBoundedLinearExpression operator<= (double constant, LinearExpression expression)
 
LowerBoundedLinearExpression operator>= (const LinearTerm &term, double constant)
 
LowerBoundedLinearExpression operator<= (double constant, const LinearTerm &term)
 
LowerBoundedLinearExpression operator>= (Variable variable, double constant)
 
LowerBoundedLinearExpression operator<= (double constant, Variable variable)
 
UpperBoundedLinearExpression operator<= (LinearExpression expression, double constant)
 
UpperBoundedLinearExpression operator>= (double constant, LinearExpression expression)
 
UpperBoundedLinearExpression operator<= (const LinearTerm &term, double constant)
 
UpperBoundedLinearExpression operator>= (double constant, const LinearTerm &term)
 
UpperBoundedLinearExpression operator<= (Variable variable, double constant)
 
UpperBoundedLinearExpression operator>= (double constant, Variable variable)
 
BoundedLinearExpression operator<= (LowerBoundedLinearExpression lhs, double rhs)
 
BoundedLinearExpression operator>= (double lhs, LowerBoundedLinearExpression rhs)
 
BoundedLinearExpression operator>= (UpperBoundedLinearExpression lhs, double rhs)
 
BoundedLinearExpression operator<= (double lhs, UpperBoundedLinearExpression rhs)
 
BoundedLinearExpression operator<= (LinearExpression lhs, const LinearExpression &rhs)
 
BoundedLinearExpression operator>= (LinearExpression lhs, const LinearExpression &rhs)
 
BoundedLinearExpression operator<= (LinearExpression lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator>= (LinearExpression lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator<= (const LinearTerm &lhs, LinearExpression rhs)
 
BoundedLinearExpression operator>= (const LinearTerm &lhs, LinearExpression rhs)
 
BoundedLinearExpression operator<= (LinearExpression lhs, Variable rhs)
 
BoundedLinearExpression operator>= (LinearExpression lhs, Variable rhs)
 
BoundedLinearExpression operator<= (Variable lhs, LinearExpression rhs)
 
BoundedLinearExpression operator>= (Variable lhs, LinearExpression rhs)
 
BoundedLinearExpression operator<= (const LinearTerm &lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator>= (const LinearTerm &lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator<= (const LinearTerm &lhs, Variable rhs)
 
BoundedLinearExpression operator>= (const LinearTerm &lhs, Variable rhs)
 
BoundedLinearExpression operator<= (Variable lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator>= (Variable lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator<= (Variable lhs, Variable rhs)
 
BoundedLinearExpression operator>= (Variable lhs, Variable rhs)
 
BoundedLinearExpression operator== (LinearExpression lhs, const LinearExpression &rhs)
 
BoundedLinearExpression operator== (LinearExpression lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator== (const LinearTerm &lhs, LinearExpression rhs)
 
BoundedLinearExpression operator== (LinearExpression lhs, Variable rhs)
 
BoundedLinearExpression operator== (Variable lhs, LinearExpression rhs)
 
BoundedLinearExpression operator== (LinearExpression lhs, double rhs)
 
BoundedLinearExpression operator== (double lhs, LinearExpression rhs)
 
BoundedLinearExpression operator== (const LinearTerm &lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator== (const LinearTerm &lhs, Variable rhs)
 
BoundedLinearExpression operator== (Variable lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator== (const LinearTerm &lhs, double rhs)
 
BoundedLinearExpression operator== (double lhs, const LinearTerm &rhs)
 
BoundedLinearExpression operator== (Variable lhs, double rhs)
 
BoundedLinearExpression operator== (double lhs, Variable rhs)
 
std::ostream & operator<< (std::ostream &ostr, const QuadraticTermKey &key)
 
bool operator== (const QuadraticTermKey lhs, const QuadraticTermKey rhs)
 
bool operator!= (const QuadraticTermKey lhs, const QuadraticTermKey rhs)
 
QuadraticTerm operator- (QuadraticTerm term)
 
QuadraticTerm operator* (double lhs, QuadraticTerm rhs)
 
QuadraticTerm operator* (Variable lhs, Variable rhs)
 
QuadraticTerm operator* (Variable lhs, LinearTerm rhs)
 
QuadraticTerm operator* (LinearTerm lhs, Variable rhs)
 
QuadraticTerm operator* (LinearTerm lhs, LinearTerm rhs)
 
QuadraticTerm operator* (QuadraticTerm lhs, double rhs)
 
QuadraticTerm operator/ (QuadraticTerm lhs, double rhs)
 
QuadraticExpression operator- (QuadraticExpression expr)
 
QuadraticExpression operator+ (double lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (double lhs, QuadraticExpression rhs)
 
QuadraticExpression operator+ (Variable lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (Variable lhs, QuadraticExpression rhs)
 
QuadraticExpression operator+ (const LinearTerm &lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (const LinearTerm &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator+ (LinearExpression lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (const LinearExpression &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, double rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, Variable rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, const LinearTerm &rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, LinearExpression rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (const QuadraticTerm &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, double rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, Variable rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, const LinearTerm &rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, const LinearExpression &rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator+ (QuadraticExpression lhs, const QuadraticExpression &rhs)
 
QuadraticExpression operator- (double lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (double lhs, QuadraticExpression rhs)
 
QuadraticExpression operator- (Variable lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (Variable lhs, QuadraticExpression rhs)
 
QuadraticExpression operator- (const LinearTerm &lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (const LinearTerm &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator- (LinearExpression lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (const LinearExpression &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, double rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, Variable rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, const LinearTerm &rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, LinearExpression rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (const QuadraticTerm &lhs, QuadraticExpression rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, double rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, Variable rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, const LinearTerm &rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, const LinearExpression &rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, const QuadraticTerm &rhs)
 
QuadraticExpression operator- (QuadraticExpression lhs, const QuadraticExpression &rhs)
 
QuadraticExpression operator* (double lhs, QuadraticExpression rhs)
 
QuadraticExpression operator* (Variable lhs, const LinearExpression &rhs)
 
QuadraticExpression operator* (LinearTerm lhs, const LinearExpression &rhs)
 
QuadraticExpression operator* (const LinearExpression &lhs, Variable rhs)
 
QuadraticExpression operator* (const LinearExpression &lhs, LinearTerm rhs)
 
QuadraticExpression operator* (const LinearExpression &lhs, const LinearExpression &rhs)
 
QuadraticExpression operator* (QuadraticExpression lhs, double rhs)
 
QuadraticExpression operator/ (QuadraticExpression lhs, double rhs)
 
std::ostream & operator<< (std::ostream &ostr, const BoundedQuadraticExpression &bounded_expression)
 
LowerBoundedQuadraticExpression operator>= (QuadraticExpression lhs, double rhs)
 
LowerBoundedQuadraticExpression operator>= (QuadraticTerm lhs, double rhs)
 
LowerBoundedQuadraticExpression operator<= (double lhs, QuadraticExpression rhs)
 
LowerBoundedQuadraticExpression operator<= (double lhs, QuadraticTerm rhs)
 
UpperBoundedQuadraticExpression operator>= (double lhs, QuadraticExpression rhs)
 
UpperBoundedQuadraticExpression operator>= (double lhs, QuadraticTerm rhs)
 
UpperBoundedQuadraticExpression operator<= (QuadraticExpression lhs, double rhs)
 
UpperBoundedQuadraticExpression operator<= (QuadraticTerm lhs, double rhs)
 
BoundedQuadraticExpression operator>= (UpperBoundedQuadraticExpression lhs, double rhs)
 
BoundedQuadraticExpression operator>= (double lhs, LowerBoundedQuadraticExpression rhs)
 
BoundedQuadraticExpression operator<= (LowerBoundedQuadraticExpression lhs, double rhs)
 
BoundedQuadraticExpression operator<= (double lhs, UpperBoundedQuadraticExpression rhs)
 
BoundedQuadraticExpression operator>= (QuadraticExpression lhs, const QuadraticExpression &rhs)
 
BoundedQuadraticExpression operator>= (QuadraticExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator>= (QuadraticExpression lhs, const LinearExpression &rhs)
 
BoundedQuadraticExpression operator>= (QuadraticExpression lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator>= (QuadraticExpression lhs, Variable rhs)
 
BoundedQuadraticExpression operator<= (QuadraticExpression lhs, const QuadraticExpression &rhs)
 
BoundedQuadraticExpression operator<= (QuadraticExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator<= (QuadraticExpression lhs, const LinearExpression &rhs)
 
BoundedQuadraticExpression operator<= (QuadraticExpression lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator<= (QuadraticExpression lhs, Variable rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, const QuadraticExpression &rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, const LinearExpression &rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, Variable rhs)
 
BoundedQuadraticExpression operator== (QuadraticExpression lhs, double rhs)
 
BoundedQuadraticExpression operator>= (QuadraticTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator>= (QuadraticTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator>= (QuadraticTerm lhs, LinearExpression rhs)
 
BoundedQuadraticExpression operator>= (QuadraticTerm lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator>= (QuadraticTerm lhs, Variable rhs)
 
BoundedQuadraticExpression operator<= (QuadraticTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator<= (QuadraticTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator<= (QuadraticTerm lhs, LinearExpression rhs)
 
BoundedQuadraticExpression operator<= (QuadraticTerm lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator<= (QuadraticTerm lhs, Variable rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, LinearExpression rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, LinearTerm rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, Variable rhs)
 
BoundedQuadraticExpression operator== (QuadraticTerm lhs, double rhs)
 
BoundedQuadraticExpression operator>= (const LinearExpression &lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator>= (LinearExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator<= (const LinearExpression &lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator<= (LinearExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (const LinearExpression &lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator== (LinearExpression lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator>= (LinearTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator>= (LinearTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator<= (LinearTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator<= (LinearTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (LinearTerm lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator== (LinearTerm lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator>= (Variable lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator>= (Variable lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator<= (Variable lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator<= (Variable lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (Variable lhs, QuadraticExpression rhs)
 
BoundedQuadraticExpression operator== (Variable lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (double lhs, QuadraticTerm rhs)
 
BoundedQuadraticExpression operator== (double lhs, QuadraticExpression rhs)
 
template<typename H >
AbslHashValue (H h, const Variable &variable)
 
template<typename LeftIterable , typename RightIterable , typename Expression >
void AddInnerProduct (const LeftIterable &left, const RightIterable &right, Expression &expr)
 
template<typename H >
AbslHashValue (H h, const QuadraticTermKey &key)