Installation Giac et questions diverses

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

Antoine
Messages : 1
Inscription : lun. juin 04, 2007 7:23 am

Installation Giac et questions diverses

Message par Antoine » lun. juin 04, 2007 9:20 am

Bonjour,

J'essaye d'installer giac sur Fedora Core 2, mais j'obtiens l'erreur suivante lors de la compilation, sur laquelle je bloque depuis deja quelques jours :

Code : Tout sélectionner

$ make
make  all-recursive
make[1]: Entering directory `[...]/archives/giac-0.6.1'
Making all in src
make[2]: Entering directory `[...]/archives/giac-0.6.1/src'
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I. -I.. -I[...]/progs/include  -g  -c Editeur.cc
In file included from giac/giac.h:36,
                 from Graph.h:4,
                 from Editeur.h:28,
                 from Editeur.cc:2:
giac/plot.h:39: error: multiple definition of `enum Fl_Color'
[...]/progs/include/FL/Enumerations.H:291: error: previous
   definition here
giac/plot.h:40: error: conflicting types for `FL_BLACK'
[...]/progs/include/FL/Enumerations.H:310: error: previous
   declaration as `Fl_Color FL_BLACK'

[... pareil avec les autres couleurs ...]

giac/plot.h:49: error: conflicting types for `FL_SELECTION_COLOR'
[...]/progs/include/FL/Enumerations.H:296: error: previous
   declaration as `Fl_Color FL_SELECTION_COLOR'
giac/plot.h:51: error: syntax error before `Fl_Color'
In file included from Graph.h:17,
                 from Editeur.h:28,
                 from Editeur.cc:2:
Xcas1.h:114: error: syntax error before `*' token
Xcas1.h:115: error: `History_Pack' undeclared in namespace `xcas'
Xcas1.h:115: error: `pack' was not declared in this scope
Xcas1.h:115: error: syntax error before `char'
make[2]: *** [Editeur.o] Error 1
make[2]: Leaving directory `[...]/archives/giac-0.6.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `[...]/archives/giac-0.6.1'
make: *** [all-recursive-am] Error 2

[...] := mon home
j'ai cherché sur le net sans trouver de réponse... je pense avoir installé correctement les librairies requises, mais il est possible que je me sois trompé quelquepart...

Ensuite, j'ai également quelques questions concernant giac :
- n'ayant pas encore eu l'occasion de tester la librairie moi même, je voulais savoir quel(s) étai(en)t le(s) format(s) de sortie des expressions "gen" (via les "COUT" - cf GiNaC, un "COUT << objet_gen " donne-t'il du code C, du code d'un autre langage, ou autre... ?)
- j'ai vu qu'il était possible d'avoir du code tel :

Code : Tout sélectionner

gen qt=gen("seq(q[j](t),j,1,"+gen(n).print()+")").eval();

je serais très interessé de savoir comment marche l'objet gen. S'agit t'il d'un interpreteur ?
- Existe t'il des fonctions d'optimisation, notamment concernant les objets de type gen ?

Merci d'avance, et bravo pour le travail effectué jusque là, cette librairie est assez impressionante !

parisse
Messages : 5745
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » lun. juin 04, 2007 10:41 am

bonjour,

je vous conseille tout d'abord d'installer la derniere version, giac-0.6.3, et pas la 0.6.1, peut-etre que le probleme de compilation a ete corrige depuis. Si ca ne marche pas, pouvez-vous me dire quelles sont les librairies qui ont ete detectees, en particulier fltk est-elle detectee (cf. HAVE_LIBFLTK dans config.h)?
Concernant le format de sortie d'un gen par std::cout, c'est le format algebrique standard. De meme que la methode print() d'un gen. Pour une sortie formattee (a peu pres) en latex, on peut utiliser la fonction giac::gen2tex. A l'avenir, j'espere pouvoir faire une sortie de type C++ en particulier pour un jour pouvoir traduire automatiquement des programmes ecrits en langages Xcas en programmes C++ utilisant libgiac.
Le type gen est plus ou moins decrit dans l'aide au format info, cf.
http://www-fourier.ujf-grenoble.fr/~par ... .html#Giac
dans l'exemple ou un gen est construit a partir d'une chaine de caractere, l'interpreteur de giac est appele, et c'est pour cela que la methode eval() est executee. On peut aussi construire un gen a partir de types C (int, double, etc.) ou faire des operations sur les gens (+,-,*,/,...).
Concernant l'optimisation, un de mes objectifs c'est de ne pas etre ridicule compare aux bons logiciels specialises dans leur domaine (eventuellement en utilisant la librarie specialisee, comme c'est le cas pour PARI-GP ou NTL). J'ai pour l'instant pas mal travaille sur l'aspect polynomes et PGCD.

Répondre