Generated on Mon Aug 25 11:35:46 2008 for Gecode by doxygen 1.5.6

minimodel.hh File Reference

(Revision: 7354)

#include "gecode/kernel.hh"
#include "gecode/int.hh"
#include "gecode/int/linear.hh"
#include "gecode/minimodel/exception.icc"
#include <iostream>
#include "gecode/minimodel/lin-expr.icc"
#include "gecode/minimodel/lin-rel.icc"
#include "gecode/minimodel/bool-expr.icc"
#include "gecode/minimodel/bool-rel.icc"
#include "gecode/minimodel/arithmetic.icc"
#include "gecode/minimodel/matrix.icc"

Go to the source code of this file.

Namespaces

namespace  Gecode
namespace  Gecode::MiniModel

Classes

class  Gecode::MiniModel::LinExpr< Var >
 Linear expressions. More...
class  Gecode::MiniModel::LinRel< Var >
 Linear relations. More...
class  Gecode::MiniModel::BoolExpr
 Boolean expressions. More...
class  Gecode::MiniModel::BoolExpr::Node
 Node for Boolean expression. More...
class  Gecode::MiniModel::BoolRel
 Boolean relations. More...
class  Gecode::REG
 Regular expressions over integer values. More...
class  Gecode::MiniModel::Matrix< A >
 Matrix-interface for arrays. More...
class  Gecode::MiniModel::Matrix< A >::Slice
 A slice of a matrix. More...

Defines

#define GECODE_MINIMODEL_EXPORT   __attribute__ ((visibility("default")))

Functions

Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator+ (int, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as sum of linear expression and integer.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator+ (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &, int)
 Construct linear expression as sum of integer and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator+ (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as sum of linear expressions.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator- (int, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as difference of linear expression and integer.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &, int)
 Construct linear expression as difference of integer and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as difference of linear expressions.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as negative of linear expression.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator* (int, const Gecode::IntVar &)
 Construct linear expression as product of integer coefficient and integer variable.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator* (const Gecode::IntVar &, int)
 Construct linear expression as product of integer coefficient and integer variable.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator* (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &, int)
 Construct linear expression as product of integer coefficient and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::IntVar
operator* (int, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &)
 Construct linear expression as product of integer coefficient and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator+ (int, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as sum of linear expression and integer.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator+ (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &, int)
 Construct linear expression as sum of integer and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator+ (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as sum of linear expressions.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator- (int, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as difference of linear expression and integer.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &, int)
 Construct linear expression as difference of integer and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as difference of linear expressions.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator- (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as negative of linear expression.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator* (int, const Gecode::BoolVar &)
 Construct linear expression as product of integer coefficient and integer variable.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator* (const Gecode::BoolVar &, int)
 Construct linear expression as product of integer coefficient and integer variable.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator* (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &, int)
 Construct linear expression as product of integer coefficient and linear expression.
Gecode::MiniModel::LinExpr
< Gecode::BoolVar
operator* (int, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &)
 Construct linear expression as product of integer coefficient and linear expression.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator== (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator== (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator== (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator!= (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator!= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator!= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator< (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator< (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator< (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator<= (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator<= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator<= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator> (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator> (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator> (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator>= (int l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator>= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::IntVar
operator>= (const Gecode::MiniModel::LinExpr< Gecode::IntVar > &l, const Gecode::MiniModel::LinExpr< Gecode::IntVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator== (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator== (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator== (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear equality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator!= (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator!= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator!= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear disequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator< (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator< (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator< (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator<= (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator<= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator<= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator> (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator> (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator> (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator>= (int l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator>= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, int r)
 Construct linear inequality relation.
Gecode::MiniModel::LinRel
< Gecode::BoolVar
operator>= (const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &l, const Gecode::MiniModel::LinExpr< Gecode::BoolVar > &r)
 Construct linear inequality relation.
Gecode::MiniModel::BoolExpr operator! (const Gecode::MiniModel::BoolExpr &)
 Negated Boolean expression.
Gecode::MiniModel::BoolExpr operator && (const Gecode::MiniModel::BoolExpr &, const Gecode::MiniModel::BoolExpr &)
 Conjunction of Boolean expressions.
Gecode::MiniModel::BoolExpr operator|| (const Gecode::MiniModel::BoolExpr &, const Gecode::MiniModel::BoolExpr &)
 Disjunction of Boolean expressions.
Gecode::MiniModel::BoolExpr operator^ (const Gecode::MiniModel::BoolExpr &, const Gecode::MiniModel::BoolExpr &)
 Exclusive-or of Boolean expressions.
template<class Var>
Gecode::MiniModel::BoolExpr operator~ (const Gecode::MiniModel::LinRel< Var > &)
 Reification of linear relations.
MiniModel::BoolExpr Gecode::eqv (const MiniModel::BoolExpr &, const MiniModel::BoolExpr &)
 Equivalence of Boolean expressions.
MiniModel::BoolExpr Gecode::imp (const MiniModel::BoolExpr &, const MiniModel::BoolExpr &)
 Implication of Boolean expressions.
MiniModel::BoolRel Gecode::tt (const MiniModel::BoolExpr &)
 State that Boolean expression must be true.
MiniModel::BoolRel Gecode::ff (const MiniModel::BoolExpr &)
 State that Boolean expression must be false.
template<class Var>
IntVar Gecode::post (Space *home, const MiniModel::LinExpr< Var > &e, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post linear expression and return its value.
IntVar Gecode::post (Space *home, const IntVar &x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post linear expression (special case for integer variable) and return its value.
IntVar Gecode::post (Space *home, int n, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post linear expression (special case for constant) and return its value.
template<class Var>
void Gecode::post (Space *home, const MiniModel::LinRel< Var > &r, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post linear relation.
void Gecode::post (Space *home, bool r, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Make it work for special integer only-case.
BoolVar Gecode::post (Space *home, const MiniModel::BoolExpr &e, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post Boolean expression and return its value.
BoolVar Gecode::post (Space *home, const BoolVar &b, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post Boolean expression (special case for variable) and return its value.
void Gecode::post (Space *home, const MiniModel::BoolRel &r, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post Boolean relation.
IntVar Gecode::abs (Space *home, IntVar x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $|x|$.
IntVar Gecode::min (Space *home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $\min(x,y)$.
IntVar Gecode::min (Space *home, const IntVarArgs &x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $\min(x)$.
IntVar Gecode::max (Space *home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $\max(x,y)$.
IntVar Gecode::max (Space *home, const IntVarArgs &x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $\max(x)$.
IntVar Gecode::mult (Space *home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $x\cdot y$.
IntVar Gecode::sqr (Space *home, IntVar x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $x^2$.
IntVar Gecode::sqrt (Space *home, IntVar x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $\lfloor\sqrt{x}\rfloor$.
IntVar Gecode::plus (Space *home, IntVar x, IntVar y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return variable constrained to $x+y$.
IntVar Gecode::minus (Space *home, IntVar x, IntVar y, IntConLevel icl, PropKind pk)
BoolVar Gecode::channel (Space *home, IntVar x, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return Boolean variable equal to $x$.
IntVar Gecode::channel (Space *home, BoolVar b, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Return integer variable equal to $b$.
void Gecode::atmost (Space *home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq m$.
void Gecode::atmost (Space *home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq m$.
void Gecode::atmost (Space *home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq m$.
void Gecode::atmost (Space *home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\leq z$.
void Gecode::atmost (Space *home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\leq z$.
void Gecode::atmost (Space *home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\leq z$.
void Gecode::atleast (Space *home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq m$.
void Gecode::atleast (Space *home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq m$.
void Gecode::atleast (Space *home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq m$.
void Gecode::atleast (Space *home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}\geq z$.
void Gecode::atleast (Space *home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}\geq z$.
void Gecode::atleast (Space *home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}\geq z$.
void Gecode::exactly (Space *home, const IntVarArgs &x, int n, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=m$.
void Gecode::exactly (Space *home, const IntVarArgs &x, IntVar y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=m$.
void Gecode::exactly (Space *home, const IntVarArgs &x, const IntArgs &y, int m, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=m$.
void Gecode::exactly (Space *home, const IntVarArgs &x, int n, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=n\}=z$.
void Gecode::exactly (Space *home, const IntVarArgs &x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y\}=z$.
void Gecode::exactly (Space *home, const IntVarArgs &x, const IntArgs &y, IntVar z, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $\#\{i\in\{0,\ldots,|x|-1\}\;|\;x_i=y_i\}=z$.
void Gecode::lex (Space *home, const IntVarArgs &x, IntRelType r, const IntVarArgs &y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for lexical order between x and y.


Define Documentation

#define GECODE_MINIMODEL_EXPORT   __attribute__ ((visibility("default")))

Definition at line 71 of file minimodel.hh.