Linear constraints over Boolean variables
Functionality by programming task » Programming models » Using integer variables and constraints

## Functions

void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, int c, Reify r, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, IntPropLevel ipl=IPL_DEF)
| Post propagator for .
void | Gecode::linear (Home home, const IntArgs &a, const BoolVarArgs &x, IntRelType irt, IntVar y, Reify r, IntPropLevel ipl=IPL_DEF)
| Post propagator for .

## Detailed Description

All variants for linear constraints over Boolean variables share the following properties:

- Bounds consistency (over the real numbers) is supported for all constraints (actually, for disequlities always domain consistency is used as it is cheaper).
- Variables occurring multiply in the argument arrays are replaced by a single occurrence: for example, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Int::Limits, an exception of type Int::OutOfLimits is thrown.
- Assume the constraint . If exceeds the limits for integers as defined in Int::Limits, an exception of type Int::OutOfLimits is thrown.
- In all other cases, the created propagators are accurate (that is, they will not silently overflow during propagation).

## Function Documentation

## linear() [1/8]

void Gecode::linear | ( | Home | home,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | int | c,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Definition at line 41 of file linear-bool.cpp.

## linear() [2/8]

void Gecode::linear | ( | Home | home,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | int | c,
|  | Reify | r,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Definition at line 125 of file linear-bool.cpp.

## linear() [3/8]

void Gecode::linear | ( | Home | home,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | IntVar | y,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Definition at line 56 of file linear-bool.cpp.

## linear() [4/8]

void Gecode::linear | ( | Home | home,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | IntVar | y,
|  | Reify | r,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Definition at line 140 of file linear-bool.cpp.

## linear() [5/8]

void Gecode::linear | ( | Home | home,
|  | const IntArgs & | a,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | int | c,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 71 of file linear-bool.cpp.

## linear() [6/8]

void Gecode::linear | ( | Home | home,
|  | const IntArgs & | a,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | int | c,
|  | Reify | r,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 155 of file linear-bool.cpp.

## linear() [7/8]

void Gecode::linear | ( | Home | home,
|  | const IntArgs & | a,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | IntVar | y,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 90 of file linear-bool.cpp.

## linear() [8/8]

void Gecode::linear | ( | Home | home,
|  | const IntArgs & | a,
|  | const BoolVarArgs & | x,
|  | IntRelType | irt,
|  | IntVar | y,
|  | Reify | r,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for .

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 173 of file linear-bool.cpp.