next up previous contents
Next: Reserved variables Up: How to install and Previous: Installing ALIAS   Contents


Header and linking

In most cases the following include files should be provided at the beginning of the program:
 
#include "Functions.h"
#include "Vector.h"
#include "IntervalVector.h"
#include "IntervalMatrix.h"
#include "IntegerVector.h"
#include "IntegerMatrix.h"
For using specific procedures of this package it is necessary to include the following header file:
 
header_constants.h
For the solving algorithm, optimization and continuation algorithms it is necessary to include:
 
header_Solve_General_Interval.h
header_Utilities_Interval.h
and use the libraries lib_Solve_General.a, lib_Solve_Simplex.a and lib_Continuation.a.

For analyzing and solving univariate polynomial you need:

 
header_externe.h
header_Analysis_Univariate.h
header_Utilities_UP.h
header_Solve_UP.h
and use the library lib_UP.a. If you intend to solve and analyze trigonometric equation you need:
 
header_externe.h
header_Analysis_Univariate.h
header_Utilities_UP.h
header_Trigo.h
and use the library lib_UP.a and lib_Trigo.a. For using the parser you need:
 
header_parser.h
and the libraries lib_Solve_General_Parser.a, lib_Parser.a.

In addition to these libraries you have to add either lib_No_Slave.a or lib_Slave.a respectively for a sequential and parallel implementation.

The link flags for using BIAS/Profil are:

 
-lProfilOpt -lProfilNLI -lProfilMISC -lProfil -lBias
with the following flags (if you have installed the Profil library in /u/Profil and the ALIAS library in /u/ALIAS):
-I/u/Profil/incl -L/u/Profil -L/u/ALIAS
The compilation flags must include the -fpermissive options that is necessary for using Profil. Hence a typical makefile will look like:
 
 .C.o:
	g++ -O -fpermissive -I$(INCL) -w -c -o $*.o $<
CC=g++ -g -w -O -fpermissive
INCL=/u/ALIAS/Profil/incl
LIB=/u/ALIAS/Profil
INCLI=/u/ALIAS/Lib-solaris
LIB_SOLVE=${INCLI}/lib_Solve_General.a ${INCLI}/lib_No_Slave.a
LIB_UP=${INCLI}/lib_UP.a
LIB_TRIGO=${INCLI}/lib_Trigo.a
LIB_SIMPLEX=${INCLI}/lib_Solve_Simplex.a
LIB_CONTINUATION=${INCLI}/lib_Continuation.a
LD= -lProfilOpt -lProfilNLI -lProfilMISC -lProfil -lBias

Test:Test.o
	$(CC) -I$(INCL) Test.C  -o Test \
	-L$(LIB) $(LIB_UP) $(LIB_TRIGO) $(LIB_CONTINUATION) \
	$(LIB_SIMPLEX) $(LIB_SOLVE) $(LD) -lm
Note that for using the current version you still need to use the Gnu C++ compiler version 2.95 and not higher. Indeed the BIAS/Profil package cannot be compiled with a higher version as it uses an "old" version of C++ (whatever this means for a language that is intended to be reusable $\ldots$).

If you plan to use pvm for making a parallel implementation of your program then the flag -lm should be substituted by -lm -lpvm3 -lnsl -lm -ldl -lintl -lsocket on a SUN workstation and by -lm -lpvm3 -lnsl -lm -ldl on a PC running Linux. The LIB_SOLVE dependency has also to be modified to:

 
LIB_SOLVE=${INCLI}/lib_Solve_General.a ${INCLI}/lib_Slave.a
for a better efficiency.


next up previous contents
Next: Reserved variables Up: How to install and Previous: Installing ALIAS   Contents
Jean-Pierre Merlet 2012-12-20