| 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 Ith
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.