]> www.ginac.de Git - cln.git/blob - benchmarks/timebench2ap.cc
* cln.pc.in: Fix typo.
[cln.git] / benchmarks / timebench2ap.cc
1 #include <cln/number.h>
2 #include <cln/io.h>
3 #include <cln/integer.h>
4 #include <cstdlib>
5 #include <cstring>
6 #include <cln/timing.h>
7
8 using namespace std;
9 using namespace cln;
10
11 int main (int argc, char * argv[])
12 {
13         int limit = 1000;
14         int repetitions = 1;
15         while (argc >= 3) {
16                 if (!strcmp(argv[1],"-r")) {
17                         repetitions = atoi(argv[2]);
18                         argc -= 2; argv += 2;
19                         continue;
20                 }
21                 if (!strcmp(argv[1],"-l")) {
22                         limit = atoi(argv[2]);
23                         argc -= 2; argv += 2;
24                         continue;
25                 }
26                 break;
27         }
28         if (argc < 1)
29                 exit(1);
30
31         cerr << "Limit: " << limit << endl;
32         cerr << "Number of repetitions: " << repetitions << endl;
33
34         { CL_TIMING;
35           for (int rep = repetitions; rep > 0; rep--)
36             { cl_I u = 1, v = 1, p = 1, q = 1;
37               for (int k = 1; k <= limit; k++)
38                 { cl_I w = u+v;
39                   u = v; v = w;
40                   p = p*w; q = lcm(q,w);
41                 }
42             }
43         }
44
45 }