[ The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]

# library(fd)

Finite domain library

## Predicates

#(?Min, ?Cstrs, ?Max)
The cardinality operator
?X ## ?Y
X is different from Y.
##(?X, ?Y, ?B)
The constraint X ## Y has the truth value B.
?C1 #/\ ?C2
The constraint expression C1 and the constraint expression C2 is true.
#/\(?X, ?Y, ?B)
The constraint X #/\ Y has the truth value B.
?Vars #:: ?Domain
Terms in Vars have the domain Domain. The predicate is an alias for ::/2.
#::(?X, ?Y, ?B)
The constraint X #:: Y has the truth value B. The predicate is an alias for ::/3.
?X #< ?Y
The linear term X is less than the linear term Y.
#<(?X, ?Y, ?B)
The constraint X #< Y has the truth value B.
?X #<= ?Y
The linear term X is less than or equal to the linear term Y.
#<=(?X, ?Y, ?B)
The constraint X #<= Y has the truth value B.
?C1 #<=> ?C2
The constraint expression C1 is equivalent to the constraint expression C2.
#<=>(?X, ?Y, ?B)
The constraint X #<=> Y has the truth value B.
?X #= ?Y
X is equal to Y.
#=(?X, ?Y, ?B)
The constraint X #= Y has the truth value B.
?C1 #=> ?C2
The constraint expression C1 implies the constraint expression C2.
#=>(?X, ?Y, ?B)
The constraint X #=> Y has the truth value B.
?X #> ?Y
The linear term X is greater than the linear term Y.
#>(?X, ?Y, ?B)
The constraint X #> Y has the truth value B.
?X #>= ?Y
The linear term X is greater than or equal to the linear term Y.
#>=(?X, ?Y, ?B)
The constraint X #>= Y has the truth value B.
#\+ ?C
The constraint expression C is false.
#\+(?X, ?B)
The constraint #\+ X has the truth value B.
?C1 #\/ ?C2
The constraint expression C1 or the constraint expression C2 is true.
#\/(?X, ?Y, ?B)
The constraint X #\/ Y has the truth value B.
?X #\= ?Y
X is different from Y.
#\=(?X, ?Y, ?B)
The constraint X #\= Y has the truth value B.
?Vars :: ?Domain
Terms in Vars have the domain Domain.
::(?X, ?Y, ?B)
The constraint X :: Y has the truth value B.
alldifferent(?List)
The elements of the list List are pairwise different.
alldistinct(?List)
The elements of the list List are pairwise different.
atmost(+N, ?List, +V)
At most N elements of the list List have the value V.
constraints_number(?Var, ?N)
The number of constraints and suspended goals associated with the variable Var is N.
contigs(+List, +Item, ?MaxLength, ?Occurrences, ?Contigs)
MaxLength is the longest sequence of Item occurring in List, Occurrences is the total number of occurrences of Item in List and Contigs is the number of sequences of Item in List.
default_domain(-Var)
This predicate is called to assign a default domain to a free variable Var which occurs in arithmetic constraints.
deleteff(?Var, +List, -Rest)
Select from List the variable Var which has the smallest domain and return the rest of the list.
deleteffc(?Var, +List, -Rest)
Select from List the variable Var which has the smallest domain and most constraints and return the rest of the list.
deletemin(?Var, +List, -Rest)
Select from List the variable Var which has the smallest lower domain bound, and return the rest of the list.
disjunction(?Start1, +Duration1, ?Start2, +Duration2, ?Flag)
Flag indicates which of the two non-overlapping tasks is scheduled as first. Either the one with starting time Start1 and duration Duration1 (then the value of Flag is 1), or the second one with starting time Start2 and duration Duration2 (and the Flag is 2).
disjunction_choose(?Start1, +Duration1, ?Start2, +Duration2, ?Flag)
Flag indicates which of the two non-overlapping tasks is scheduled as first. Either the one with starting time Start1 and duration Duration1 (then the value of Flag is 1), or the second one with starting time Start2 and duration Duration2 (and the Flag is 2).
disjunctive(?Starts, +Durations, ?Flags)
Succeeds if there exists a sequential ordering of non-overlapping tasks with starting times Starts and durations Durations, with respect to the ordering priorities of single pairs of tasks (elementary disjunctions) represented in the list Flags.
dom(+Var, ?List)
List is the list of elements in the domain of Var.
dom_check_in(+Element, +Dom)
Element is in the domain Dom.
dom_compare(?Res, +Dom1, +Dom2)
Res is the result of the comparison of the domains Dom1 and Dom2.
dom_copy(+Dom1, -Dom2)
Dom2 is a copy of the domain Dom1.
dom_difference(+Dom1, +Dom2, -DomDiff, -Size)
The domain DomDifference is Dom1 \Dom2 and Size is the number of its elements.
dom_intersection(+Dom1, +Dom2, -DomInt, -Size)
The domain DomInt is the intersection of domains Dom1 and Dom2 and Size is the number of its elements.
dom_member(?Element, +Dom)
Element is in the domain Dom.
dom_range(+Dom, ?Min, ?Max)
Return the minimum and maximum value in the integer domain Dom.
dom_size(+Dom, ?Size)
Size is the number of elements in the domain Dom.
dom_to_list(+Dom, ?List)
List is the list of elements in the domain Dom.
dom_union(+Dom1, +Dom2, -DomUnion, -Size)
The domain DomUnion is the union of domains Dom1 and Dom2 and Size is the number of its elements.
dvar_attribute(+DVar, ?Attrib)
Attrib is the attribute of the domain variable DVar.
dvar_domain(+DVar, -Dom)
Dom is the domain of the domain variable DVar.
dvar_msg(+DVar1, +DVar2, -MsgDVar)
MsgDVar is a domain variable which is the most specific generalisation of domain variables or atomic values DVar1 and DVar2.
dvar_range(+DVar, ?Min, ?Max)
Return the minimum and maximum domain value of DVar
dvar_remove_element(+DVar, +El)
The element El is removed from the domain of DVar and all concerned lists are woken.
dvar_remove_greater(+DVar, +El)
Remove all elements in the domain of DVar which are greater than the integer El and wake all concerned lists.
dvar_remove_smaller(+DVar, +El)
Remove all elements in the domain of DVar which are smaller than the integer El and wake all concerned lists.
dvar_replace(+DVar, +NewDom)
Change the domain of the domain variable DVar to NewDom without propagating the changes.
dvar_update(+DVar, +NewDom)
Change the domain of the domain variable DVar to NewDom and propagate the changes.
element(?Index, +List, ?Value)
Value is the Index'th element of the integer list List.
fd_eval(?C)
Evaluate and state the constraint expression C.
indomain(?Var)
Instantiate Var to a value in its domain.
integer_list_to_dom(+List, -Dom)
Convert a sorted list of integers and integer intervals into a domain Dom.
integers(+Vars)
Constrains Vars to be integers.
is_domain(?Term)
Succeeds if Term is a domain variable.
is_integer_domain(?Term)
Succeeds if Term is a domain variable with an integer domain.
?B isd ?C
The constraint expression C evaluates to the boolean value B.
labeling(+Vars)
Instantiate all variables in a list to values in their domain
list_to_dom(+List, -Dom)
Convert a list of atomic terms and integer intervals into a domain Dom.
maxdomain(+Var, ?Max)
Max is the maximum element in the domain of Var.
min_max(?Goal, ?C)
Find the solution of Goal that minimizes the maximum of elements of C.
min_max(+Goal, ?Template, ?Solution, ?C)
Find the solution of Goal that minimizes the maximum of elements of C, and unify the minimized Template with Solution.
min_max(?Goal, ?C, +Lower, +Upper, +Percent)
Find the solution of Goal that minimizes the maximum of elements of C, within the bounds set by Lower,Upper and Percent.
min_max(?Goal, ?C, +Lower, +Upper, +Percent, +Timeout)
Find the solution of Goal that minimizes the maximum of elements of C, within the bounds set by Lower,Upper and Percent in time not longer than Timeout.
min_max(+Goal, ?Template, ?Solution, ?C, +Lower, +Upper, +Percent, +Timeout)
Find the solution of Goal that minimizes the maximum of elements of C, within the bounds set by Lower,Upper and Percent in time not longer than Timeout.
mindomain(+Var, ?Min)
Min is the minimum element in the domain of Var.
minimize(?Goal, ?C)
Find the solution of Goal that minimizes C.
minimize(+Goal, ?Template, ?Solution, ?C)
Find the solution of Goal that minimizes C, and unify the minimized Template with Solution.
minimize(?Goal, ?C, +Lower, +Upper, +Percent)
Find the solution of Goal that minimizes C, within the bounds set by Lower, Upper and Percent.
minimize(?Goal, ?C, +Lower, +Upper, +Percent, +Timeout)
Find the solution of Goal that minimizes C, within the bounds set by Lower, Upper and Percent in time not longer than Timeout.
minimize(+Goal, ?Template, ?Solution, ?C, +Lower, +Upper, +Percent, +Timeout)
Find the solution of Goal that minimizes the maximum of elements of C, within the bounds set by Lower,Upper and Percent in time not longer than Timeout.
minimize_bound_check
If within a minimization, force a check of the cost variable against the cost bound, which may lead to earlier failure.
new_domain_var(-Var)
A user hook predicate which is called whenever a variable obtains a default domain from the solver.
par_indomain(?Var)
Instantiate Var to a number of values in its domain in parallel.
sequence(+List, +Item, ?MaxLength, ?Occurrences)
MaxLength is the longest sequence of Item occurring in List and Occurrences is the total number of occurrences of Item in List.
sorted_list_to_dom(+List, -Dom)
Convert a sorted list of atomic terms and integer intervals into a domain Dom.
tr_fd_out(?, ?)
No description available
var_fd(+Var, +Dom)
Create a domain variable with a given domain.

## Reexports

reexport fd_arith
except fd_eq / 1, fd_eq / 2, fd_ge / 1, fd_ge / 2, fd_gec / 5, fd_gec_ent / 6, fd_ineq / 1, fd_ineq / 2, fd_qeq / 3, fd_re / 2, fd_dom_simple / 2, fd_dom_simple / 3
reexport fd_chip
reexport fd_elipsys
reexport fd_util

## Other Exports

export macro(element / 5, fd : tr_fd_out / 2, [write, goal])