]> www.ginac.de Git - cln.git/blob - tests/main.cc
- Added lots of @cindex to produce an index.
[cln.git] / tests / main.cc
1 //#define WANT_OBFUSCATING_OPERATORS
2 #include <cl_number.h>
3 #include <cl_io.h>
4 //#include <cl_complex.h>
5 //#include <cl_real.h>
6 //#include <cl_real_io.h>
7 //#include <cl_output.h>
8 //#include <cl_ffloat.h>
9 #include <cl_integer.h>
10 #include <cl_integer_io.h>
11 //#include <cl_modinteger.h>
12 //#include <cl_numtheory.h>
13 #include <cl_timing.h>
14
15 #define DUMP(expr)  \
16         fprint(cl_stdout, #expr" = "); fprint(cl_stdout, expr); fprint(cl_stdout, "\n");
17
18 int main (int argc, char* argv[])
19 {
20         (void)argc; (void)argv;
21
22 #if 0
23         cl_F pi = cl_pi((cl_float_format_t)10000);
24         fprint(cl_stdout, pi);
25         fprint(cl_stdout, "\n");
26 #endif
27
28 #if 0
29         cl_FF a;
30         cl_FF x1 = "-0.2173f0";
31         cl_FF x2 = "5.5084f9";
32         cl_FF y = "-1.19698f9";
33         fprint(cl_stdout, "x1 = "); print_float_binary(cl_stdout,x1); fprint(cl_stdout, " = "); fprint(cl_stdout,x1); fprint(cl_stdout, "\n");
34         fprint(cl_stdout, "x2 = "); print_float_binary(cl_stdout,x2); fprint(cl_stdout, " = "); fprint(cl_stdout,x2); fprint(cl_stdout, "\n");
35         fprint(cl_stdout, "y = "); print_float_binary(cl_stdout,y); fprint(cl_stdout, " = "); fprint(cl_stdout,y); fprint(cl_stdout, "\n");
36         cl_FF x = x1*x2;
37         fprint(cl_stdout, "x1*x2 = "); print_float_binary(cl_stdout,x); fprint(cl_stdout, " = "); fprint(cl_stdout,x); fprint(cl_stdout, "\n");
38 #endif
39
40 #if 0
41         cl_I x = 10;
42         cl_I y = ++x;
43         x *= 2;
44         x++;
45         fprint(cl_stdout, "x = "); fprint(cl_stdout, x); fprint(cl_stdout, "\n");
46         fprint(cl_stdout, "y = "); fprint(cl_stdout, y); fprint(cl_stdout, "\n");
47 #endif
48
49 #if 0
50         cl_I a = "77371252437321868671713407";
51         cl_I w;
52         cl_boolean squarep = isqrt(a,&w);
53         DUMP(squarep);
54         DUMP(w);
55         DUMP(expt_pos(w,2) <= a);
56         DUMP(a < expt_pos(w+1,2));
57 #endif
58
59 #if 0
60         cl_I m = "79228162513111556826425457664";
61         cl_I a = "19787815858762768436681494528";
62         cl_modint_ring R = cl_find_modint_ring(m);
63         cl_I b = R->retract(R->canonhom(a));
64         cl_I c = mod(a,abs(m));
65         DUMP(b);
66         DUMP(c);
67         DUMP(b==c);
68 #endif
69
70 #if 0
71         cl_N x = argv[1];
72         cl_N y = sinh(x);
73         { CL_TIMING; y = sinh(x); }
74         cout << y << endl;
75 #endif
76
77 #if 0
78         cl_I x = argv[1];
79         cout << x << " is " << (isprobprime(x) ? "" : "not ") << "prime" << endl;
80 #endif
81
82 #if 0
83         cl_float_format_t f = cl_float_format(atoi(argv[1]));
84         extern cl_LF cl_zeta3 (uintC len);
85         uintC len = (uintL)f/intDsize+1;
86         { CL_TIMING; cout << cl_zeta(2,f) << endl; }
87         { CL_TIMING; cout << expt(cl_pi(f),2)/6 << endl; }
88         { CL_TIMING; cout << cl_zeta(3,f) << endl; }
89         { CL_TIMING; cout << cl_zeta3(len) << endl; }
90         { CL_TIMING; cout << cl_zeta(4,f) << endl; }
91 #endif
92
93         cl_I a = cl_I(argv[1]);
94         cl_I b = cl_I(argv[2]);
95         cl_I u;
96         cl_I v;
97         cl_I g = xgcd(a,b,&u,&v);
98         cout << "a = " << a << endl;
99         cout << "b = " << b << endl;
100         cout << "gcd = " << gcd(a,b) << endl;
101         cout << "g = " << g << endl;
102         cout << "u = " << u << endl;
103         cout << "v = " << v << endl;
104
105 #if 0
106         cl_F x = argv[1];
107         cout << x << endl;
108 #endif
109
110 }