OR-Tools  9.3
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
 

Namespaces

namespace  operations_research
 Collection of objects used to extend the Constraint Solver library.
 
namespace  operations_research::math_opt
 
namespace  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)
 
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)
 
template<typename H >
AbslHashValue (H h, const Variable &variable)
 
template<typename H >
AbslHashValue (H h, const QuadraticTermKey &key)