/[cln]/tests/timeLFRAmul.cc
ViewVC logotype

Contents of /tests/timeLFRAmul.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Fri Jan 28 11:37:44 2000 UTC (13 years, 3 months ago) by kreckel
Branch: MAIN
Branch point for: cln
Initial revision

1 kreckel 1.1 #include <cl_number.h>
2     #include <cl_io.h>
3     #include <cl_integer.h>
4     #include <cl_lfloat.h>
5     #include "cl_LF.h"
6     #include <cl_rational.h>
7     #include <cl_float_io.h>
8     #include <cl_random.h>
9     #include <stdlib.h>
10     #include <string.h>
11     #include <cl_timing.h>
12    
13     int main (int argc, char * argv[])
14     {
15     int repetitions = 1;
16     if ((argc >= 3) && !strcmp(argv[1],"-r")) {
17     repetitions = atoi(argv[2]);
18     argc -= 2; argv += 2;
19     }
20     if (argc < 4)
21     exit(1);
22     uintL m1 = atoi(argv[1]);
23     cl_I m2 = cl_I(argv[2]);
24     cl_I M2 = (cl_I)1 << (intDsize*m2);
25     cl_I m3 = cl_I(argv[3]);
26     cl_I M3 = (cl_I)1 << (intDsize*m3);
27     cl_LF x = The(cl_LF)(random_F(cl_I_to_LF(1,m1)));
28     cl_I u;
29     cl_I v;
30     do { u = random_I(M2); } while (zerop(u));
31     do { v = random_I(M3); } while (zerop(v) || gcd(u,v) > 1);
32     cl_RA y = u / v;
33     cl_F p;
34     { CL_TIMING;
35     for (int rep = repetitions; rep > 0; rep--)
36     { p = cl_LF_I_div(The(cl_LF)(cl_LF_I_mul(x,u)),v); }
37     }
38     cout << p << endl;
39     { CL_TIMING;
40     for (int rep = repetitions; rep > 0; rep--)
41     { p = x * cl_RA_to_LF(y,TheLfloat(x)->len); }
42     }
43     cout << p << endl;
44     }

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.15