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

Gecode Namespace Reference
[Boolean expressions and relationsMatrix interface for arrays]


Detailed Description

Gecode toplevel namespace.

The Gecode namespace contains nested namespaces for the various submodules (for example Int for the definition of integer propagator classes). Functionality that is used for interfacing (search engines, variables, and so on) or belongs to the Gecode Kernel is contained directly in the Gecode namespace.


Classes

class  ArrayTraits< CpltSetVarArray >
 Traits of CpltSetVarArray. More...
class  ArrayTraits< CpltSetVarArgs >
 Traits of CpltSetVarArgs. More...
class  BddMgrException
 Exception: Error in the Buddy ROBDD manager More...
class  VarImpVarTraits< CpltSet::CpltSetVarImp >
 Traits class for variable implementations and variables. More...
class  ViewVarImpTraits< CpltSet::CpltSetView >
 Traits class for views and variable implementations. More...
class  CpltSetVar
 Finite set variable with complete domain representation. More...
class  CpltSetVarGlbRanges
 Range iterator for the greatest lower bound of a bdd variable. More...
class  CpltSetVarGlbValues
 Value iterator for the greatest lower bound of a bdd variable. More...
class  CpltSetVarLubRanges
 Range iterator for the least upper bound of a bdd variable. More...
class  CpltSetVarLubValues
 Value iterator for the least upper bound of a bdd variable. More...
class  CpltSetVarUnknownRanges
 Range iterator for the unknown set of a bdd variable. More...
class  CpltSetVarArray
 CpltSet variable array More...
class  ArrayTraits< IntVarArray >
 Traits of IntVarArray. More...
class  ArrayTraits< IntVarArgs >
 Traits of IntVarArgs. More...
class  ArrayTraits< IntArgs >
 Traits of IntArgs. More...
class  ArrayTraits< BoolVarArray >
 Traits of BoolVarArray. More...
class  ArrayTraits< BoolVarArgs >
 Traits of BoolVarArgs. More...
class  TupleSet
 Data stored for a Table. More...
class  ViewArray< Int::Linear::NoView >
 View array for no view (empty). More...
class  ReUnaryPropagator
 Reified unary propagator. More...
class  ReBinaryPropagator
 Reified binary propagator. More...
class  VarImpVarTraits< Int::IntVarImp >
 Traits class for variable implementations and variables. More...
class  VarImpVarTraits< Int::BoolVarImp >
 Traits class for variable implementations and variables. More...
class  ViewVarImpTraits< Int::IntView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< IntVar >
 Traits class mapping variables to views. More...
class  DomainSize< Int::IntView >
 Class providing domain size info. More...
class  ViewVarImpTraits< Int::MinusView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::OffsetView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ScaleView< Val, UnsVal > >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ConstIntView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::ZeroIntView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Int::BoolView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< BoolVar >
 Traits class mapping variables to views. More...
class  DomainSize< Int::BoolView >
 Class providing domain size info. More...
class  ViewVarImpTraits< Int::NegBoolView >
 Traits class for views and variable implementations. More...
class  IntSet
 Integer sets. More...
class  IntSetRanges
 Range iterator for integer sets. More...
class  IntSetValues
 Value iterator for integer sets. More...
class  IntVar
 Integer variables. More...
class  IntVarRanges
 Range iterator for integer variables More...
class  IntVarValues
 Value iterator for integer variables. More...
class  BoolVar
 Boolean integer variables. More...
class  IntVarArray
 Integer variable array. More...
class  BoolVarArray
 Boolean variable array. More...
class  DFA
 Deterministic finite automaton (DFA). More...
class  ViewAdvisor
 Advisor storing a single view. More...
class  VarArray
 Variable arrays More...
class  ViewArray
 View arrays. More...
class  ArgArrayBase
 Base-class for argument arrays. More...
class  PrimArgArray
 Argument array for primtive types. More...
class  VarArgArray
 Argument array for variables. More...
class  ArrayTraits
 Traits of arrays in Gecode. More...
class  ViewValBranching
 Generic branching. More...
class  ViewValAssignment
 Generic assignment. More...
class  PosValDesc
 Branching descriptions storing position and value More...
class  SharedHandle
 The shared handle. More...
class  NoIdxVarImpConf
 Configuration class for variable implementations without index structure. More...
class  VarImpBase
 Base-class for variable implementations. More...
class  VarDisposerBase
 Base class for Variable type disposer. More...
class  VarDisposer
 Variable type disposer More...
class  Delta
 Generic domain change information to be supplied to advisors. More...
class  VarImp
 Base-class for variable implementations. More...
class  ActorLink
 Double-linked list for actors. More...
class  Actor
 Base-class for both propagators and branchings. More...
class  Propagator
 Base-class for propagators. More...
class  Council
 Council of advisors. More...
class  Advisors
 Class to iterate over advisors of a council. More...
class  Advisor
 Base-class for advisors. More...
class  BranchingDesc
 Branch description for batch recomputation. More...
class  Branching
 Base-class for branchings. More...
class  Space
 Computation spaces. More...
class  SpaceFailed
 Exception: Operation on failed space invoked More...
class  SpaceNotStable
 Exception: Operation on not stable space invoked More...
class  SpaceNoBranching
 Exception: Commit when no branching present More...
class  SpaceIllegalAlternative
 Exception: Commit with illegal alternative More...
class  FreeList
 Base-class for freelist-managed objects. More...
class  MemoryManager
 Manage memory for space. More...
class  UnaryPropagator
 Unary propagator. More...
class  BinaryPropagator
 Binary propagator. More...
class  TernaryPropagator
 Ternary propagator. More...
class  NaryPropagator
 n-ary propagator More...
class  NaryOnePropagator
 (n+1)-ary propagator More...
class  MixBinaryPropagator
 Mixed binary propagator. More...
class  MixTernaryPropagator
 Mixed ternary propagator. More...
class  MixNaryOnePropagator
 Mixed (n+1)-ary propagator. More...
class  SharedArray
 Shared array with arbitrary number of elements. More...
class  SharedArraySerialization
 Serialization helper for SharedArray objects. More...
class  SharedArraySerialization< int >
 Serialization helper for SharedArray<int> objects. More...
class  VarViewTraits
 Traits class for mapping variables to views. More...
class  VarImpVarTraits
 Traits class for mapping variable implementations to variables. More...
class  ViewVarImpTraits
 Traits class for views and variable implementations. More...
class  DomainSize
 Traits class for variable domain size. More...
class  AllVarConf
 Configuration for all variable implementations. More...
class  VarBase
 Base-class for variables. More...
class  ConstViewBase
 Base-class for constant views. More...
class  VarViewBase
 Base-class for variable views. More...
class  DerivedViewBase
 Base-class for derived views. More...
class  REG
 Regular expressions over integer values. More...
class  DFS
 Depth-first search engine. More...
class  LDS
 Limited discrepancy search engine. More...
class  BAB
 Depth-first branch-and-bound search engine. More...
class  Restart
 Depth-first restart best solution search engine. More...
class  ArrayTraits< SetVarArray >
 Traits of SetVarArray. More...
class  ArrayTraits< SetVarArgs >
 Traits of SetVarArgs. More...
class  SetExprRanges
 Range iterator for set expressions. More...
class  ProjectorPropagatorSpec
 Specification for a C++ finite set propagator. More...
class  ProjectorCompiler
 Compiler from projector specifications to C++. More...
class  SetExprCode
 Code representing set-valued expressions for finite set projectors. More...
class  SetExpr
 Set-valued expressions for finite set projectors. More...
class  Projector
 Finite set projector specification. More...
class  ProjectorSet
 Group of finite set projector specifications. More...
class  Formula
 Formulas for specifying set constraints. More...
class  IntSetPropagator
 Set/Int connection propagator. More...
class  VarImpVarTraits< Set::SetVarImp >
 Traits class for variable implementations and variables. More...
class  ViewVarImpTraits< Set::SetView >
 Traits class for views and variable implementations. More...
class  VarViewTraits< SetVar >
 Traits class mapping variables to views. More...
class  ViewVarImpTraits< Set::ConstantView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::EmptyView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::UniverseView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::SingletonView >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::ComplementView< View > >
 Traits class for views and variable implementations. More...
class  ViewVarImpTraits< Set::OffsetSetView< View > >
 Traits class for views and variable implementations. More...
class  SetVar
 Set variables More...
class  SetVarGlbRanges
 Iterator for the greatest lower bound ranges of a set variable. More...
class  SetVarLubRanges
 Iterator for the least upper bound ranges of a set variable. More...
class  SetVarUnknownRanges
 Iterator for the unknown ranges of a set variable. More...
class  SetVarGlbValues
 Iterator for the values in the greatest lower bound of a set variable. More...
class  SetVarLubValues
 Iterator for the values in the least upper bound of a set variable. More...
class  SetVarUnknownValues
 Iterator for the values in the unknown set of a set variable. More...
class  SetVarArray
 Set variable array More...
class  Exception
 Exception: Base-class for exceptions More...
class  MemoryExhausted
 Exception: Memory exhausted More...

Namespaces

namespace  Support
 Support algorithms and datastructures
namespace  CpltSet
 Complete representation of finite integer sets using ROBDD's.
namespace  Set
 Finite integer sets.
namespace  Int
 Finite domain integers.
namespace  Iter
 Range and value iterators.
namespace  Reflection
 Reflection support
namespace  Memory
 Heap and automatic memory management.
namespace  MiniModel
 Minimal modelling support.
namespace  Search
 Search engines
namespace  Serialization
 Serialization and deserialization support.

Posting projection propagators

void projector (Space *home, const SetVar &xa, const SetVar &ya, ProjectorSet &ps, bool negated=false)
 Post projection propagators for binary constraint.
void projector (Space *home, const SetVarArgs &xa, ProjectorSet &ps, bool negated=false)
 Post projection propagators for nary constraint.
void projector (Space *home, const SetVar &xa, const SetVar &ya, const BoolVar &bv, ProjectorSet &ps)
 Post reified projection propagators for binary constraint.
void projector (Space *home, const SetVar &xa, const SetVar &ya, const SetVar &za, ProjectorSet &ps, bool negated=false)
 Post projection propagators for ternary constraint.
void projector (Space *home, const SetVar &xa, const SetVar &ya, const SetVar &za, const BoolVar &bv, ProjectorSet &ps)
 Post reified projection propagators for ternary constraint.
void projector (Space *home, const SetVar &xa, const SetVar &ya, const IntVar &i, Projector &p)
 Post projection propagator for cardinality constraint.
void projector (Space *home, const SetVar &xa, const SetVar &ya, const SetVar &za, const IntVar &i, Projector &p)
 Post projection propagator for cardinality constraint.

Typedefs

typedef VarArgArray< CpltSetVarCpltSetVarArgs
 Passing set variables.
typedef PrimArgArray< int > IntArgs
 Passing integer arguments.
typedef VarArgArray< IntVarIntVarArgs
 Passing integer variables.
typedef VarArgArray< BoolVarBoolVarArgs
 Passing Boolean variables.
typedef PrimArgArray< IntSetIntSetArgs
 Passing set arguments.
typedef int ModEvent
 Type for modification events.
typedef int PropCond
 Type for propagation conditions.
typedef int ModEventDelta
 Modification event deltas.
typedef VarArgArray< SetVarSetVarArgs
 Passing set variables.

Enumerations

enum  CpltSetRelType {
  SRT_LE, SRT_GR, SRT_LQ, SRT_GQ,
  SRT_LE_REV, SRT_GR_REV, SRT_LQ_REV, SRT_GQ_REV
}
 Common relation types for sets. More...
enum  CpltSetOpType { SOT_SYMDIFF }
 Common operations for sets. More...
enum  CpltSetVarBranch {
  CPLTSET_VAR_NONE, CPLTSET_VAR_MIN_CARD, CPLTSET_VAR_MAX_CARD, CPLTSET_VAR_MIN_UNKNOWN_ELEM,
  CPLTSET_VAR_MAX_UNKNOWN_ELEM
}
 Which variable to select for branching. More...
enum  CpltSetValBranch { CPLTSET_VAL_MIN_UNKNOWN, CPLTSET_VAL_MAX_UNKNOWN, CPLTSET_VAL_MIN_UNKNOWN_EX_FIRST, CPLTSET_VAL_MAX_UNKNOWN_EX_FIRST }
 Which values to select first for branching. More...
enum  IntRelType {
  IRT_EQ, IRT_NQ, IRT_LQ, IRT_LE,
  IRT_GQ, IRT_GR
}
 Relation types for integers. More...
enum  BoolOpType {
  BOT_AND, BOT_OR, BOT_IMP, BOT_EQV,
  BOT_XOR
}
 Operation types for Booleans. More...
enum  IntConLevel { ICL_VAL, ICL_BND, ICL_DOM, ICL_DEF }
 Consistency levels for integer propagators. More...
enum  IntVarBranch {
  INT_VAR_NONE, INT_VAR_MIN_MIN, INT_VAR_MIN_MAX, INT_VAR_MAX_MIN,
  INT_VAR_MAX_MAX, INT_VAR_SIZE_MIN, INT_VAR_SIZE_MAX, INT_VAR_DEGREE_MIN,
  INT_VAR_DEGREE_MAX, INT_VAR_SIZE_DEGREE_MIN, INT_VAR_SIZE_DEGREE_MAX, INT_VAR_REGRET_MIN_MIN,
  INT_VAR_REGRET_MIN_MAX, INT_VAR_REGRET_MAX_MIN, INT_VAR_REGRET_MAX_MAX
}
 Which variable to select for branching. More...
enum  IntValBranch {
  INT_VAL_MIN, INT_VAL_MED, INT_VAL_MAX, INT_VAL_SPLIT_MIN,
  INT_VAL_SPLIT_MAX
}
 Which values to select first for branching. More...
enum  IntAssign { INT_ASSIGN_MIN, INT_ASSIGN_MED, INT_ASSIGN_MAX }
 Which value to select for assignment. More...
enum  ViewSelStatus { VSS_NONE, VSS_SELECT, VSS_COMMIT }
 Status returned by member functions of view selection class. More...
enum  ExecStatus {
  __ES_SUBSUMED = -2, ES_FAILED = -1, ES_NOFIX = 0, ES_OK = 0,
  ES_FIX = 1, __ES_PARTIAL = 2
}
enum  PropCost {
  PC_CRAZY_LO = 0, PC_CRAZY_HI = 0, PC_CUBIC_LO = 1, PC_CUBIC_HI = 1,
  PC_QUADRATIC_LO = 2, PC_QUADRATIC_HI = 2, PC_LINEAR_HI = 3, PC_LINEAR_LO = 4,
  PC_TERNARY_HI = 5, PC_BINARY_HI = 6, PC_TERNARY_LO = 6, PC_BINARY_LO = 7,
  PC_UNARY_LO = 7, PC_UNARY_HI = 7, PC_MAX = 7
}
 Classification of propagation cost. More...
enum  SpaceStatus { SS_FAILED, SS_SOLVED, SS_BRANCH }
 Space status More...
enum  PropKind { PK_DEF, PK_SPEED, PK_MEMORY }
 Propagation kind. More...
enum  SetRelType {
  SRT_EQ, SRT_NQ, SRT_SUB, SRT_SUP,
  SRT_DISJ, SRT_CMPL
}
 Common relation types for sets. More...
enum  SetOpType { SOT_UNION, SOT_DUNION, SOT_INTER, SOT_MINUS }
 Common operations for sets. More...
enum  SetVarBranch {
  SET_VAR_NONE, SET_VAR_MIN_CARD, SET_VAR_MAX_CARD, SET_VAR_MIN_UNKNOWN_ELEM,
  SET_VAR_MAX_UNKNOWN_ELEM
}
 Which variable to select for branching. More...
enum  SetValBranch { SET_VAL_MIN, SET_VAL_MAX }
 Which values to select first for branching. More...

Functions

void branch (Space *home, const CpltSetVarArgs &x, CpltSetVarBranch vars, CpltSetValBranch vals)
 Branch on x with variable selection vars and value selection vals.
void exactly (Space *home, CpltSetVar x, IntSet &is, unsigned int c)
 Post propagator for $ |x \cap is| = c $.
void atmost (Space *home, CpltSetVar x, IntSet &is, unsigned int c)
 Post propagator for $ 0 \leq |x \cap is| \leq c $.
void atmost (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c)
 Post propagator for $ 0 \leq |x \cap y| \leq c $.
void atmostLex (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c, CpltSetRelType lex)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge x \sim_{lex} y$.
void atmostLexCard (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c, CpltSetRelType lex, unsigned int d)
void atmostCard (Space *home, CpltSetVar x, CpltSetVar y, unsigned int c, unsigned int d)
void atmost (Space *home, CpltSetVar x, CpltSetVar y, CpltSetVar z, unsigned int c)
void atmostOne (Space *home, const SetVarArgs &x, unsigned int c)
 Post propagator for $\forall 0\leq i\leq |x| : |x_i|=c$ and $\forall 0\leq i<j\leq |x| : |x_i\cap x_j|\leq 1$.
void cardinality (Space *home, CpltSetVar x, unsigned int l, unsigned int u)
 Post propagator for $ l \leq |x| \leq u $.
void cardinality (Space *home, CpltSetVar x, unsigned int c)
 Post propagator for $ l |x| = c $.
void distinct (Space *home, const CpltSetVarArgs &x)
void dom (Space *home, CpltSetVar x, SetRelType r, const IntSet &s)
 Propagates $ x \sim_r s$.
void dom (Space *home, CpltSetVar x, SetRelType r, int i)
 Propagates $ x \sim_r \{i\}$.
void dom (Space *home, CpltSetVar x, SetRelType r, int i, int j)
 Propagates $ x \sim_r \{i,\dots,j\}$.
void partition (Space *home, const CpltSetVarArgs &x)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U $.
void partition (Space *home, const CpltSetVarArgs &x, const CpltSetVar &y)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U $.
void partitionLex (Space *home, const CpltSetVarArgs &x, CpltSetRelType lex)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i,j\in \{0, \dots, n-1\}, i\neq j: x_i \sim_{lex} x_j$.
void partitionLexCard (Space *home, const CpltSetVarArgs &x, CpltSetRelType lex, unsigned int c)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i,j\in \{0, \dots, n-1\}, i\neq j: x_i \sim_{lex} x_j \wedge \forall i \in \{0, \dots, n-1\}: |x_i| = c $.
void partitionCard (Space *home, const CpltSetVarArgs &x, unsigned int c)
 Post propagator for $ |\bigcup_{i=0}^{n-1} x_i = U \wedge \forall i \in \{0, \dots, n-1\}: |x_i| = c $.
void range (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ t = \bigcup_{i\subseteq s} x_i $.
void roots (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &allvars)
 Post propagator for $ s = \bigcup_{x_i \subseteq t} i $.
void alldifferent (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &allvars)
 Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x| \wedge t = \bigcup_{i\subseteq s} x_i $.
void nvalue (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t, unsigned int n, const CpltSetVarArgs &allvars)
 Post propagator for $ |\displaystyle\bigcup_{i = 0}^{|x| - 1} x_i| = n \wedge t = \bigcup_{i\subseteq s} x_i $.
void uses (Space *home, const IntVarArgs &x, CpltSetVar s, CpltSetVar t, const CpltSetVarArgs &y, CpltSetVar u, CpltSetVar v)
 Post propagator for $ t = \bigcup_{i\in s} x_i \wedge v = \bigcup_{i\in u} y_i \wedge v \subseteq t $.
void selectUnion (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ t = \bigcup_{i\in s} x_i $.
void rel (Space *home, CpltSetVar x, CpltSetRelType r, CpltSetVar y)
 Post propagator for $ x \sim_r y$.
void rel (Space *home, CpltSetVar x, CpltSetOpType o, CpltSetVar y, CpltSetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void rel (Space *home, CpltSetVar x, CpltSetOpType o, CpltSetVar y, SetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void rel (Space *home, CpltSetVar x, SetOpType o, CpltSetVar y, CpltSetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void rel (Space *home, CpltSetVar x, SetOpType o, CpltSetVar y, SetRelType r, CpltSetVar z)
 Post propagator for $ (x \diamond_{\mathit{o}} y) \sim_r z $.
void rel (Space *home, CpltSetVar x, SetRelType r, CpltSetVar y)
 Post propagator for $ x \sim_r y$.
void selectNonEmptySub (Space *home, const CpltSetVarArgs &x, CpltSetVar s, CpltSetVar t)
 Post propagator for $ s = \bigcup_{(x_i \subseteq t) \wedge x_i \neq \emptyset } i $.
void singleton (Space *home, IntVar x, CpltSetVar s)
 Post propagator for $ s = \{x\} $.
GECODE_CPLTSET_EXPORT void atmostLexCard (Space *home, CpltSetVar x, CpltSetVar y, int c, CpltSetRelType lex, int d)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge x \sim_{lex} y \wedge |x| = |y| = d$.
GECODE_CPLTSET_EXPORT void atmostCard (Space *home, CpltSetVar x, CpltSetVar y, int c, int d)
 Post propagator for $ 0 \leq |x \cap y| \leq c \wedge |x| = |y| = d$.
GECODE_CPLTSET_EXPORT void atmost (Space *home, CpltSetVar x, CpltSetVar y, CpltSetVar z, int c)
 Post propagator for $ x \cap y = z \wedge 0 \leq |z| \leq c $.
GECODE_CPLTSET_EXPORT void atmostOne (Space *home, const CpltSetVarArgs &x, int c)
 Post propagator for $ |x_i \cap x_j| \leq 1 $ for all $0\leq i\neq j<|x| \wedge \forall i \in \{0, \dots, |x|-1\}: |x_i| = c $.
void abs (Space *home, IntVar x0, IntVar x1, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $ |x_0|=x_1$.
void max (Space *home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void max (Space *home, const IntVarArgs &x, IntVar y, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $ \max x=y$.
void min (Space *home, IntVar x0, IntVar x1, IntVar x2, IntConLevel icl=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void min (Space *home, const