Ecrire un programme C++ utilisant Giac
Windows
Si vous compilez avec cygwin, les DLL sont installées
par l'installeur de Xcas. Sinon, vous devez utilisez ces DLL :
win32 dll,
win64 dll
Mingw 32 bits :
désarchivez
mingw giac 32 bits
dans le répertoire CodeBlocks/MinGW,
puis créez un projet console en ajoutant dans
Settings, Compiler, Linker settings la librairie
giacdll. Ou modifiez cet
exemple.
QT windows
Voir ce blog par
Zoltán Kovács, de l'équipe Geogebra dev.
Mac OS
Suivre ces instructions
Linux
Le plus simple sur une distribution de type Debian
supportée (debian, ubuntu,
...) est d'installer le paquet debian de
giac ou sinon de suivre le
guide rapide debian/ubuntu.
Il vous faudra ensuite peut-etre installer des fichiers
headers manquants, avec des commandes ressemblant à
sudo apt-get install libgmp-dev libao-dev
Sur les autres systèmes, il faut installer Giac depuis le
source.
Exemple
Le code source de giac contient un répertoire
examples/demo avec un programme de test pgcd.cc qui
vous permettra de tester que votre installation est correcte
(à compiler par g++ pgcd.cc -lgiac , il peut
etre nécessaire d'ajouter -lgmp).
Il vous reste alors à consulter la
documentation info de giac pour connaitre
les structures de données de giac (en particulier le type gen).
Giac/xcas est un projet en vue de créer un logiciel libre
de calcul formel qui puisse également etre utilisé en mode
bibliothèque. Son nom est dérivé de
GiNaC, une autre bibliothèque
de calcul formel, il signifie Giac Is A Computer algebra system.
Vous pouvez compiler
-
le code source
"stable"
ou le répertoire
des sources par
version.
-
dernière version
HTTP instable de Giac,
également disponible depuis le
Geogebra GIT.
- Pour compiler sous Unix sans les droits administrateurs
(installation dans votre répertoire), exécutez ce
script. Si wget n'est pas installé,
téléchargez le source avec votre navigateur et commentez
la ligne wget du script avec un #. Ensuite ~/bin/runxcas
lancera Xcas.
-
Vous pouvez suivre l'évolution du code source
sur le
GIT de Geogebra
-
Grace à Frederic Han,
les utilisateurs de sage ont acces à giac
par la commande de conversion giac(quelquechose)
si giac est installé (par exemple un package
de giac sous linux).
Pour plus d'informations, cf. la page web de
Frederic Han.
- Install rapide sous ubuntu/debian
-
Ouvrez un terminal et copiez-collez les commandes :
sudo apt-get install gcc g++ libgmp-dev libmpfr-dev libmpfi-dev libpari-dev libgsl0-dev libxext-dev libpng-dev libjpeg-dev libreadline-dev libncurses5-dev mesa-common-dev libx11-dev libxt-dev libxft-dev libntl-dev libgl1-mesa-dev libgl-dev libao-dev hevea debhelper libecm1-dev libcliquer-dev libresample1-dev libxinerama-dev libsamplerate0-dev libfltk1.3-dev texlive-science
wget https://www-fourier.univ-grenoble-alpes.fr/~parisse/giac/giac-1.9.0.tar.gz
tar xfa giac-1.9.0.tar.gz
cd giac-1.9.0
./mkdebian
cd ..
sudo dpkg -i giac*deb
N.B. n'installez pas libfltk1.3-dev si vous voulez le compiler à
la main (meilleur support impression Postscript). Notez que
libpari-dev est parfois nomme libpari1-dev.
-
Vous pouvez optionnellement installer des versions plus
récentes des logiciels listés ci-dessous à la main.
-
Puis faire ./mkdebian dans le répertoire de
giac.
-
Installer les librairies nécessaires et optionnelles
- GMP (requis),
ou apt-get install libgmp3-dev sur Debian,
- MPFR (très recommandé) ou
apt-get install libmpfr-dev sur Debian,
- NTL (recommandé).
Se compile depuis cd src puis
./configure NTL_GMP_LIP=on NTL_STD_CXX=on
make && make install
- PARI 2.x (recommandé).
- GSL (recommandé),
ou apt-get install libgsl0-dev sur Debian,
- FLTK (requis).
Vous devez installer FLTK 1.3.2 (sudo apt-get install libfltk1.3-dev)
ou compiler cette version
(avec --disable-shared si vous faites un package debian)
- vectorclass (optionnel)
par Agner Fog, tapez
export CXXFLAGS='-O2 -g -mfma -mavx2 -fabi-version=0'
avant ./configure
-
Pour compiler giac:
tar xvfz giac_unstable.tgz
(ou tar xvfz giac_stable.tgz)
cd giac-1.9.0
(ou cd giac-a.b.c)
sh configure
make
su
make install
- QT/Windows
cf. ce blog par
Zoltán Kovács, de l'équipe de dev de Geogebra