[ library(gfd) | Reference Manual | Alphabetic Index ]
# nvalues(+Collection, +RelOp, ?Limit)

Constrains N, the number of distinct values assigned to Collection to satisfy the relation N Rel Limit.
*Collection*
- Collection of integers or (domain) variables.
*RelOp*
- One of the atom: #>, #>=, #<, #=<, #=, #\=
*Limit*
- Variable or integer

## Description

Constrains N, the number of distinct values assigned to Collection
to satisfy the relation N Rel Limit.

Rel can be one of #>, #>=, #<, #=<, #=, #\= (or equivalently,
>, >=, <, =<, =, \=).

Any input variables which are not already domain variable will be turned
into domain variables with default bounds.

This constraint can be embedded in a constraint expression in its
functional form (without the last argument).

This constraint is also known as nvalues in the global constraint catalog.
It is implemented by Gecode's nvalue() constraint.

## Examples

[eclipse 21]: nvalues([4,5,5,4,1,5], (#=), N).
N = 3
[eclipse 22]: nvalues([A,B,C,D], (#>), N).
A = A{[-1000000 .. 1000000]}
B = B{[-1000000 .. 1000000]}
C = C{[-1000000 .. 1000000]}
D = D{[-1000000 .. 1000000]}
N = N{[-1000000 .. 3]}
[eclipse 23]: nvalues([A,B,C,D], (#=), N).
A = A{[-1000000 .. 1000000]}
B = B{[-1000000 .. 1000000]}
C = C{[-1000000 .. 1000000]}
D = D{[-1000000 .. 1000000]}
N = N{[1 .. 4]}