1 //#define WANT_OBFUSCATING_OPERATORS
2 #include <cln/number.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>
16 fprint(cout, #expr" = "); fprint(cout, expr); fprint(cout, "\n");
18 int main (int argc, char* argv[])
20 (void)argc; (void)argv;
23 cl_F archimedes = pi((float_format_t)10000);
24 fprint(cout, archimedes);
30 cl_FF x1 = "-0.2173f0";
31 cl_FF x2 = "5.5084f9";
32 cl_FF y = "-1.19698f9";
33 fprint(cout, "x1 = "); print_float_binary(cout,x1); fprint(cout, " = "); fprint(cout,x1); fprint(cout, "\n");
34 fprint(cout, "x2 = "); print_float_binary(cout,x2); fprint(cout, " = "); fprint(cout,x2); fprint(cout, "\n");
35 fprint(cout, "y = "); print_float_binary(cout,y); fprint(cout, " = "); fprint(cout,y); fprint(cout, "\n");
37 fprint(cout, "x1*x2 = "); print_float_binary(cout,x); fprint(cout, " = "); fprint(cout,x); fprint(cout, "\n");
45 fprint(cout, "x = "); fprint(cout, x); fprint(cout, "\n");
46 fprint(cout, "y = "); fprint(cout, y); fprint(cout, "\n");
50 cl_I a = "77371252437321868671713407";
52 cl_boolean squarep = isqrt(a,&w);
55 DUMP(expt_pos(w,2) <= a);
56 DUMP(a < expt_pos(w+1,2));
60 cl_I m = "79228162513111556826425457664";
61 cl_I a = "19787815858762768436681494528";
62 cl_modint_ring R = find_modint_ring(m);
63 cl_I b = R->retract(R->canonhom(a));
64 cl_I c = mod(a,abs(m));
73 { CL_TIMING; y = sinh(x); }
79 cout << x << " is " << (isprobprime(x) ? "" : "not ") << "prime" << endl;
83 float_format_t f = float_format(atoi(argv[1]));
84 extern cl_LF zeta3 (uintC len);
85 uintC len = (uintL)f/intDsize+1;
86 { CL_TIMING; cout << zeta(2,f) << endl; }
87 { CL_TIMING; cout << expt(pi(f),2)/6 << endl; }
88 { CL_TIMING; cout << zeta(3,f) << endl; }
89 { CL_TIMING; cout << zeta3(len) << endl; }
90 { CL_TIMING; cout << zeta(4,f) << endl; }
93 cl_I a = cl_I(argv[1]);
94 cl_I b = cl_I(argv[2]);
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;