[BACK]Return to kerntest.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / pari-2.2 / src / test

Annotation of OpenXM_contrib/pari-2.2/src/test/kerntest.c, Revision 1.1.1.1

1.1       noro        1: #include <pari.h>
                      2: #include <anal.h>
                      3:
                      4: GEN   gzero, gun, gdeux;
                      5: ulong top, bot, avma, memused = 0;
                      6: long  DEBUGLEVEL,DEBUGMEM = 0;
                      7:
                      8: void specinit()
                      9: {
                     10:   long size = 100000L;
                     11:   bot = (long)malloc(size);
                     12:   top = avma = bot + size;
                     13:   gzero = malloc(2);
                     14:   gzero[0] = evaltyp(t_INT)|evallg(2);
                     15:   gzero[1] = evallgefint(2);
                     16:   gun   = stoi(1);
                     17:   gdeux = stoi(2);
                     18: }
                     19:
                     20: void pari_err(long x, ...) { exit (0); }
                     21: GEN gerepileuptoint(long av, GEN q){ return q; }
                     22: void gerepilemanysp(long av, long tetpil, GEN* gptr[], long n){}
                     23: void gerepilemany(long av, GEN* gptr[], long n){}
                     24:
                     25: void sorstring(char* b, long x)
                     26: {
                     27: #ifdef LONG_IS_64BIT
                     28:   printf(b,(ulong)x>>32,x & MAXHALFULONG);
                     29: #else
                     30:   printf(b,x);
                     31: #endif
                     32: }
                     33:
                     34: void _voir(GEN x)
                     35: {
                     36:   long tx = typ(x), lx = lg(x),i;
                     37:   sorstring(VOIR_STRING2,x[0]);
                     38:   if (tx==t_INT) lx = lgefint(x);
                     39:   for (i=1; i < lx; i++) sorstring(VOIR_STRING2,x[i]);
                     40:   printf("\n");
                     41: }
                     42:
                     43: int main()
                     44: {
                     45:   GEN x,y,r,z, xr,yr;
                     46:   specinit();
                     47:   x = stoi(187654321L);
                     48:   y = stoi(-12345678L);
                     49:   printf("INT: %ld\n", itos(x));
                     50:   printf("conv:"); _voir(x);
                     51:   printf("+:"); _voir(addii(x,y));
                     52:   printf("-:"); _voir(subii(x,y));
                     53:   printf("*:"); _voir(mulii(x,y));
                     54:   printf("/:"); _voir(dvmdii(x,y, &z));
                     55:   printf("rem:"); _voir(z);
                     56:   printf("pow:\n");
                     57:   z = mulii(x,x); _voir(z);
                     58:   z = mulii(z,z); _voir(z);
                     59:   z = mulii(z,z); _voir(z);
                     60:   z = mulii(z,z); _voir(z);
                     61:   z = mulii(z,z); _voir(z);
                     62:   printf("invmod:"); invmod(y,z,&r); _voir(r);
                     63:   xr = cgetr(DEFAULTPREC); affir(x, xr);
                     64:   yr = cgetr(DEFAULTPREC); affir(y, yr);
                     65:   printf("\nREAL: %f\n", rtodbl(xr));
                     66:   printf("conv1:"); _voir(xr);
                     67:   printf("conv2:"); _voir(dbltor(rtodbl(xr)));
                     68:   printf("+:"); _voir(addrr(xr,yr));
                     69:   printf("-:"); _voir(subrr(xr,yr));
                     70:   printf("*:"); _voir(mulrr(xr,yr));
                     71:   printf("/:"); _voir(divrr(xr,yr));
                     72:   printf("gcc bug?:"); _voir(divrs(dbltor(3.),2));
                     73:   return 0;
                     74: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>