Index |
All Packages |
All Categories |
By Author |
ap (3) |
cp (3) |
dp (3) |
exe (3) |
gui (0) |
gui/gtk (0) |
gui/tk (4) |
io (1) |
lib (11) |
math (0) |
net (9) |
nlp (18) |
op (4) |
os (2) |
program (3) |
sp (2) |
tool (9) |
wp (2) |
xml (2) |
type | : | package |
id | : | mogul:/duchier/select |
section | : | mogul:/duchier |
version | : | 1.8 |
blurb | : | implements the selection constraint e.g. S={Select.fs [S1 ... Sn] I} |
author | : | Denys Duchier |
category | : | cp |
documentation | : | index.html |
download | : | duchier-select__1.2.5__source__1.8.pkg duchier-select__1.3.0__source__1.8.pkg |
provides | : | x-ozlib://duchier/cp/Select.ozf x-ozlib://duchier/cp/SelectFD.so x-ozlib://duchier/cp/SelectFS.so x-ozlib://duchier/cp/SelectUnion.so x-ozlib://duchier/cp/SelectInter.so x-ozlib://duchier/cp/SeqUnion.so x-ozlib://duchier/cp/SelectThe.so x-ozlib://duchier/cp/SeqSelect.so |
Note: from now on, this module is only available as an ozmake package.
This module implements the selection constraints for finite domains and for finite sets.
the selection constraint S={Select.fs [S1 ... Sn] I}
has the same declarative semantics as S={Nth [S1 ... Sn] I}
,
i.e. it unifies X
with the I
th
element of sequence [S1 ... Sn]
. However, it is much more powerful
because it is also a constraint. All of S
, S1
,
..., Sn
, and I
can be constrained variables. In
particular:
I
can be a finite domain variable. If S
is
incompatible with Sk
then integer k
is removed
from the domain of I
.
M={Select.fd [M1 ... Mn] I}
the domain of M
is the union of those of the Mi
for i
in the domain
of I
. Similarly, with S={Select.fs [S1 ... Sn] I}
the lower (resp. upper) bound of S
is the intersection (resp.
union) of the lower (resp. upper) bounds of Si
for i
in the domain of I
.
As of version 1.3, the module also implements the selection union constraint
{Select.union [S1 ... Sn] SI}
which returns the union of the sets
Si
for i
in SI
.
As of version 1.5, the module also implements the selection intersection constraint
{Select.inter [S1 ... Sn] SI}
which returns the intersection of the sets
Si
for i
in SI
.
As of version 1.6, this package provides the sequenced union
constraint {Select.seqUnion [S1 ... Sn] S}
whereS
is the union of the sets Si
which are
additionally constrained to be sequential, i.e. for
i<j
all elements of Si
are smaller than
elements of Sj
.
Version 1.8 - added indexedUnion constraint
{Select.indexedUnion [I1#S1 ... In#Sn] SI}
which returns the union of
the Sk
for Ik
in SI
.