The Scheduler

©1998 Research Institute for Symbolic Computation (RISC-Linz)

NO WARRANTY

Package Description

This package contains the implementation of the scheduler. The scheduler is the component of the system which handles the solving process of constraints by commonicating with specific constraint solvers.

[Graphics:Schedulergr2.gif][Graphics:Schedulergr1.gif]

Usage

[Graphics:Schedulergr2.gif][Graphics:Schedulergr3.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr4.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr5.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr6.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr7.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr8.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr9.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr10.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr11.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr12.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr13.gif]

Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr14.gif]

Begin

[Graphics:Schedulergr2.gif][Graphics:Schedulergr15.gif]

Shared Variables

Shared Variables Visible from the Outside

Vars

Vars is a table with entries for the variables of the queries submitted to the scheduler.
Vars[{1}] is the list of variables of the first query, ..., Vars[{CnstrIdx}] is the list of variables of query CnstrIdx.

Substitution

Substitution is a table with entries for the substitutions computed by the CFLP calculus for the queries submitted to the scheduler.
Substitution[{1}] is the substitution computed for the first query, ..., Substitution[{CnstrIdx}] is the substitution computed for the CnstrIdx[Graphics:Schedulergr16.gif] query.

Constraints

Shared Variables which are Private

Status

[Graphics:Schedulergr2.gif][Graphics:Schedulergr18.gif]
CnstrIdx

[Graphics:Schedulergr2.gif][Graphics:Schedulergr19.gif]
LinkId

LinkId[{ idx }] stores the link to the constraint solver which currently acts on the set of constraints Constraints[[idx]]

MethodList

MethodList stores the identifiers for the methods that are applied on the systems of constraints.

[Graphics:Schedulergr2.gif][Graphics:Schedulergr20.gif]

External Processes

Links to external processes

CSStart

Syntax call
CSStart[ ]
Effect
CSStart[ ] attempts to open the links to the external constraint solvers and displays a message about the failure or success of the operation.
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr21.gif]
CSEnd

Syntax call
CSEnd[ ]
or
CSEnd[
link ]
Effect
CSEnd[ ] closes all the links to external constraint solvers.
CSEnd[ link ] closes link object link
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr22.gif]

Communication with external solvers

SetCSQuery

Syntax call
SetCSQuery[ vars, subst, cnstrs ]
Input
vars : the list of variables of cnstrs
subst : variable substitution generated by a CFLP refutation
cnstrs : the list of constraints generated by a CFLP refutation
Effect
get available data from link
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr23.gif]
Ask

Syntax call
Ask[ link ]
Input
link : the link object to the external solver
Effect
get available data from link
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr24.gif]
LinSolve

[Graphics:Schedulergr2.gif][Graphics:Schedulergr25.gif]
PolySolve

[Graphics:Schedulergr2.gif][Graphics:Schedulergr26.gif]

Clasifiers

IsVar

Syntax call
IsVar[
expr]
Input
expr
: a Mathematica expression
Output
True if expr belongs to Vars[CnstrIdx]
False otherwise
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr27.gif]

Syntax call
IsNumericTerm[
term]
Input
term
: a term
Output
True if term is a term without variable
False otherwise
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr28.gif]

IsPolyTerm

Syntax call
IsPolyTerm[
expr]
Input
expr
: a Mathematica expression
Output
True if expr denotes a polynomial term
False otherwise
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr29.gif]

IsLinTerm

Syntax call
IsLinTerm[
term]
Input
term
: a term
Output
True if term is a linear term
False otherwise
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr30.gif]

Constraint Filters

Auxiliary functions

PolyForm

[Graphics:Schedulergr2.gif][Graphics:Schedulergr31.gif]
GetVars

Syntax call
GetVars[
expr]
Input
expr
: a Mathematica expression
Output
The list of variables of expr
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr32.gif]

PolyFilter

Syntax call
PolyFilter[
cnstrs]
Input
cnstrs
: a list of constraints
Output
The sublist of cnstrs which are polynomial equations
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr33.gif]

LinFilter

Syntax call
LinFilter[
cnstrs]
Input
cnstrs
: a list of constraints
Output
The sublist of cnstrs which are linear equations
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr34.gif]

Constraint Selectors

CS

[Graphics:Schedulergr2.gif][Graphics:Schedulergr35.gif]

The Constraint Scheduler

CSolve

Syntax calls
CSolve[{
eqs,methods},idx]
CSolve[{
eqs,methods,resteqs},idx]
Input
eqs
: equations to be solved by the first method of methods
resteqs : equations to be solved by the methods of methods except the first
methods: list of solving methods considered for eqs
idx
: position slot for the (partial) solutions of {eqs, methods} in the nested structure Sol of solutions
Effect
see implementation
Implementation

[Graphics:Schedulergr2.gif][Graphics:Schedulergr36.gif]

Scheduler

[Graphics:Schedulergr2.gif][Graphics:Schedulergr37.gif]

FilterSubstitution

[Graphics:Schedulergr2.gif][Graphics:Schedulergr38.gif]

End

[Graphics:Schedulergr2.gif][Graphics:Schedulergr39.gif]

[Graphics:Schedulergr2.gif][Graphics:Schedulergr40.gif]