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>