Bonjour et Bonne année,
Je reprends un vieux programme que j'avais développé avec giac, il y a un an et demi.
Ayant changé de machine et de version d'OS, j'ai du réinstaller giac et consort, puis recompiler mon vieux programme. Et ça ne marche pas.....
J'ai donc essayé de compiler l'exemple : ça ne marche pas non plus.
J'obtiens la réponse suivante :
[code]miko@iem14:~/Bureau/tmp$ c++ -g tryit.cc -lgiac -lgmp
In file included from /usr/include/c++/4.3/ext/hash_map:64,
from /usr/include/giac/index.h:40,
from /usr/include/giac/poly.h:26,
from /usr/include/giac/giac.h:5,
from tryit.cc:1:
/usr/include/c++/4.3/backward/backward_warning.h:33:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated.
tryit.cc: In function ‘int main()’:
tryit.cc:6: error: no matching function for call to ‘giac::gen::gen(std::string)’
/usr/include/giac/gen.h:323: note: candidates are: giac::gen::gen(const giac::my_mpz&)
/usr/include/giac/gen.h:319: note: giac::gen::gen(const giac::grob&)
/usr/include/giac/gen.h:318: note: giac::gen::gen(const giac::eqwdata&)
/usr/include/giac/gen.h:317: note: giac::gen::gen(const giac::gen_map&)
/usr/include/giac/gen.h:316: note: giac::gen::gen(const giac::unary_function_ptr&, int)
/usr/include/giac/gen.h:315: note: giac::gen::gen(const giac::sparse_poly1&)
/usr/include/giac/gen.h:314: note: giac::gen::gen(const std::string&, const giac::vecteur&, const giac::context*)
/usr/include/giac/gen.h:313: note: giac::gen::gen(const std::string&, const giac::context*)
/usr/include/giac/gen.h:312: note: giac::gen::gen(const giac::real_complex_rootof&)
/usr/include/giac/gen.h:311: note: giac::gen::gen(const giac::fraction&)
/usr/include/giac/gen.h:310: note: giac::gen::gen(const giac::polynome&)
/usr/include/giac/gen.h:309: note: giac::gen::gen(giac::polynome*)
/usr/include/giac/gen.h:307: note: giac::gen::gen(const giac::real_object&)
/usr/include/giac/gen.h:306: note: giac::gen::gen(const giac::gen_user&)
/usr/include/giac/gen.h:305: note: giac::gen::gen(giac::symbolic*)
/usr/include/giac/gen.h:304: note: giac::gen::gen(const giac::symbolic&)
/usr/include/giac/gen.h:302: note: giac::gen::gen(giac::vecteur*, short int)
/usr/include/giac/gen.h:301: note: giac::gen::gen(const giac::vecteur&, short int)
/usr/include/giac/gen.h:300: note: giac::gen::gen(const giac::identificateur&)
/usr/include/giac/gen.h:299: note: giac::gen::gen(const giac::gen&)
/usr/include/giac/gen.h:298: note: giac::gen::gen(const std::complex<double>&)
/usr/include/giac/gen.h:297: note: giac::gen::gen(const giac::gen&, const giac::gen&)
/usr/include/giac/gen.h:296: note: giac::gen::gen(double, double)
/usr/include/giac/gen.h:295: note: giac::gen::gen(int, int)
/usr/include/giac/gen.h:294: note: giac::gen::gen(double)
/usr/include/giac/gen.h:293: note: giac::gen::gen(__mpz_struct (*)[1])
/usr/include/giac/gen.h:290: note: giac::gen::gen(const __mpz_struct (&)[1])
/usr/include/giac/gen.h:289: note: giac::gen::gen(longlong)
/usr/include/giac/gen.h:288: note: giac::gen::gen(size_t)
/usr/include/giac/gen.h:287: note: giac::gen::gen(int)
/usr/include/giac/gen.h:286: note: giac::gen::gen(void*, short int)
/usr/include/giac/gen.h:285: note: giac::gen::gen()
tryit.cc:7: error: no matching function for call to ‘factor(giac::gen&)’
/usr/include/giac/gausspol.h:127: note: candidates are: bool giac::factor(const giac::polynome&, giac::polynome&, giac::factorization&, bool, bool, bool, const giac::gen&)
/usr/include/giac/sym2poly.h:55: note: giac::gen giac::factor(const giac::gen&, bool, const giac::context*)
/usr/include/giac/sym2poly.h:57: note: giac::gen giac::factor(const giac::gen&, const giac::identificateur&, bool, const giac::context*)
/usr/include/giac/sym2poly.h:58: note: giac::gen giac::factor(const giac::gen&, const giac::gen&, bool, const giac::context*)
[/code]
De ce que je comprends, le contructeur de structure generique de giac à partir d'une simple chaine n'existe plus.
Est ce normal, docteur ?
Je précise que je travaille sous Linux/Lenny et que j'ai installé de .deb fourni sur le site, avec les bibliothèques annexes fournies par Debian.
Entre temps je compile giac à partir des sources pour voir si ça change quelque chose, mais c'est long sur un vieux pentium.
Cordialement
Dominique MICOLLET[/list]
Compilation de tryit défaillante
Modérateur : xcasadmin
-
- Messages : 52
- Inscription : jeu. janv. 11, 2007 10:39 am
- Localisation : Université de Bourgogne - France
Compilation de tryit défaillante
Cordialement
Dominique MICOLLET
Dominique MICOLLET
bonjour,
Si votre source est assez ancien, il va vous falloir rajouter une variable de contexte d'evaluation dans de nombreux appels a des fonctions de giac (cela a ete ajoute pour permettre de gerer plusieurs sessions ayant des contextes d'evaluation independants).
Par exemple
giac::gen g("[1,2]");
va devenir
giac::gen g("[1,2]",ctxptr);
Dans un premier temps, vous pouvez remplacer ctxptr par 0 (qui designe un contexte d'evaluation global). Ou vous pouvez creer un contexte
giac::context ctx;
et utiliser &ctx pour ctxptr
Bon courage!
Si votre source est assez ancien, il va vous falloir rajouter une variable de contexte d'evaluation dans de nombreux appels a des fonctions de giac (cela a ete ajoute pour permettre de gerer plusieurs sessions ayant des contextes d'evaluation independants).
Par exemple
giac::gen g("[1,2]");
va devenir
giac::gen g("[1,2]",ctxptr);
Dans un premier temps, vous pouvez remplacer ctxptr par 0 (qui designe un contexte d'evaluation global). Ou vous pouvez creer un contexte
giac::context ctx;
et utiliser &ctx pour ctxptr
Bon courage!
-
- Messages : 52
- Inscription : jeu. janv. 11, 2007 10:39 am
- Localisation : Université de Bourgogne - France
Je viens de me rendre compte que vous aviez déjà donné la réponse dans le fil "Calcul matriciel".
J'avais supputé en examinant le code qu'on pouvait utiliser un pointeur nul et réussi à faire fonctionner l'exemple tryit, mais je préférais avoir confirmation.
Merci.
Dominique MICOLLET
J'avais supputé en examinant le code qu'on pouvait utiliser un pointeur nul et réussi à faire fonctionner l'exemple tryit, mais je préférais avoir confirmation.
Merci.
Dominique MICOLLET
Cordialement
Dominique MICOLLET
Dominique MICOLLET