Page 1 sur 1

0.9.8

Publié : mer. juin 13, 2012 9:45 am
par frederic han
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

Re: 0.9.8

Publié : mer. juin 13, 2012 3:35 pm
par parisse
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.

Re: 0.9.8

Publié : jeu. juin 14, 2012 8:06 am
par frederic han
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+

Re: 0.9.8

Publié : jeu. juin 14, 2012 8:32 am
par parisse
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.

Re: 0.9.8

Publié : ven. juin 15, 2012 10:17 am
par frederic han
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

Re: 0.9.8

Publié : mer. août 01, 2012 10:08 am
par parisse
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
  }


Re: 0.9.8

Publié : mer. août 08, 2012 11:15 am
par frederic han
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

Re: 0.9.8

Publié : mer. août 08, 2012 11:51 am
par parisse
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.