Generated on Thu Jan 20 2022 00:00:00 for Gecode by doxygen 1.9.1
float.hh File Reference

Go to the source code of this file.

Classes

class  Gecode::Float::Rounding
 Floating point rounding policy. More...
 
class  Gecode::FloatVal
 Float value type. More...
 
class  Gecode::FloatVar
 Float variables. More...
 
class  Gecode::FloatValArgs
 Passing float arguments. More...
 
class  Gecode::FloatVarArgs
 Passing float variables. More...
 
class  Gecode::FloatVarArray
 Float variable array. More...
 
class  Gecode::FloatNumBranch
 Value description class for branching. More...
 
class  Gecode::FloatAFC
 Recording AFC information for float variables. More...
 
class  Gecode::FloatAction
 Recording actions for float variables. More...
 
class  Gecode::FloatCHB
 Recording CHB for float variables. More...
 
class  Gecode::FloatVarBranch
 Which variable to select for branching. More...
 
class  Gecode::FloatValBranch
 Which values to select for branching first. More...
 
class  Gecode::FloatAssign
 Which values to select for assignment. More...
 
class  Gecode::FloatTraceDelta
 Trace delta information for float variables. More...
 
class  Gecode::StdFloatTracer
 Standard float variable tracer. More...
 

Namespaces

 Gecode::Float
 Floating point numbers.
 
 Gecode::Float::Limits
 Numerical limits for floating point variables.
 

Macros

#define GECODE_FLOAT_EXPORT
 
#define GECODE_LIBRARY_NAME   "Float"
 

Typedefs

typedef double Gecode::FloatNum
 Floating point number base type. More...
 
typedef boost::numeric::interval_lib::rounded_arith_opp< FloatNum > Gecode::Float::RoundingBase
 Rounding Base class (optimized version) More...
 
typedef std::function< bool(const Space &home, FloatVar x, int i)> Gecode::FloatBranchFilter
 Branch filter function type for float variables. More...
 
typedef std::function< double(const Space &home, FloatVar x, int i)> Gecode::FloatBranchMerit
 Branch merit function type for float variables. More...
 
typedef std::function< FloatNumBranch(const Space &home, FloatVar x, int i)> Gecode::FloatBranchVal
 Branch value function type for float variables. More...
 
typedef std::function< void(Space &home, unsigned int a, FloatVar x, int i, FloatNumBranch nl)> Gecode::FloatBranchCommit
 Branch commit function type for float variables. More...
 
typedef std::function< void(const Space &home, const Brancher &b, unsigned int a, FloatVar x, int i, const FloatNumBranch &n, std::ostream &o)> Gecode::FloatVarValPrint
 Function type for explaining branching alternatives for float variables. More...
 
typedef ViewTracer< Float::FloatView > Gecode::FloatTracer
 Tracer for float variables. More...
 
typedef ViewTraceRecorder< Float::FloatView > Gecode::FloatTraceRecorder
 Trace recorder for float variables. More...
 

Enumerations

enum  Gecode::FloatRelType {
  Gecode::FRT_EQ , Gecode::FRT_NQ , Gecode::FRT_LQ , Gecode::FRT_LE ,
  Gecode::FRT_GQ , Gecode::FRT_GR
}
 Relation types for floats. More...
 

Functions

FloatNum Gecode::pi_half_lower (void)
 Return lower bound of $\pi/2$. More...
 
FloatNum Gecode::pi_half_upper (void)
 Return upper bound of $\pi/2$. More...
 
FloatNum Gecode::pi_lower (void)
 Return lower bound of $\pi$. More...
 
FloatNum Gecode::pi_upper (void)
 Return upper bound of $\pi$. More...
 
FloatNum Gecode::pi_twice_lower (void)
 Return lower bound of $2\pi$. More...
 
FloatNum Gecode::pi_twice_upper (void)
 Return upper bound of $2\pi$. More...
 
bool Gecode::Float::Limits::valid (const FloatVal &n)
 Return whether float n is a valid number. More...
 
void Gecode::Float::Limits::check (const FloatVal &n, const char *l)
 Check whether float n is a valid number, otherwise throw out of limits exception with information l. More...
 
void Gecode::dom (Home home, FloatVar x, FloatVal n)
 Propagates $x=n$. More...
 
void Gecode::dom (Home home, const FloatVarArgs &x, FloatVal n)
 Propagates $ x_i=n$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, FloatVar x, FloatNum l, FloatNum m)
 Propagates $ l\leq x\leq u$. More...
 
void Gecode::dom (Home home, const FloatVarArgs &x, FloatNum l, FloatNum u)
 Propagates $ l\leq x_i\leq u$ for all $0\leq i<|x|$. More...
 
void Gecode::dom (Home home, FloatVar x, FloatVal n, Reify r)
 Post domain consistent propagator for $ (x=n) \equiv r$. More...
 
void Gecode::dom (Home home, FloatVar x, FloatNum l, FloatNum u, Reify r)
 Post domain consistent propagator for $ (l\leq x \leq u) \equiv r$. More...
 
void Gecode::dom (Home home, FloatVar x, FloatVar d)
 Constrain domain of x according to domain of d. More...
 
void Gecode::dom (Home home, const FloatVarArgs &x, const FloatVarArgs &d)
 Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$. More...
 
void Gecode::rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
 Post propagator for $ x_0 \sim_{frt} x_1$. More...
 
void Gecode::rel (Home home, FloatVar x, FloatRelType frt, FloatVal c)
 Propagates $ x \sim_{frt} c$. More...
 
void Gecode::rel (Home home, FloatVar x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $(x \sim_{frt} c)\equiv r$. More...
 
void Gecode::rel (Home home, FloatVar x0, FloatRelType frt, FloatVar x1, Reify r)
 Post propagator for $(x_0 \sim_{frt} x_1)\equiv r$. More...
 
void Gecode::rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Propagates $ x_i \sim_{frt} c $ for all $0\leq i<|x|$. More...
 
void Gecode::rel (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Propagates $ x_i \sim_{frt} y $ for all $0\leq i<|x|$. More...
 
void Gecode::ite (Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
 Post propagator for if-then-else constraint. More...
 
void Gecode::min (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \min\{x_0,x_1\}=x_2$. More...
 
void Gecode::min (Home home, const FloatVarArgs &x, FloatVar y)
 Post propagator for $ \min x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown. More...
 
void Gecode::max (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $ \max\{x_0,x_1\}=x_2$. More...
 
void Gecode::max (Home home, const FloatVarArgs &x, FloatVar y)
 Post propagator for $ \max x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown. More...
 
void Gecode::abs (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ |x_0|=x_1$. More...
 
void Gecode::mult (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\cdot x_1=x_2$. More...
 
void Gecode::sqr (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $x_0\cdot x_0=x_1$. More...
 
void Gecode::sqrt (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $\sqrt{x_0}=x_1$. More...
 
void Gecode::pow (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{n}=x_1$ for $n\geq 0$. More...
 
void Gecode::nroot (Home home, FloatVar x0, int n, FloatVar x1)
 Post propagator for ${x_0}^{1/n}=x_1$ for $n\geq 0$. More...
 
void Gecode::div (Home home, FloatVar x0, FloatVar x1, FloatVar x2)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$. More...
 
void Gecode::exp (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{exp}(x_0)=x_1$. More...
 
void Gecode::log (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_e(x_0)=x_1$. More...
 
void Gecode::pow (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathit{base}^{x_0}=x_1$. More...
 
void Gecode::log (Home home, FloatNum base, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{log}_{\mathit{base}}(x_0)=x_1$. More...
 
void Gecode::asin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{asin}(x_0)=x_1$. More...
 
void Gecode::sin (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{sin}(x_0)=x_1$. More...
 
void Gecode::acos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{acos}(x_0)=x_1$. More...
 
void Gecode::cos (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{cos}(x_0)=x_1$. More...
 
void Gecode::atan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{atan}(x_0)=x_1$. More...
 
void Gecode::tan (Home home, FloatVar x0, FloatVar x1)
 Post propagator for $ \mathrm{tan}(x_0)=x_1$. More...
 
void Gecode::linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} c$. More...
 
void Gecode::linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_{frt} y$. More...
 
void Gecode::linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{frt} c\right)\equiv r$. More...
 
void Gecode::linear (Home home, const FloatVarArgs &x, FloatRelType frt, FloatVar y, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_{frt} y\right)\equiv r$. More...
 
void Gecode::linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVal c)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} c$. More...
 
void Gecode::linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVar y)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} y$. More...
 
void Gecode::linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVal c, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} c\right)\equiv r$. More...
 
void Gecode::linear (Home home, const FloatValArgs &a, const FloatVarArgs &x, FloatRelType frt, FloatVar y, Reify r)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_{frt} y\right)\equiv r$. More...
 
void Gecode::channel (Home home, FloatVar x0, IntVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$. More...
 
void Gecode::channel (Home home, IntVar x0, FloatVar x1)
 Post propagator for channeling a float and an integer variable $ x_0 = x_1$. More...
 
void Gecode::channel (Home home, FloatVar x0, BoolVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$. More...
 
void Gecode::channel (Home home, BoolVar x0, FloatVar x1)
 Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$. More...
 
void Gecode::wait (Home home, FloatVar x, std::function< void(Space &home)> c)
 Execute c when x becomes assigned. More...
 
void Gecode::wait (Home home, const FloatVarArgs &x, std::function< void(Space &home)> c)
 Execute c when all variables in x become assigned. More...
 
FloatVarBranch Gecode::FLOAT_VAR_NONE (void)
 Select first unassigned variable. More...
 
FloatVarBranch Gecode::FLOAT_VAR_RND (Rnd r)
 Select random variable (uniform distribution, for tie breaking) More...
 
FloatVarBranch Gecode::FLOAT_VAR_MERIT_MIN (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with least merit according to branch merit function bm. More...
 
FloatVarBranch Gecode::FLOAT_VAR_MERIT_MAX (FloatBranchMerit bm, BranchTbl tbl=nullptr)
 Select variable with highest merit according to branch merit function bm. More...
 
FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree. More...
 
FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with lowest action with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with lowest action. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with highest action with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with highest action. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN (BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with lowest CHB Q-score. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX (BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with highest CHB Q-score. More...
 
FloatVarBranch Gecode::FLOAT_VAR_MIN_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest min. More...
 
FloatVarBranch Gecode::FLOAT_VAR_MIN_MAX (BranchTbl tbl=nullptr)
 Select variable with largest min. More...
 
FloatVarBranch Gecode::FLOAT_VAR_MAX_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest max. More...
 
FloatVarBranch Gecode::FLOAT_VAR_MAX_MAX (BranchTbl tbl=nullptr)
 Select variable with largest max. More...
 
FloatVarBranch Gecode::FLOAT_VAR_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest degree divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest degree divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smalllest accumulated failure count divided by domain size with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with smallest accumulated failure count divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX (FloatAFC a, BranchTbl tbl=nullptr)
 Select variable with largest accumulated failure count divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with smallest action divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX (double d=1.0, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size with decay factor d. More...
 
FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX (FloatAction a, BranchTbl tbl=nullptr)
 Select variable with largest action divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN (BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN (FloatCHB c, BranchTbl tbl=nullptr)
 Select variable with smallest CHB Q-score divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX (BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX (FloatCHB a, BranchTbl tbl=nullptr)
 Select variable with largest CHB Q-score divided by domain size. More...
 
FloatValBranch Gecode::FLOAT_VAL_SPLIT_MIN (void)
 Select values not greater than mean of smallest and largest value. More...
 
FloatValBranch Gecode::FLOAT_VAL_SPLIT_MAX (void)
 Select values greater than mean of smallest and largest value. More...
 
FloatValBranch Gecode::FLOAT_VAL_SPLIT_RND (Rnd r)
 Select values randomly which are not greater or not smaller than mean of largest and smallest value. More...
 
FloatValBranch Gecode::FLOAT_VAL (FloatBranchVal v, FloatBranchCommit c)
 
FloatAssign Gecode::FLOAT_ASSIGN_MIN (void)
 Select median value of the lower part. More...
 
FloatAssign Gecode::FLOAT_ASSIGN_MAX (void)
 Select median value of the upper part. More...
 
FloatAssign Gecode::FLOAT_ASSIGN_RND (Rnd r)
 Select median value of a randomly chosen part. More...
 
FloatAssign Gecode::FLOAT_ASSIGN (FloatBranchVal v, FloatBranchCommit c)
 
void Gecode::branch (Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with variable selection vars and value selection vals. More...
 
void Gecode::branch (Home home, const FloatVarArgs &x, TieBreak< FloatVarBranch > vars, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::branch (Home home, FloatVar x, FloatValBranch vals, FloatVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const FloatVarArgs &x, FloatVarBranch vars, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, const FloatVarArgs &x, TieBreak< FloatVarBranch > vars, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with tie-breaking variable selection vars and value selection vals. More...
 
void Gecode::assign (Home home, FloatVar x, FloatAssign vals, FloatVarValPrint vvp=nullptr)
 Assign x with value selection vals. More...
 
void Gecode::branch (Home home, const FloatVarArgs &x, FloatValBranch vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Branch over x with value selection vals. More...
 
void Gecode::assign (Home home, const FloatVarArgs &x, FloatAssign vals, FloatBranchFilter bf=nullptr, FloatVarValPrint vvp=nullptr)
 Assign all x with value selection vals. More...
 
void Gecode::relax (Home home, const FloatVarArgs &x, const FloatVarArgs &sx, Rnd r, double p)
 
void Gecode::trace (Home home, const FloatVarArgs &x, TraceFilter tf, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
 Create a tracer for float variables. More...
 
void Gecode::trace (Home home, const FloatVarArgs &x, int te=(TE_INIT|TE_PRUNE|TE_FIX|TE_FAIL|TE_DONE), FloatTracer &t=StdFloatTracer::def)
 Create a tracer for float variables. More...
 

Variables

const FloatNum Gecode::Float::Limits::max = std::numeric_limits<FloatNum>::max()
 Largest allowed float value. More...
 
const FloatNum Gecode::Float::Limits::min = -max
 Smallest allowed float value. More...
 

Macro Definition Documentation

◆ GECODE_FLOAT_EXPORT

#define GECODE_FLOAT_EXPORT

Definition at line 68 of file float.hh.

◆ GECODE_LIBRARY_NAME

#define GECODE_LIBRARY_NAME   "Float"

Definition at line 75 of file float.hh.

Typedef Documentation

◆ FloatVarValPrint

typedef std::function<void(const Space &home, const Brancher& b, unsigned int a, FloatVar x, int i, const FloatNumBranch& n, std::ostream& o)> Gecode::FloatVarValPrint

Function type for explaining branching alternatives for float variables.

Definition at line 1657 of file float.hh.

Function Documentation

◆ pi_half_lower()

FloatNum Gecode::pi_half_lower ( void  )
inline

Return lower bound of $\pi/2$.

Definition at line 37 of file num.hpp.

◆ pi_half_upper()

FloatNum Gecode::pi_half_upper ( void  )
inline

Return upper bound of $\pi/2$.

Definition at line 41 of file num.hpp.

◆ pi_lower()

FloatNum Gecode::pi_lower ( void  )
inline

Return lower bound of $\pi$.

Definition at line 45 of file num.hpp.

◆ pi_upper()

FloatNum Gecode::pi_upper ( void  )
inline

Return upper bound of $\pi$.

Definition at line 49 of file num.hpp.

◆ pi_twice_lower()

FloatNum Gecode::pi_twice_lower ( void  )
inline

Return lower bound of $2\pi$.

Definition at line 53 of file num.hpp.

◆ pi_twice_upper()

FloatNum Gecode::pi_twice_upper ( void  )
inline

Return upper bound of $2\pi$.

Definition at line 57 of file num.hpp.

◆ dom() [1/8]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatVal  n 
)

Propagates $x=n$.

Definition at line 40 of file dom.cpp.

◆ dom() [2/8]

void Gecode::dom ( Home  home,
const FloatVarArgs x,
FloatVal  n 
)

Propagates $ x_i=n$ for all $0\leq i<|x|$.

Definition at line 49 of file dom.cpp.

◆ dom() [3/8]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatNum  min,
FloatNum  max 
)

Propagates $ l\leq x\leq u$.

Definition at line 60 of file dom.cpp.

◆ dom() [4/8]

void Gecode::dom ( Home  home,
const FloatVarArgs x,
FloatNum  min,
FloatNum  max 
)

Propagates $ l\leq x_i\leq u$ for all $0\leq i<|x|$.

Definition at line 71 of file dom.cpp.

◆ dom() [5/8]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatVal  n,
Reify  r 
)

Post domain consistent propagator for $ (x=n) \equiv r$.

Definition at line 84 of file dom.cpp.

◆ dom() [6/8]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatNum  min,
FloatNum  max,
Reify  r 
)

Post domain consistent propagator for $ (l\leq x \leq u) \equiv r$.

Definition at line 106 of file dom.cpp.

◆ dom() [7/8]

void Gecode::dom ( Home  home,
FloatVar  x,
FloatVar  d 
)

Constrain domain of x according to domain of d.

Definition at line 126 of file dom.cpp.

◆ dom() [8/8]

void Gecode::dom ( Home  home,
const FloatVarArgs x,
const FloatVarArgs d 
)

Constrain domain of $ x_i $ according to domain of $ d_i $ for all $0\leq i<|x|$.

Definition at line 137 of file dom.cpp.

◆ min() [1/2]

void Gecode::min ( Home  home,
FloatVar  x0,
FloatVar  x1,
FloatVar  x2 
)

Post propagator for $ \min\{x_0,x_1\}=x_2$.

Definition at line 67 of file arithmetic.cpp.

◆ min() [2/2]

void Gecode::min ( Home  home,
const FloatVarArgs x,
FloatVar  y 
)

Post propagator for $ \min x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown.

Definition at line 74 of file arithmetic.cpp.

◆ max() [1/2]

void Gecode::max ( Home  home,
FloatVar  x0,
FloatVar  x1,
FloatVar  x2 
)

Post propagator for $ \max\{x_0,x_1\}=x_2$.

Definition at line 49 of file arithmetic.cpp.

◆ max() [2/2]

void Gecode::max ( Home  home,
const FloatVarArgs x,
FloatVar  y 
)

Post propagator for $ \max x=y$ If x is empty, an exception of type Float::TooFewArguments is thrown.

Definition at line 56 of file arithmetic.cpp.

◆ abs()

void Gecode::abs ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ |x_0|=x_1$.

Definition at line 41 of file arithmetic.cpp.

◆ mult()

void Gecode::mult ( Home  home,
FloatVar  x0,
FloatVar  x1,
FloatVar  x2 
)

Post propagator for $x_0\cdot x_1=x_2$.

Definition at line 88 of file arithmetic.cpp.

◆ sqr()

void Gecode::sqr ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $x_0\cdot x_0=x_1$.

Definition at line 95 of file arithmetic.cpp.

◆ sqrt()

void Gecode::sqrt ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $\sqrt{x_0}=x_1$.

Definition at line 102 of file arithmetic.cpp.

◆ pow() [1/2]

void Gecode::pow ( Home  home,
FloatVar  x0,
int  n,
FloatVar  x1 
)

Post propagator for ${x_0}^{n}=x_1$ for $n\geq 0$.

Definition at line 109 of file arithmetic.cpp.

◆ nroot()

void Gecode::nroot ( Home  home,
FloatVar  x0,
int  n,
FloatVar  x1 
)

Post propagator for ${x_0}^{1/n}=x_1$ for $n\geq 0$.

Definition at line 118 of file arithmetic.cpp.

◆ div()

void Gecode::div ( Home  home,
FloatVar  x0,
FloatVar  x1,
FloatVar  x2 
)

Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.

Definition at line 127 of file arithmetic.cpp.

◆ exp()

void Gecode::exp ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{exp}(x_0)=x_1$.

Definition at line 45 of file transcendental.cpp.

◆ log() [1/2]

void Gecode::log ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{log}_e(x_0)=x_1$.

Definition at line 53 of file transcendental.cpp.

◆ pow() [2/2]

void Gecode::pow ( Home  home,
FloatNum  base,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathit{base}^{x_0}=x_1$.

Definition at line 69 of file transcendental.cpp.

◆ log() [2/2]

void Gecode::log ( Home  home,
FloatNum  base,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{log}_{\mathit{base}}(x_0)=x_1$.

Definition at line 61 of file transcendental.cpp.

◆ asin()

void Gecode::asin ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{asin}(x_0)=x_1$.

Definition at line 45 of file trigonometric.cpp.

◆ sin()

void Gecode::sin ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{sin}(x_0)=x_1$.

Definition at line 52 of file trigonometric.cpp.

◆ acos()

void Gecode::acos ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{acos}(x_0)=x_1$.

Definition at line 59 of file trigonometric.cpp.

◆ cos()

void Gecode::cos ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{cos}(x_0)=x_1$.

Definition at line 66 of file trigonometric.cpp.

◆ atan()

void Gecode::atan ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{atan}(x_0)=x_1$.

Definition at line 73 of file trigonometric.cpp.

◆ tan()

void Gecode::tan ( Home  home,
FloatVar  x0,
FloatVar  x1 
)

Post propagator for $ \mathrm{tan}(x_0)=x_1$.

Definition at line 80 of file trigonometric.cpp.

◆ channel() [1/4]

void Gecode::channel ( Home  home,
FloatVar  x0,
IntVar  x1 
)

Post propagator for channeling a float and an integer variable $ x_0 = x_1$.

Definition at line 41 of file channel.cpp.

◆ channel() [2/4]

void Gecode::channel ( Home  home,
IntVar  x0,
FloatVar  x1 
)
inline

Post propagator for channeling a float and an integer variable $ x_0 = x_1$.

Definition at line 39 of file channel.hpp.

◆ channel() [3/4]

void Gecode::channel ( Home  home,
FloatVar  x0,
BoolVar  x1 
)

Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.

Definition at line 49 of file channel.cpp.

◆ channel() [4/4]

void Gecode::channel ( Home  home,
BoolVar  x0,
FloatVar  x1 
)
inline

Post propagator for channeling a float and a Boolean variable $ x_0 = x_1$.

Definition at line 44 of file channel.hpp.

◆ wait() [1/2]

void Gecode::wait ( Home  home,
FloatVar  x,
std::function< void(Space &home)>  c 
)

Execute c when x becomes assigned.

Definition at line 39 of file exec.cpp.

◆ wait() [2/2]

void Gecode::wait ( Home  home,
const FloatVarArgs x,
std::function< void(Space &home)>  c 
)

Execute c when all variables in x become assigned.

Definition at line 45 of file exec.cpp.

◆ FLOAT_VAR_NONE()

FloatVarBranch Gecode::FLOAT_VAR_NONE ( void  )
inline

Select first unassigned variable.

Definition at line 97 of file var.hpp.

◆ FLOAT_VAR_RND()

FloatVarBranch Gecode::FLOAT_VAR_RND ( Rnd  r)
inline

Select random variable (uniform distribution, for tie breaking)

Definition at line 112 of file var.hpp.

◆ FLOAT_VAR_MERIT_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MERIT_MIN ( FloatBranchMerit  bm,
BranchTbl  tbl 
)
inline

Select variable with least merit according to branch merit function bm.

Definition at line 102 of file var.hpp.

◆ FLOAT_VAR_MERIT_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MERIT_MAX ( FloatBranchMerit  bm,
BranchTbl  tbl 
)
inline

Select variable with highest merit according to branch merit function bm.

Definition at line 107 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree.

Definition at line 117 of file var.hpp.

◆ FLOAT_VAR_DEGREE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree.

Definition at line 122 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN ( double  d,
BranchTbl  tbl 
)
inline

Select variable with smallest accumulated failure count with decay factor d.

Definition at line 127 of file var.hpp.

◆ FLOAT_VAR_AFC_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MIN ( FloatAFC  a,
BranchTbl  tbl 
)
inline

Select variable with smallest accumulated failure count.

Definition at line 132 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX ( double  d,
BranchTbl  tbl 
)
inline

Select variable with largest accumulated failure count with decay factor d.

Definition at line 137 of file var.hpp.

◆ FLOAT_VAR_AFC_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_MAX ( FloatAFC  a,
BranchTbl  tbl 
)
inline

Select variable with largest accumulated failure count.

Definition at line 142 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN ( double  d,
BranchTbl  tbl 
)
inline

Select variable with lowest action with decay factor d.

Definition at line 147 of file var.hpp.

◆ FLOAT_VAR_ACTION_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MIN ( FloatAction  a,
BranchTbl  tbl 
)
inline

Select variable with lowest action.

Definition at line 152 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX ( double  d,
BranchTbl  tbl 
)
inline

Select variable with highest action with decay factor d.

Definition at line 157 of file var.hpp.

◆ FLOAT_VAR_ACTION_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_MAX ( FloatAction  a,
BranchTbl  tbl 
)
inline

Select variable with highest action.

Definition at line 162 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( BranchTbl  tbl)
inline

Select variable with lowest CHB Q-score.

Definition at line 167 of file var.hpp.

◆ FLOAT_VAR_CHB_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MIN ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with lowest CHB Q-score.

Definition at line 172 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( BranchTbl  tbl)
inline

Select variable with highest CHB Q-score.

Definition at line 177 of file var.hpp.

◆ FLOAT_VAR_CHB_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_MAX ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with highest CHB Q-score.

Definition at line 182 of file var.hpp.

◆ FLOAT_VAR_MIN_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MIN ( BranchTbl  tbl)
inline

Select variable with smallest min.

Definition at line 187 of file var.hpp.

◆ FLOAT_VAR_MIN_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MIN_MAX ( BranchTbl  tbl)
inline

Select variable with largest min.

Definition at line 192 of file var.hpp.

◆ FLOAT_VAR_MAX_MIN()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MIN ( BranchTbl  tbl)
inline

Select variable with smallest max.

Definition at line 197 of file var.hpp.

◆ FLOAT_VAR_MAX_MAX()

FloatVarBranch Gecode::FLOAT_VAR_MAX_MAX ( BranchTbl  tbl)
inline

Select variable with largest max.

Definition at line 202 of file var.hpp.

◆ FLOAT_VAR_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest domain size.

Definition at line 207 of file var.hpp.

◆ FLOAT_VAR_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest domain size.

Definition at line 212 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MIN()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest degree divided by domain size.

Definition at line 217 of file var.hpp.

◆ FLOAT_VAR_DEGREE_SIZE_MAX()

FloatVarBranch Gecode::FLOAT_VAR_DEGREE_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest degree divided by domain size.

Definition at line 222 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN ( double  d,
BranchTbl  tbl 
)
inline

Select variable with smalllest accumulated failure count divided by domain size with decay factor d.

Definition at line 227 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MIN ( FloatAFC  a,
BranchTbl  tbl 
)
inline

Select variable with smallest accumulated failure count divided by domain size.

Definition at line 232 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX ( double  d,
BranchTbl  tbl 
)
inline

Select variable with largest accumulated failure count divided by domain size with decay factor d.

Definition at line 237 of file var.hpp.

◆ FLOAT_VAR_AFC_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_AFC_SIZE_MAX ( FloatAFC  a,
BranchTbl  tbl 
)
inline

Select variable with largest accumulated failure count divided by domain size.

Definition at line 242 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN ( double  d,
BranchTbl  tbl 
)
inline

Select variable with smallest action divided by domain size with decay factor d.

Definition at line 247 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MIN ( FloatAction  a,
BranchTbl  tbl 
)
inline

Select variable with smallest action divided by domain size.

Definition at line 252 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX ( double  d,
BranchTbl  tbl 
)
inline

Select variable with largest action divided by domain size with decay factor d.

Definition at line 257 of file var.hpp.

◆ FLOAT_VAR_ACTION_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_ACTION_SIZE_MAX ( FloatAction  a,
BranchTbl  tbl 
)
inline

Select variable with largest action divided by domain size.

Definition at line 262 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN ( BranchTbl  tbl)
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 267 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MIN() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MIN ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with smallest CHB Q-score divided by domain size.

Definition at line 272 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [1/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( BranchTbl  tbl)
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 277 of file var.hpp.

◆ FLOAT_VAR_CHB_SIZE_MAX() [2/2]

FloatVarBranch Gecode::FLOAT_VAR_CHB_SIZE_MAX ( FloatCHB  c,
BranchTbl  tbl 
)
inline

Select variable with largest CHB Q-score divided by domain size.

Definition at line 282 of file var.hpp.

◆ FLOAT_VAL_SPLIT_MIN()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_MIN ( void  )
inline

Select values not greater than mean of smallest and largest value.

Definition at line 55 of file val.hpp.

◆ FLOAT_VAL_SPLIT_MAX()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_MAX ( void  )
inline

Select values greater than mean of smallest and largest value.

Definition at line 60 of file val.hpp.

◆ FLOAT_VAL_SPLIT_RND()

FloatValBranch Gecode::FLOAT_VAL_SPLIT_RND ( Rnd  r)
inline

Select values randomly which are not greater or not smaller than mean of largest and smallest value.

Definition at line 65 of file val.hpp.

◆ FLOAT_VAL()

FloatValBranch Gecode::FLOAT_VAL ( FloatBranchVal  v,
FloatBranchCommit  c = nullptr 
)
inline

Select value as defined by the value function v and commit function c The default commit function posts the constraint that the float variable x must be less or equal than the value n for the first alternative and that x must be greater or equal than n otherwise.

Definition at line 70 of file val.hpp.

◆ FLOAT_ASSIGN_MIN()

FloatAssign Gecode::FLOAT_ASSIGN_MIN ( void  )
inline

Select median value of the lower part.

Definition at line 55 of file assign.hpp.

◆ FLOAT_ASSIGN_MAX()

FloatAssign Gecode::FLOAT_ASSIGN_MAX ( void  )
inline

Select median value of the upper part.

Definition at line 60 of file assign.hpp.

◆ FLOAT_ASSIGN_RND()

FloatAssign Gecode::FLOAT_ASSIGN_RND ( Rnd  r)
inline

Select median value of a randomly chosen part.

Definition at line 65 of file assign.hpp.

◆ FLOAT_ASSIGN()

FloatAssign Gecode::FLOAT_ASSIGN ( FloatBranchVal  v,
FloatBranchCommit  c = nullptr 
)
inline

Select value as defined by the value function v and commit function c The default commit function posts the constraint that the float variable x must be less or equal than the value n.

Definition at line 70 of file assign.hpp.

◆ relax()

void Gecode::relax ( Home  home,
const FloatVarArgs x,
const FloatVarArgs sx,
Rnd  r,
double  p 
)

Definition at line 57 of file relax.cpp.