0.9.8

Bugs

Modérateur : xcasadmin

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

0.9.8

Message par frederic han » mer. juin 13, 2012 9:45 am

Je n'ai teste cela qu'avec une 0.9.8 compilee sous freebsd mais:

pari()
pari_factor(6) donne bien 2 facteurs mais
n:=nextprime(11**11)*nextprime(8**13)
pari_factor(n) n'en donne qu'un.

Fred

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

Re: 0.9.8

Message par parisse » mer. juin 13, 2012 3:35 pm

bizarre, chez moi il en renvoie bien 2.
Testé sur mac et sur linux 64.
[Edit]
Testé aussi ok sur linux 32. La version de pari est la 2.5.

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: 0.9.8

Message par frederic han » jeu. juin 14, 2012 8:06 am

Ca doit etre ca la difference car la c'est une compil amd64 avec pari 2.3.5 (qui est la version actuelle du port freebsd)

a+

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

Re: 0.9.8

Message par parisse » jeu. juin 14, 2012 8:32 am

alors il faut regarder si ce n'est pas une difference de conversion d'entiers entre pari et giac.
Regarde ligne 112 de pari.cc, et change le code execute pour voir. Ou il faudrait comparer avec une version plus ancienne de giac qui marchait avec freebsd.

frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: 0.9.8

Message par frederic han » ven. juin 15, 2012 10:17 am

oui c'est surement cela car ils viennent de retrogader la version de pari de 2.5 vers 2.3.

mais pour l'instant je n'ai pas vu de difference je n'ai peut etre pas tout bien recompile.

Fred

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

Re: 0.9.8

Message par parisse » mer. août 01, 2012 10:08 am

Je viens de corriger un bug dans les routines de conversion d'entiers pari->giac, qui affecte les versions 64 bits, peut-etre que c'est lie, voici le nouvelle version

Code : Tout sélectionner

  static gen t_INT2gen(const GEN & G){
    long Gs=signe(G);
    if (!Gs)
      return 0;
    //setsigne(G,1);
    long Gpl=lgefint(G)-2;
    // use one of the following code depending how pari codes long integers
    // Code 1
#if !defined(__APPLE__) && !defined(WIN32)
    ref_mpz_t * mz = new ref_mpz_t;
    mpz_realloc2(mz->z,32*Gpl);
    mpz_import(mz->z,Gpl,-1,sizeof(GEN),0,0,&G[2]);
    //setsigne(G,Gs);
    if (Gs>0) 
      return mz;
    else
      return -gen(mz);
#else
    // Code 2
    --Gpl;
    long * Gp=int_MSW(G);
    gen res;
    for (int i=0;i<=Gpl;++i){
#ifdef INT128
      res=res*pow2sizeof_long+int128_t((ulonglong)*Gp);
#else
      res=res*pow2sizeof_long+longlong(unsigned(*Gp));
#endif
      Gp=int_precW(Gp);
    }
    return Gs<0?-res:res;
#endif
  }


frederic han
Messages : 1139
Inscription : dim. mai 20, 2007 7:09 am
Localisation : Paris
Contact :

Re: 0.9.8

Message par frederic han » mer. août 08, 2012 11:15 am

Salut,

ca n'a pas l'air d'ameliorer. J'ai essaye avec le source du 1/8. Est ce que la correction est aussi prise en compte avec PARI23?


au fait, est ce que tu as change la version de cocoa qu'il faut utiliser? ca n'avait pas l'air de compiler avec celle que j'avais.


Fred

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

Re: 0.9.8

Message par parisse » mer. août 08, 2012 11:51 am

non, je n'ai rien rajoute pour prendre en compte pari 2.3.
Pour cocoa, en effet, je suis passe a la version 0.9950, tu peux changer ca en commentant la ligne #define COCOA9950 au debut de cocoa.cc.

Répondre