Previous: Zinc Errors, Up: lib-zinc [Contents][Index]
Only variables with finite integer domains are supported. This includes
Boolean variables, which are considered finite integer domain variables
with the domain 0..1
. Domain variables declared to be of type
var int
are initially given the finite integer domain
inf..sup
, and are given maximally wide bounded domains before any
search is performed on them, as well as before certain constraints that
demand bounded domains are posted on them.
Although set variables are not supported, ground set values
are. For example, the MiniZinc global constraint sum_pred/4
takes as second argument an array of such ground set values.
bool_search
,
int_search
, and seq_search
.
complete
and fail
.
is_defined_var
annotation are labeled with a default first-fail domain splitting
heuristic. This corresponds to labeling/2
of
library(clpfd)
with the option list [ff,bisect]
.
indomain_random
as described in the
FlatZinc specification uses random_member/2
of
library(random)
. The random generator of SICStus is initialized
using the same seed on each start up, meaning that the same sequence
will be tried for indomain_random
on each start up. This
behavior can be changed by setting a different random seed using
setrand/1
of library(random)
.
Constraint annotations of the form domain
, bounds
, and
value
are recognized by the FlatZinc interpreter. Any other
constraint annotation is ignored.
The following variable annotations are recognized. Any other variable annotation is ignored:
output_var since release 4.2
the variable may be written on the current output stream.
output_array since release 4.2
the variable array may be written on the current output stream.
is_defined_var
the variable will not be considered in any default labeling (such as when the search annotations do not include all variables)