exists
exists |
Purpose
Check if a given entry in a dynamic array has been created.
Synopsis
function exists(x):boolean
Argument
x
|
Array reference (
e.g.
t(1))
|
Return value
true if the entry exists,
false otherwise.
Example
The following, a dynamic array of decision variables only has its even elements created, which is checked by displaying the existing variables:
declarations S=1..8 x: dynamic array(S) of mpvar end-declarations forall(i in S| not isodd(i)) create(x(i)) forall(i in S| exists(x(i))) writeln("x(", i, ") exists")
Further information
1. If an array is declared dynamic its elements are not created at its declaration. This function indicates if a given element has been created.
2. Under certain conditions, the
exists function call is optimized by the compiler when used for filtering an aggregate operator: the loop is only performed for the existing entries instead of enumerating all possible tuples of indices for finding the relevant ones.
Related topics