[ library(fd) | Reference Manual | Alphabetic Index ]

# par_indomain(?Var)

Instantiate Var to a number of values in its domain in parallel.

?Var
  An integer or a domain variable

## Description

This predicate instantiates the domain variable Var to a value from its domain. The instantiation is executed in Or-parallel, i.e. several parallel jobs are created which may be executed in parallel on different processors. There is no specified order of enumerating the domain of the variable, the user should not rely on a particular order. It is used mostly to find an instantiation of the variable which is consistent with the current set of constraints in labeling procedures of a parallel program. If List is a list of all domain variables occurring in the program, the simplest parallel labeling procedure is written as

            labeling([]).
            labeling([Var|Rest]) :-
                par_indomain(Var),
                labeling(Rest).

### Fail Conditions

None.

### Resatisfiable

Yes.

## See Also

:: / 2, #:: / 2, indomain / 1