]> www.ginac.de Git - cln.git/blob - tests/main.cc
Fix yet another dependent base C++ language issue.
[cln.git] / tests / main.cc
1 //#define WANT_OBFUSCATING_OPERATORS
2 #include <cln/number.h>
3 #include <cln/io.h>
4 //#include <cln/complex.h>
5 //#include <cln/real.h>
6 //#include <cln/real_io.h>
7 //#include <cln/output.h>
8 //#include <cln/ffloat.h>
9 #include <cln/integer.h>
10 #include <cln/integer_io.h>
11 //#include <cln/modinteger.h>
12 //#include <cln/numtheory.h>
13 #include <cln/timing.h>
14 using namespace cln;
15 #include <iostream>
16 using namespace std;
17
18 #define DUMP(expr)  \
19         fprint(cout, #expr" = "); fprint(cout, expr); fprint(cout, "\n");
20
21 int main (int argc, char* argv[])
22 {
23         (void)argc; (void)argv;
24
25 #if 0
26         cl_F archimedes = pi((float_format_t)10000);
27         fprint(cout, archimedes);
28         fprint(cout, "\n");
29 #endif
30
31 #if 0
32         cl_FF a;
33         cl_FF x1 = "-0.2173f0";
34         cl_FF x2 = "5.5084f9";
35         cl_FF y = "-1.19698f9";
36         fprint(cout, "x1 = "); print_float_binary(cout,x1); fprint(cout, " = "); fprint(cout,x1); fprint(cout, "\n");
37         fprint(cout, "x2 = "); print_float_binary(cout,x2); fprint(cout, " = "); fprint(cout,x2); fprint(cout, "\n");
38         fprint(cout, "y = "); print_float_binary(cout,y); fprint(cout, " = "); fprint(cout,y); fprint(cout, "\n");
39         cl_FF x = x1*x2;
40         fprint(cout, "x1*x2 = "); print_float_binary(cout,x); fprint(cout, " = "); fprint(cout,x); fprint(cout, "\n");
41 #endif
42
43 #if 0
44         cl_I x = 10;
45         cl_I y = ++x;
46         x *= 2;
47         x++;
48         fprint(cout, "x = "); fprint(cout, x); fprint(cout, "\n");
49         fprint(cout, "y = "); fprint(cout, y); fprint(cout, "\n");
50 #endif
51
52 #if 0
53         cl_I a = "77371252437321868671713407";
54         cl_I w;
55         bool squarep = isqrt(a,&w);
56         DUMP(squarep);
57         DUMP(w);
58         DUMP(expt_pos(w,2) <= a);
59         DUMP(a < expt_pos(w+1,2));
60 #endif
61
62 #if 0
63         cl_I m = "79228162513111556826425457664";
64         cl_I a = "19787815858762768436681494528";
65         cl_modint_ring R = find_modint_ring(m);
66         cl_I b = R->retract(R->canonhom(a));
67         cl_I c = mod(a,abs(m));
68         DUMP(b);
69         DUMP(c);
70         DUMP(b==c);
71 #endif
72
73 #if 0
74         cl_N x = argv[1];
75         cl_N y = sinh(x);
76         { CL_TIMING; y = sinh(x); }
77         cout << y << endl;
78 #endif
79
80 #if 0
81         cl_I x = argv[1];
82         cout << x << " is " << (isprobprime(x) ? "" : "not ") << "prime" << endl;
83 #endif
84
85 #if 0
86         float_format_t f = float_format(atoi(argv[1]));
87         extern cl_LF zeta3 (uintC len);
88         uintC len = (uintC)f/intDsize+1;
89         { CL_TIMING; cout << zeta(2,f) << endl; }
90         { CL_TIMING; cout << expt(pi(f),2)/6 << endl; }
91         { CL_TIMING; cout << zeta(3,f) << endl; }
92         { CL_TIMING; cout << zeta3(len) << endl; }
93         { CL_TIMING; cout << zeta(4,f) << endl; }
94 #endif
95
96         cl_I a = cl_I(argv[1]);
97         cl_I b = cl_I(argv[2]);
98         cl_I u;
99         cl_I v;
100         cl_I g = xgcd(a,b,&u,&v);
101         cout << "a = " << a << endl;
102         cout << "b = " << b << endl;
103         cout << "gcd = " << gcd(a,b) << endl;
104         cout << "g = " << g << endl;
105         cout << "u = " << u << endl;
106         cout << "v = " << v << endl;
107
108 #if 0
109         cl_F x = argv[1];
110         cout << x << endl;
111 #endif
112
113 }