1 //////////////////////////////////////////////////////////////////////////////
4 // ADLib, Prop and their related set of tools and documentation are in the
5 // public domain. The author(s) of this software reserve no copyrights on
6 // the source code and any code generated using the tools. You are encouraged
7 // to use ADLib and Prop to develop software, in both academic and commercial
8 // settings, and are free to incorporate any part of ADLib and Prop into
11 // Although you are under no obligation to do so, we strongly recommend that
12 // you give away all software developed using our tools.
14 // We also ask that credit be given to us when ADLib and/or Prop are used in
15 // your programs, and that this notice be preserved intact in all the source
18 // This software is still under development and we welcome any suggestions
19 // and help from the users.
23 //////////////////////////////////////////////////////////////////////////////
28 #include <AD/numeric/bigint.h>
29 #include <AD/numeric/complex.h>
30 #include <AD/numeric/matrix.h>
31 #include <AD/numeric/ratio.h>
32 #include <AD/numeric/z.h>
34 int main(int argc
, char * argv
[])
35 { Z
<9> a
= 0, b
= 1, c
= 0;
37 assert(sizeof(a
) == 4);
38 assert(a
!= b
&& a
== c
);
45 BigInt x = 123456, y = 8765;
46 cout << x << " % " << y << " = " << (x%y) << '\n';
47 cout << x << " / " << y << " = " << (x/y) << '\n';
48 cout << x << " * " << y << " = " << (x*y) << '\n';
49 cout << x << " + " << y << " = " << (x+y) << '\n';
50 cout << x << " - " << y << " = " << (x-y) << '\n';
52 cout << x << " % " << y << " = " << (123456%8765) << '\n';
53 cout << x << " / " << y << " = " << (123456/8765) << '\n';
54 cout << x << " * " << y << " = " << (123456*8765) << '\n';
55 cout << x << " + " << y << " = " << (123456+8765) << '\n';
56 cout << x << " - " << y << " = " << (123456-8765) << '\n';
61 if (argc
== 2) sscanf(argv
[1],"%d",&limit
);
62 for (int n
= 1; n
<= limit
; n
++) {
65 cout
<< "Done\n"; cout
.flush();
66 cout
<< "fact(" << limit
<< ") = " << fact
<< '\n';
68 //for (n = 1; n <= 10000; n++) fact /= n;
69 //cout << "one = " << fact << '\n';