For a specific problem the end-user may have some knowledge of the problem that implies that he may determine that for some intervals for the variables the problem has no solution or that the intervals for some variables may be reduced.
ALIAS-Maple allows one to introduce such knowledge in the generated C++ code. The mechanism that is used is to allow one to specify a C++ routine, that will be called a simplification procedure. We will present in this chapter simplification procedures devoted to system solving. A simplification procedure takes as input a set of intervals for the variables and will return an integer:
This routine will be called by all the solving procedure of ALIAS-Maple whenever a new set of intervals is considered in the algorithm i.e. right after the bisection process (see the ALIAS-C++ manual). System solving procedures in ALIAS C++ are designed to discard box for which a simplification procedure returns -1 and to update it if the simplification procedure returns 1.
The syntax of such a routine Simp is:
int Simp(INTERVAL_VECTOR &v_IS) { .... return 0; }
Alternatively ALIAS-Maple allows to automatically produce simplification procedures according to classical methods used in interval analysis.
Note that numerical round-off errors in Maple may produce solving errors as the filtering procedures uses frequently an expanded version of the expressions. To reduce the impact of this problem it is possible to adjust the number of digits that will be used when doing numerical computation in the filtering procedure by using the ALIAS variable `ALIAS/digits` which is set by default to 40.