The primary purpose of the ALIAS-Maple library was to allow the automatic generation of the C++ code being given the Maple description of an equations system and then to compile and run the generated code in order to get the result within the Maple session. But when developing this library it appears that the use of symbolic computation may allow to increase the efficiency of the C++ solving procedure. Hence the procedures available in the ALIAS-Maple library may be divided into two categories:
The ALIAS-Maple library ALIAS.m has initially been developed by Didier Bondyfalat. ALIAS-Maple is compiled for Maple V.5 and 9.5 and this version has 49356 lines of code.
In this package there are numerous Maple procedures that may be used to solve or to help to solve a specific problem. The behavior of these procedures may be modified by changing the values of some Maple variables (that will correspond to the parameters of the ALIAS-C++ procedures). An ALIAS-Maple variable is always defined using the following syntax:
`ALIAS/XX`The use of some of these variables may need an understanding of the algorithms of ALIAS-C++.
The C++ procedures created by ALIAS-Maple procedures have usually a fixed name (e.g. _GS_ for the general purpose solving procedures) but this behavior may be changed for some of them if the string variable `ALIAS/ID` is defined (and on the long term it is planned that all ALIAS-Maple procedures will propose this possibility): in that case all files created by a procedure have the `ALIAS/ID` string appended to their name.
Before explaining how to use this package very important remarks have to be done:
The reader interested only in the solving procedures available in ALIAS-Maple may skip to chapter 3. But the concept of simplification procedures explained in chapter 4 are worth considering afterward as they may drastically improve the efficiency of the algorithms.
This manual describes the use of the ALIAS Maple library both for version 5.5 and for version 9.5, with minor difference when loading the library. This interface is intended to be used through a command line and not a worksheet.
It is assumed here that you have installed the ALIAS-C++ library together with the Profil for example, in the directory /u/ALIAS. To install the MAPLE library you need first to copy the library ALIAS.m and the sub-directory ALIAS in some specific directory, say /u/ALIAS-MAPLE. You end up with:
libname:=libname,"/u/ALIAS-MAPLE":Then you will have to indicate where the ALIAS-C++ libraries are located. This is done by:
`ALIAS/profil`:="/u/ALIAS/Profil": `ALIAS/lib`:="/u/ALIAS/Lib":You must also indicate the full path of your C++ compiler using the variable `ALIAS/gpp_sun` (if you are using a SUN computer) or `ALIAS/make_linux` (for a Linux computer).
Note that if you are planning to use the parallel implementation of the algorithms (see the corresponding chapter) on a network of heterogeneous machines (PC's and SUN), then you must indicate the locations of the Profil and ALIAS libraries for the machines whose architecture is different from the machine that you are using with the variable `ALIAS/libN` and `ALIAS/profilN`.
Thus a typical Maple file for using the ALIAS-Maple library with Maple 5.5 on a SUN computer will begin with:
libname:=libname,"/u/ALIAS-MAPLE": with(ALIAS): `ALIAS/profil`:="/u/ALIAS/Profil": `ALIAS/lib`:="/u/ALIAS/Lib": `ALIAS/gpp_sun`:="/usr/local/bin/g++":Alternatively you may choose to initialize these variables in your .mapleinit file. The only difference when using Maple9.5 is that you cannot use the Maple command with for compatibility problem with Maple 5.5. For Maple9.5 and a linux workstation loading and starting the library is done as follows:
libname:=libname,"/u/ALIAS-MAPLE": read "Start_ALIAS.maple" `ALIAS/profil`:="/u/ALIAS/Profil": `ALIAS/lib`:="/u/ALIAS/Lib": `ALIAS/gpp_linux`:="/usr/local/bin/g++":The Maple version is given in the global variable `ALIAS/maple_version`. Beside this loading difference there is no other difference between the use of ALIAS version 5.5 and version 9.5 (apart of the fact that linear algebra in the procedure uses the linalg package instead of the newer LinearAlgebra which is much less efficient for the operations involved in the procedure).
Most of the procedures of ALIAS-Maple have a built-in help. This help is obtained using the classical Maple syntax, with a ? followed by the name of the procedure. For example:
?ALIASwill give the names of all the available procedures of ALIAS-Maple. Help for a particular procedure is obtained by:
?ALIAS,namewhere name is the name of the procedure or equivalently by
?ALIAS,nameexcept for the Parameters procedure.
There are few exceptions for which an interval evaluation of an expression cannot be computed for some ranges of the unknowns that appear in the expression. Namely the following problems may occur when intervals are involved: