C++ Reference

C++ Reference: Routing

ModelCacheabstract

Detailed Description

Implements a complete cache for model elements: expressions and constraints.

Caching is based on the signatures of the elements, as well as their types. This class is used internally to avoid creating duplicate objects.

Definition at line 2055 of file constraint_solveri.h.

Public Types

enum  VoidConstraintType { VOID_FALSE_CONSTRAINT = 0, VOID_TRUE_CONSTRAINT, VOID_CONSTRAINT_MAX }
 
enum  VarConstantConstraintType {
  VAR_CONSTANT_EQUALITY = 0, VAR_CONSTANT_GREATER_OR_EQUAL, VAR_CONSTANT_LESS_OR_EQUAL, VAR_CONSTANT_NON_EQUALITY,
  VAR_CONSTANT_CONSTRAINT_MAX
}
 
enum  VarConstantConstantConstraintType { VAR_CONSTANT_CONSTANT_BETWEEN = 0, VAR_CONSTANT_CONSTANT_CONSTRAINT_MAX }
 
enum  ExprExprConstraintType {
  EXPR_EXPR_EQUALITY = 0, EXPR_EXPR_GREATER, EXPR_EXPR_GREATER_OR_EQUAL, EXPR_EXPR_LESS,
  EXPR_EXPR_LESS_OR_EQUAL, EXPR_EXPR_NON_EQUALITY, EXPR_EXPR_CONSTRAINT_MAX
}
 
enum  ExprExpressionType { EXPR_OPPOSITE = 0, EXPR_ABS, EXPR_SQUARE, EXPR_EXPRESSION_MAX }
 
enum  ExprExprExpressionType {
  EXPR_EXPR_DIFFERENCE = 0, EXPR_EXPR_PROD, EXPR_EXPR_DIV, EXPR_EXPR_MAX,
  EXPR_EXPR_MIN, EXPR_EXPR_SUM, EXPR_EXPR_IS_LESS, EXPR_EXPR_IS_LESS_OR_EQUAL,
  EXPR_EXPR_IS_EQUAL, EXPR_EXPR_IS_NOT_EQUAL, EXPR_EXPR_EXPRESSION_MAX
}
 
enum  ExprExprConstantExpressionType { EXPR_EXPR_CONSTANT_CONDITIONAL = 0, EXPR_EXPR_CONSTANT_EXPRESSION_MAX }
 
enum  ExprConstantExpressionType {
  EXPR_CONSTANT_DIFFERENCE = 0, EXPR_CONSTANT_DIVIDE, EXPR_CONSTANT_PROD, EXPR_CONSTANT_MAX,
  EXPR_CONSTANT_MIN, EXPR_CONSTANT_SUM, EXPR_CONSTANT_IS_EQUAL, EXPR_CONSTANT_IS_NOT_EQUAL,
  EXPR_CONSTANT_IS_GREATER_OR_EQUAL, EXPR_CONSTANT_IS_LESS_OR_EQUAL, EXPR_CONSTANT_EXPRESSION_MAX
}
 
enum  VarConstantConstantExpressionType { VAR_CONSTANT_CONSTANT_SEMI_CONTINUOUS = 0, VAR_CONSTANT_CONSTANT_EXPRESSION_MAX }
 
enum  VarConstantArrayExpressionType { VAR_CONSTANT_ARRAY_ELEMENT = 0, VAR_CONSTANT_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayConstantArrayExpressionType { VAR_ARRAY_CONSTANT_ARRAY_SCAL_PROD = 0, VAR_ARRAY_CONSTANT_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayExpressionType { VAR_ARRAY_MAX = 0, VAR_ARRAY_MIN, VAR_ARRAY_SUM, VAR_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayConstantExpressionType { VAR_ARRAY_CONSTANT_INDEX = 0, VAR_ARRAY_CONSTANT_EXPRESSION_MAX }
 

Public Member Functions

 ModelCache (Solver *const solver)
 
virtual ~ModelCache ()
 
virtual void Clear ()=0
 
virtual Constraint * FindVoidConstraint (VoidConstraintType type) const =0
 Void constraints. More...
 
virtual void InsertVoidConstraint (Constraint *const ct, VoidConstraintType type)=0
 
virtual Constraint * FindVarConstantConstraint (IntVar *const var, int64 value, VarConstantConstraintType type) const =0
 Var Constant Constraints. More...
 
virtual void InsertVarConstantConstraint (Constraint *const ct, IntVar *const var, int64 value, VarConstantConstraintType type)=0
 
virtual Constraint * FindVarConstantConstantConstraint (IntVar *const var, int64 value1, int64 value2, VarConstantConstantConstraintType type) const =0
 Var Constant Constant Constraints. More...
 
virtual void InsertVarConstantConstantConstraint (Constraint *const ct, IntVar *const var, int64 value1, int64 value2, VarConstantConstantConstraintType type)=0
 
virtual Constraint * FindExprExprConstraint (IntExpr *const expr1, IntExpr *const expr2, ExprExprConstraintType type) const =0
 Expr Expr Constraints. More...
 
virtual void InsertExprExprConstraint (Constraint *const ct, IntExpr *const expr1, IntExpr *const expr2, ExprExprConstraintType type)=0
 
virtual IntExpr * FindExprExpression (IntExpr *const expr, ExprExpressionType type) const =0
 Expr Expressions. More...
 
virtual void InsertExprExpression (IntExpr *const expression, IntExpr *const expr, ExprExpressionType type)=0
 
virtual IntExpr * FindExprConstantExpression (IntExpr *const expr, int64 value, ExprConstantExpressionType type) const =0
 Expr Constant Expressions. More...
 
virtual void InsertExprConstantExpression (IntExpr *const expression, IntExpr *const var, int64 value, ExprConstantExpressionType type)=0
 
virtual IntExpr * FindExprExprExpression (IntExpr *const var1, IntExpr *const var2, ExprExprExpressionType type) const =0
 Expr Expr Expressions. More...
 
virtual void InsertExprExprExpression (IntExpr *const expression, IntExpr *const var1, IntExpr *const var2, ExprExprExpressionType type)=0
 
virtual IntExpr * FindExprExprConstantExpression (IntExpr *const var1, IntExpr *const var2, int64 constant, ExprExprConstantExpressionType type) const =0
 Expr Expr Constant Expressions. More...
 
virtual void InsertExprExprConstantExpression (IntExpr *const expression, IntExpr *const var1, IntExpr *const var2, int64 constant, ExprExprConstantExpressionType type)=0
 
virtual IntExpr * FindVarConstantConstantExpression (IntVar *const var, int64 value1, int64 value2, VarConstantConstantExpressionType type) const =0
 Var Constant Constant Expressions. More...
 
virtual void InsertVarConstantConstantExpression (IntExpr *const expression, IntVar *const var, int64 value1, int64 value2, VarConstantConstantExpressionType type)=0
 
virtual IntExpr * FindVarConstantArrayExpression (IntVar *const var, const std::vector< int64 > &values, VarConstantArrayExpressionType type) const =0
 Var Constant Array Expressions. More...
 
virtual void InsertVarConstantArrayExpression (IntExpr *const expression, IntVar *const var, const std::vector< int64 > &values, VarConstantArrayExpressionType type)=0
 
virtual IntExpr * FindVarArrayExpression (const std::vector< IntVar * > &vars, VarArrayExpressionType type) const =0
 Var Array Expressions. More...
 
virtual void InsertVarArrayExpression (IntExpr *const expression, const std::vector< IntVar * > &vars, VarArrayExpressionType type)=0
 
virtual IntExpr * FindVarArrayConstantArrayExpression (const std::vector< IntVar * > &vars, const std::vector< int64 > &values, VarArrayConstantArrayExpressionType type) const =0
 Var Array Constant Array Expressions. More...
 
virtual void InsertVarArrayConstantArrayExpression (IntExpr *const expression, const std::vector< IntVar * > &var, const std::vector< int64 > &values, VarArrayConstantArrayExpressionType type)=0
 
virtual IntExpr * FindVarArrayConstantExpression (const std::vector< IntVar * > &vars, int64 value, VarArrayConstantExpressionType type) const =0
 Var Array Constant Expressions. More...
 
virtual void InsertVarArrayConstantExpression (IntExpr *const expression, const std::vector< IntVar * > &var, int64 value, VarArrayConstantExpressionType type)=0
 
Solver * solver () const
 

Member Enumeration Documentation

◆ ExprConstantExpressionType

Enumerator
EXPR_CONSTANT_DIFFERENCE 
EXPR_CONSTANT_DIVIDE 
EXPR_CONSTANT_PROD 
EXPR_CONSTANT_MAX 
EXPR_CONSTANT_MIN 
EXPR_CONSTANT_SUM 
EXPR_CONSTANT_IS_EQUAL 
EXPR_CONSTANT_IS_NOT_EQUAL 
EXPR_CONSTANT_IS_GREATER_OR_EQUAL 
EXPR_CONSTANT_IS_LESS_OR_EQUAL 
EXPR_CONSTANT_EXPRESSION_MAX 

Definition at line 2112 of file constraint_solveri.h.

◆ ExprExprConstantExpressionType

Enumerator
EXPR_EXPR_CONSTANT_CONDITIONAL 
EXPR_EXPR_CONSTANT_EXPRESSION_MAX 

Definition at line 2107 of file constraint_solveri.h.

◆ ExprExprConstraintType

Enumerator
EXPR_EXPR_EQUALITY 
EXPR_EXPR_GREATER 
EXPR_EXPR_GREATER_OR_EQUAL 
EXPR_EXPR_LESS 
EXPR_EXPR_LESS_OR_EQUAL 
EXPR_EXPR_NON_EQUALITY 
EXPR_EXPR_CONSTRAINT_MAX 

Definition at line 2076 of file constraint_solveri.h.

◆ ExprExpressionType

Enumerator
EXPR_OPPOSITE 
EXPR_ABS 
EXPR_SQUARE 
EXPR_EXPRESSION_MAX 

Definition at line 2086 of file constraint_solveri.h.

◆ ExprExprExpressionType

Enumerator
EXPR_EXPR_DIFFERENCE 
EXPR_EXPR_PROD 
EXPR_EXPR_DIV 
EXPR_EXPR_MAX 
EXPR_EXPR_MIN 
EXPR_EXPR_SUM 
EXPR_EXPR_IS_LESS 
EXPR_EXPR_IS_LESS_OR_EQUAL 
EXPR_EXPR_IS_EQUAL 
EXPR_EXPR_IS_NOT_EQUAL 
EXPR_EXPR_EXPRESSION_MAX 

Definition at line 2093 of file constraint_solveri.h.

◆ VarArrayConstantArrayExpressionType

Enumerator
VAR_ARRAY_CONSTANT_ARRAY_SCAL_PROD 
VAR_ARRAY_CONSTANT_ARRAY_EXPRESSION_MAX 

Definition at line 2135 of file constraint_solveri.h.

◆ VarArrayConstantExpressionType

Enumerator
VAR_ARRAY_CONSTANT_INDEX 
VAR_ARRAY_CONSTANT_EXPRESSION_MAX 

Definition at line 2147 of file constraint_solveri.h.

◆ VarArrayExpressionType

Enumerator
VAR_ARRAY_MAX 
VAR_ARRAY_MIN 
VAR_ARRAY_SUM 
VAR_ARRAY_EXPRESSION_MAX 

Definition at line 2140 of file constraint_solveri.h.

◆ VarConstantArrayExpressionType

Enumerator
VAR_CONSTANT_ARRAY_ELEMENT 
VAR_CONSTANT_ARRAY_EXPRESSION_MAX 

Definition at line 2130 of file constraint_solveri.h.

◆ VarConstantConstantConstraintType

Enumerator
VAR_CONSTANT_CONSTANT_BETWEEN 
VAR_CONSTANT_CONSTANT_CONSTRAINT_MAX 

Definition at line 2071 of file constraint_solveri.h.

◆ VarConstantConstantExpressionType

Enumerator
VAR_CONSTANT_CONSTANT_SEMI_CONTINUOUS 
VAR_CONSTANT_CONSTANT_EXPRESSION_MAX 

Definition at line 2125 of file constraint_solveri.h.

◆ VarConstantConstraintType

Enumerator
VAR_CONSTANT_EQUALITY 
VAR_CONSTANT_GREATER_OR_EQUAL 
VAR_CONSTANT_LESS_OR_EQUAL 
VAR_CONSTANT_NON_EQUALITY 
VAR_CONSTANT_CONSTRAINT_MAX 

Definition at line 2063 of file constraint_solveri.h.

◆ VoidConstraintType

Enumerator
VOID_FALSE_CONSTRAINT 
VOID_TRUE_CONSTRAINT 
VOID_CONSTRAINT_MAX 

Definition at line 2057 of file constraint_solveri.h.

Constructor & Destructor Documentation

◆ ModelCache()

ModelCache ( Solver *const  solver)
explicit

◆ ~ModelCache()

virtual ~ModelCache ( )
virtual

Member Function Documentation

◆ Clear()

virtual void Clear ( )
pure virtual

◆ FindExprConstantExpression()

virtual IntExpr* FindExprConstantExpression ( IntExpr *const  expr,
int64  value,
ExprConstantExpressionType  type 
) const
pure virtual

Expr Constant Expressions.

◆ FindExprExprConstantExpression()

virtual IntExpr* FindExprExprConstantExpression ( IntExpr *const  var1,
IntExpr *const  var2,
int64  constant,
ExprExprConstantExpressionType  type 
) const
pure virtual

Expr Expr Constant Expressions.

◆ FindExprExprConstraint()

virtual Constraint* FindExprExprConstraint ( IntExpr *const  expr1,
IntExpr *const  expr2,
ExprExprConstraintType  type 
) const
pure virtual

Expr Expr Constraints.

◆ FindExprExpression()

virtual IntExpr* FindExprExpression ( IntExpr *const  expr,
ExprExpressionType  type 
) const
pure virtual

Expr Expressions.

◆ FindExprExprExpression()

virtual IntExpr* FindExprExprExpression ( IntExpr *const  var1,
IntExpr *const  var2,
ExprExprExpressionType  type 
) const
pure virtual

Expr Expr Expressions.

◆ FindVarArrayConstantArrayExpression()

virtual IntExpr* FindVarArrayConstantArrayExpression ( const std::vector< IntVar * > &  vars,
const std::vector< int64 > &  values,
VarArrayConstantArrayExpressionType  type 
) const
pure virtual

Var Array Constant Array Expressions.

◆ FindVarArrayConstantExpression()

virtual IntExpr* FindVarArrayConstantExpression ( const std::vector< IntVar * > &  vars,
int64  value,
VarArrayConstantExpressionType  type 
) const
pure virtual

Var Array Constant Expressions.

◆ FindVarArrayExpression()

virtual IntExpr* FindVarArrayExpression ( const std::vector< IntVar * > &  vars,
VarArrayExpressionType  type 
) const
pure virtual

Var Array Expressions.

◆ FindVarConstantArrayExpression()

virtual IntExpr* FindVarConstantArrayExpression ( IntVar *const  var,
const std::vector< int64 > &  values,
VarConstantArrayExpressionType  type 
) const
pure virtual

Var Constant Array Expressions.

◆ FindVarConstantConstantConstraint()

virtual Constraint* FindVarConstantConstantConstraint ( IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantConstraintType  type 
) const
pure virtual

Var Constant Constant Constraints.

◆ FindVarConstantConstantExpression()

virtual IntExpr* FindVarConstantConstantExpression ( IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantExpressionType  type 
) const
pure virtual

Var Constant Constant Expressions.

◆ FindVarConstantConstraint()

virtual Constraint* FindVarConstantConstraint ( IntVar *const  var,
int64  value,
VarConstantConstraintType  type 
) const
pure virtual

Var Constant Constraints.

◆ FindVoidConstraint()

virtual Constraint* FindVoidConstraint ( VoidConstraintType  type) const
pure virtual

Void constraints.

◆ InsertExprConstantExpression()

virtual void InsertExprConstantExpression ( IntExpr *const  expression,
IntExpr *const  var,
int64  value,
ExprConstantExpressionType  type 
)
pure virtual

◆ InsertExprExprConstantExpression()

virtual void InsertExprExprConstantExpression ( IntExpr *const  expression,
IntExpr *const  var1,
IntExpr *const  var2,
int64  constant,
ExprExprConstantExpressionType  type 
)
pure virtual

◆ InsertExprExprConstraint()

virtual void InsertExprExprConstraint ( Constraint *const  ct,
IntExpr *const  expr1,
IntExpr *const  expr2,
ExprExprConstraintType  type 
)
pure virtual

◆ InsertExprExpression()

virtual void InsertExprExpression ( IntExpr *const  expression,
IntExpr *const  expr,
ExprExpressionType  type 
)
pure virtual

◆ InsertExprExprExpression()

virtual void InsertExprExprExpression ( IntExpr *const  expression,
IntExpr *const  var1,
IntExpr *const  var2,
ExprExprExpressionType  type 
)
pure virtual

◆ InsertVarArrayConstantArrayExpression()

virtual void InsertVarArrayConstantArrayExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  var,
const std::vector< int64 > &  values,
VarArrayConstantArrayExpressionType  type 
)
pure virtual

◆ InsertVarArrayConstantExpression()

virtual void InsertVarArrayConstantExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  var,
int64  value,
VarArrayConstantExpressionType  type 
)
pure virtual

◆ InsertVarArrayExpression()

virtual void InsertVarArrayExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  vars,
VarArrayExpressionType  type 
)
pure virtual

◆ InsertVarConstantArrayExpression()

virtual void InsertVarConstantArrayExpression ( IntExpr *const  expression,
IntVar *const  var,
const std::vector< int64 > &  values,
VarConstantArrayExpressionType  type 
)
pure virtual

◆ InsertVarConstantConstantConstraint()

virtual void InsertVarConstantConstantConstraint ( Constraint *const  ct,
IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantConstraintType  type 
)
pure virtual

◆ InsertVarConstantConstantExpression()

virtual void InsertVarConstantConstantExpression ( IntExpr *const  expression,
IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantExpressionType  type 
)
pure virtual

◆ InsertVarConstantConstraint()

virtual void InsertVarConstantConstraint ( Constraint *const  ct,
IntVar *const  var,
int64  value,
VarConstantConstraintType  type 
)
pure virtual

◆ InsertVoidConstraint()

virtual void InsertVoidConstraint ( Constraint *const  ct,
VoidConstraintType  type 
)
pure virtual

◆ solver()

Solver* solver ( ) const

The documentation for this class was generated from the following file: