Cher Denis,

A la demande de Cremona et Stein, comme il y a des Sage days la semaine qui
vient, j'ai nettoye tes scripts qfsolve, ellQ, et ell. Il m'a fallu pas
mal de temps pour que ca puisse passer dans gp2c, mais ca marche maintenant.
Pour faciliter la vie de tout le monde, il serait bien que tu fasses les
modifs toi-meme bien sur, puisque c'est evidemment toi le chef de tes
scripts (et si tu pouvais le faire avant lundi ca serait genial, c'est
assez court): voici de quoi il s'agit.

1) Pour compiler avec gp2c, je dois presque obligatoirement avoir un
seul fichier: j'ai donc concatene (dans cet ordre) qfsolve, ellQ, ell.
2) Il m'a fallu faire un tres grand nombre de modifications, la plupart
mineures, mais plusiers non. Tout d'abord les mineures (et les autres,
mais je commenterai les grosses plus loin). J'ai essaye de TOUT prefacer
par le mot clef MODI, qu'il te suffit de chercher.

-- Il y a pas mal de variables inutilisees (je donne la liste precise).
Enleve les.
-- Il y a pas mal de variables non declarees (idem). Ajoute les.
-- Il y a un certain nombre de noms de variables absolument exclus
en C (mais pas en GP): s'il te plait renomme les. J'ai systematiquement
ajoute le suffixe _s, mais fait comme tu veux. De memoire (mais il y en
a peut etre d'autres, regarde les MODI):
            det, struct, prec, nfsign, auto
-- Dans qfsolve tu as plusieurs fois printp(): ca n'existe pas. tu veux
dire quoi ? change.
-- D'autres petits trucs que tu verras.

3) Plus important:
-- Une bug: dans qfsolve.gp tu as if( !length(V), next). Ce n'est pas 
possible tu n'est pas dans une boucle. Quid ?
-- Tu as deux fonctions nfsqrt: une dans ell.gp une dans ellQ.gp. Tu as
beaucoup de fonctions communes bien sur, mais celle la n'est pas programmee
tout a fait pareil. Les deux sont elles correctes ? (au passage, deja dit
plus haut, n'utilise pas nfsign comme identificateur de fonction, ca
existe dans pari (pas dans GP) et fait qqchose de semblable, j'ai
renomme nfsign_s).
-- La plus grosse bug: tu as deux fonctions nfpsquareodd, une dans ell.gp
et une dans ellQ.gp qui ne prennent pas le meme type de troisieme argument:
dans l'une c'est un ideal premier, dans l'autre un ideal premier "augmente".
S'il te plait unifie, supprime l'une des deux.

4) Modifications que je te demande de faire qui ne sont pas de ton fait
mais on doit faire plaisir a gp2c:
-- a un endroit tu as vecsort(v,,3). Ce n'est pas ta faute mais remplace par
Vec(vecsort(v,,3)).
-- gp2c comprend un certain nombre de fonctions "membre", mais pas toutes.
En particulier: fonction .mod: soit remplace par component(,1), soit mieux
inclut la fonction getmod(z)=component(z,1);
-- idem pour .tufu et .futu: remplace par les fonctions gettufu et getfutu
que j'ai ecrites.

5) Pour pouvoir compiler, il me faut un seul fichier, j'ai donc commente
dans ell.gp toutes les fonctions communes avec ellQ.gp (sauf
nfpsquareodd, appellee differemment dans les 2 progs, a qui j'ai donc
du donner 2 noms differents). Donc pour eviter a l'avenir de faire ca,
plusieurs solutions: tu peux comme moi faire (en plus de qfsolve, ellQ,
et ell) faire un fichier unique, soit tu fais un fichier du type ellcomp
qui est simplement un complement a concatener avec ellQ, ou tout autre
solution qui te plaira.

6) J'oubliais un truc genant: j'ai modifie tous tes addhelp pour qu'ils
soient sur une seule ligne, sinon ca ne compile pas. Donc meme si l'aide
est longue, ne met pas de return entre les guillemets.

Toutes ces modifs sont incluses dans le script ellQ2.gp qui compile
parfaitement avec gp2c (temps divise par 2 quand il y a un point de
2-torsion, sinon gain marginal 10%), mais sage souhaite vraiment des
programmes C et pas des scripts.

Autre chose, secondaire: gp2c n'aime pas du tout les variables globales,
donc j'ai ajoute comme exemple ellrankdebug qui inclut comme deuxieme
parametre DEBUGLEVEL_ell. On peut evidemment varier a l'infini. Il serait
bon aussi de pouvoir passer en parametres la borne de recherche des points
sur les quartiques (ca doit etre une autre de tes variables globales, je
ne sais plus laquelle).

Amities,

Henri