giac et sage?
Modérateur : xcasadmin
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
Salut,
j'ai change:
ligne 834 de icas.cc
if (bs && s[bs-1]==63 && insage){
car je n'y arrivais pas avec tab. et en console ca sortait le ls
et j'ai remis le retour chariot:
ligne 889
// if (!insage)
celui la est utile, ce sont ceux qui accompagnaient le Time qui etaient genant et qui sont deja retires.
La ca marche (sauf les echanges de matrices mais ca ne se regle pas au meme endroit )
je vais mettre un brouillon sur ma page:
http://www.math.jussieu.fr/~han/xcas/
fred
j'ai change:
ligne 834 de icas.cc
if (bs && s[bs-1]==63 && insage){
car je n'y arrivais pas avec tab. et en console ca sortait le ls
et j'ai remis le retour chariot:
ligne 889
// if (!insage)
celui la est utile, ce sont ceux qui accompagnaient le Time qui etaient genant et qui sont deja retires.
La ca marche (sauf les echanges de matrices mais ca ne se regle pas au meme endroit )
je vais mettre un brouillon sur ma page:
http://www.math.jussieu.fr/~han/xcas/
fred
Re: giac et sage?
bonjour,
J'allais écrire dans le forum pour le problème du nom du répertoire dans le fichier spkg mais je vois avec plaisir que ce fil a été prolongé!
Je viens de télécharger le dernier spkg sur le site et à l'installation, j'ai ce pb de compilation (dès le début de la compilation)
Une petite idée?
Si je comprends bien, Frédéric travaille sur un script python pour assurer l'interface entre sage et giac, bravo!
Sera-t-il possible à terme à son avis de carrément pouvoir appeler giac de manière transparente (sans avoir systématiquement à expliciter les giac(....) pour convertir les objets). En gros, ce que j'aimerais, c'est pouvoir utiliser giac à la place de maxima dans Sage (tout en conservant la syntaxe actuelle de Sage)
J'allais écrire dans le forum pour le problème du nom du répertoire dans le fichier spkg mais je vois avec plaisir que ce fil a été prolongé!
Je viens de télécharger le dernier spkg sur le site et à l'installation, j'ai ce pb de compilation (dès le début de la compilation)
Code : Tout sélectionner
config.status: creating po/Makefile
Adding link . to giac in src
Making install in src
make[1]: entrant dans le répertoire « /home/loic/Documents/sage-4.6.1/spkg/build/giac-0_9_1/src/src »
/bin/bash ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -I/home/loic/Documents/sage-4.6.1/local/include -O2 -D_I386_ -I/home/loic/Documents/sage-4.6.1/local/include -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -MT input_lexer.lo -MD -MP -MF .deps/input_lexer.Tpo -c -o input_lexer.lo input_lexer.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -I/home/loic/Documents/sage-4.6.1/local/include -O2 -D_I386_ -I/home/loic/Documents/sage-4.6.1/local/include -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -MT input_lexer.lo -MD -MP -MF .deps/input_lexer.Tpo -c input_lexer.cc -fPIC -DPIC -o .libs/input_lexer.o
input_lexer.ll: In function ‘int giac::find_or_make_symbol(const std::string&, giac::gen&, void*, const giac::context*)’:
input_lexer.ll:1348: error: conversion from ‘const unsigned int’ to ‘const giac::gen’ is ambiguous
gen.h:561: note: candidates are: giac::gen::gen(const giac::unary_function_ptr*, int) <near match>
gen.h:554: note: giac::gen::gen(giac::Tref_tensor<giac::gen>*) <near match>
gen.h:550: note: giac::gen::gen(giac::ref_symbolic*) <near match>
gen.h:547: note: giac::gen::gen(giac::ref_vecteur*, short int) <near match>
gen.h:545: note: giac::gen::gen(giac::ref_identificateur*) <near match>
gen.h:532: note: giac::gen::gen(const giac_float&)
gen.h:530: note: giac::gen::gen(double)
gen.h:525: note: giac::gen::gen(giac::ref_mpz_t*) <near match>
gen.h:520: note: giac::gen::gen(int128_t)
gen.h:518: note: giac::gen::gen(longlong)
gen.h:513: note: giac::gen::gen(size_t)
gen.h:508: note: giac::gen::gen(int)
make[1]: *** [input_lexer.lo] Erreur 1
make[1]: quittant le répertoire « /home/loic/Documents/sage-4.6.1/spkg/build/giac-0_9_1/src/src »
make: *** [install-recursive] Erreur 1
real 0m40.550s
user 0m32.386s
Si je comprends bien, Frédéric travaille sur un script python pour assurer l'interface entre sage et giac, bravo!
Sera-t-il possible à terme à son avis de carrément pouvoir appeler giac de manière transparente (sans avoir systématiquement à expliciter les giac(....) pour convertir les objets). En gros, ce que j'aimerais, c'est pouvoir utiliser giac à la place de maxima dans Sage (tout en conservant la syntaxe actuelle de Sage)
Re: giac et sage?
Je rajoute une conversion explicite de unsigned int vers int dans input_lexer.ll j'espere que ca resoudra le probleme.
Je mets aussi a jour le spkg avec les modifs de Frederic dans icas.cc. J'ajoute aussi un lien depuis la page de compilation de giac vers la page de Frederic.
Je mets aussi a jour le spkg avec les modifs de Frederic dans icas.cc. J'ajoute aussi un lien depuis la page de compilation de giac vers la page de Frederic.
Re: giac et sage?
Bien, à présent, le package compile.
Sur ma debian, j'ai du rajouter le package mesa-common-dev pour que ça passe
En revanche, sur la page de Frédéric Han, il est dit de télécharger le fichier sage.py
Je l'ai ensuite placé dans: sage-4.6.1/devel/sage-main/sage/interfaces/
Mais lorsque je lance sage, la commande
Une idée?
Sur ma debian, j'ai du rajouter le package mesa-common-dev pour que ça passe
En revanche, sur la page de Frédéric Han, il est dit de télécharger le fichier sage.py
Je l'ai ensuite placé dans: sage-4.6.1/devel/sage-main/sage/interfaces/
Mais lorsque je lance sage, la commande
Code : Tout sélectionner
sage: from giac import giac
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/home/loic/Documents/sage-4.6.1/<ipython console> in <module>()
ImportError: No module named giac
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
Salut, le spkg compile bien pour moi aussi, et la doc n'a pas eu a se compiler pour s'installer.
pour le giac.py
from giac va chercher giac.py dans le repertoire courant, ca permet de l'utiliser sans droits.
la tu peux faire:
from sage.interfaces.giac import giac
mais je me demande si ca n'est pas plutot dans:
sage-4.6.1/devel/sage/build/sage/interfaces qu'il vaut mieux le mettre.
(en tout cas c'est la que j'ai teste pour l'avoir dans le notebook)
ensuite tu peux mettre:
from giac import gic,giac_console,Giac dans le all.py (du rep interfaces)
et
dans:
build/sage/structure/sage_object.pyx
def _giac_(self, G=None):
if G is None:
import sage.interfaces.giac
G = sage.interfaces.giac.giac
return self._interface_(G)
def _giac_init_(self):
import sage.interfaces.giac
I = sage.interfaces.giac.giac
return self._interface_init_(I)
puis pour creer les pyc tu peux executer sage puis giac(2) avec les bons droits, puis ensuite ca devrait marcher avec des droits quelconques
Pour la syntaxe simple, pour l'instant des trucs comme cela marchent:
x,y=giac('x'),giac('y')
giac.int(1+cos(x),x)
Fred
pour le giac.py
from giac va chercher giac.py dans le repertoire courant, ca permet de l'utiliser sans droits.
la tu peux faire:
from sage.interfaces.giac import giac
mais je me demande si ca n'est pas plutot dans:
sage-4.6.1/devel/sage/build/sage/interfaces qu'il vaut mieux le mettre.
(en tout cas c'est la que j'ai teste pour l'avoir dans le notebook)
ensuite tu peux mettre:
from giac import gic,giac_console,Giac dans le all.py (du rep interfaces)
et
dans:
build/sage/structure/sage_object.pyx
def _giac_(self, G=None):
if G is None:
import sage.interfaces.giac
G = sage.interfaces.giac.giac
return self._interface_(G)
def _giac_init_(self):
import sage.interfaces.giac
I = sage.interfaces.giac.giac
return self._interface_init_(I)
puis pour creer les pyc tu peux executer sage puis giac(2) avec les bons droits, puis ensuite ca devrait marcher avec des droits quelconques
Pour la syntaxe simple, pour l'instant des trucs comme cela marchent:
x,y=giac('x'),giac('y')
giac.int(1+cos(x),x)
Fred
Re: giac et sage?
Merci bcp, je teste ça dès que possible
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
J'ai un peu ameliore.
pour que les elements du SR soient reconnus, pi, sqrt(5)...
il faut ajouter quelque trucs dans d'autres fichiers.
J'ai mis un diff pour sage 4.6.2 sur ma page:
http://www.math.jussieu.fr/~han/xcas
avec ca on moins besoin des guillemets
_=vars('x,y')
sage: giac.solve(x^2+x*y-4,x)
[1/2*(-y+sqrt(y^2+16)),1/2*(-y-sqrt(y^2+16))]
en revanche je ne m'attendais pas du tout a ce que:
l=giac.plot(sin(x),x)
l
ou giac.display(l,'green') m'ouvre une fenetre avec le bon dessin!
NB:
sage: giac.plot3d(x^2+y^2+1,x,y)
Done
marche une fois, mais pas 2 fois.
sage: giac.plot3d(x^2+y^2+1,x,y)
XRequest.145: BadDrawable (invalid Pixmap or Window parameter) 0x2a00003
Fred
pour que les elements du SR soient reconnus, pi, sqrt(5)...
il faut ajouter quelque trucs dans d'autres fichiers.
J'ai mis un diff pour sage 4.6.2 sur ma page:
http://www.math.jussieu.fr/~han/xcas
avec ca on moins besoin des guillemets
_=vars('x,y')
sage: giac.solve(x^2+x*y-4,x)
[1/2*(-y+sqrt(y^2+16)),1/2*(-y-sqrt(y^2+16))]
en revanche je ne m'attendais pas du tout a ce que:
l=giac.plot(sin(x),x)
l
ou giac.display(l,'green') m'ouvre une fenetre avec le bon dessin!
NB:
sage: giac.plot3d(x^2+y^2+1,x,y)
Done
marche une fois, mais pas 2 fois.
sage: giac.plot3d(x^2+y^2+1,x,y)
XRequest.145: BadDrawable (invalid Pixmap or Window parameter) 0x2a00003
Fred
Re: giac et sage?
oui, ça le fait aussi en ligne de commande, je ne sais pas trop pourquoi, je vais essayer de creuser un peu.
Re: giac et sage?
Ca devrait marcher avec la mise a jour du source. Je vais aussi mettre a jour les binaires.
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
En fait ca a l'air de marcher si je modifie la fenetre, mais si je clique simplement sur OK sans toucher a rien, le coup suivant reste gris.
Fred
Fred
Re: giac et sage?
tu as fait quoi? Je viens d'essayer plan(z=0) ok puis plan(z=1) ok plan(z=2) ca marche bien chez moi.
Edit: je viens de reessayer avec la version du deb, et la ca plante. Ca marche par contre dans mon repertoire de developpement, avec compilation -g et binaire statique. Etrange...
Edit: je viens de reessayer avec la version du deb, et la ca plante. Ca marche par contre dans mon repertoire de developpement, avec compilation -g et binaire statique. Etrange...
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
J'ai compile le source d'aujourd'hui.
plot3d(sin(x*y),x,y)
marche tant que j'agrandi la fenetre avant de quitter
Fred
NB: pour ton spkg sur ta page il reste un "pour x64" alors qu'il marche bien en 32 bits aussi
Fred
plot3d(sin(x*y),x,y)
marche tant que j'agrandi la fenetre avant de quitter
Fred
NB: pour ton spkg sur ta page il reste un "pour x64" alors qu'il marche bien en 32 bits aussi
Fred
Re: giac et sage?
On va en rester là alors (de toutes façons je suis à court d'idées pour faire marcher à tous les coups).
J'enlève le x64.
a+
J'enlève le x64.
a+
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: giac et sage?
En fait je me suis rendu compte que si javais une fenetre grise, alors en l'agrandissant, la bonne image apparaissait.
A part cela, j'ai un peu mis a jour, et l'interface est assez rapide.
Ex: http://people.math.jussieu.fr/~han/xcas ... -bench.txt
(Si quelqu'un a l'occasion de faire des tests sur une marchine plus rapide)
NB: le patch est a priori pour 4.6.2, il devrait un peu raler pour d'autres versions, mais s'en sortir tout de meme.
(il y a essentiellement 1 fichier giac.py nouveau et quelques petites entrees dans d'autres fichiers)
Fred
A part cela, j'ai un peu mis a jour, et l'interface est assez rapide.
Ex: http://people.math.jussieu.fr/~han/xcas ... -bench.txt
(Si quelqu'un a l'occasion de faire des tests sur une marchine plus rapide)
NB: le patch est a priori pour 4.6.2, il devrait un peu raler pour d'autres versions, mais s'en sortir tout de meme.
(il y a essentiellement 1 fichier giac.py nouveau et quelques petites entrees dans d'autres fichiers)
Fred
Re: giac et sage?
oui, l'interface parait assez rapide. Ton post sur sage-devel n'a pas eu beaucoup de succes (mais il y a eu quand meme 36 clics depuis ta page vers une de mes pages depuis), peut-etre qu'un bon benchmark dans un domaine ou sage est lent et giac rapide aurait plus d'effet...