1 // clang++ gmp_test.cc -I../../ -I/opt/local/include/ -L /opt/local/lib -lgmpxx -lgmp
2
3
4 #include <gmpxx.h>
5 #include <iostream>
6 #include <cxxblas/cxxblas.cxx>
7
8 using namespace std;
9
10 typedef mpq_class T;
11
12 int
13 main()
14 {
15 const int n = 30;
16 T a[n], b[n], c;
17
18 for (int i=0; i<n; ++i) {
19 a[i] = T(n+i)/n;
20
21 b[i] = 1/T(n-i);
22 }
23
24 cxxblas::dot(n, a, 1, b, 1, c);
25
26 cout << "a*b = " << c << "\n";
27
28 cxxblas::axpy(n, c, b, 1, a, 1);
29 for (int i=0; i<n; ++i) {
30 cout << i << ") " << a[i] << endl;
31 }
32 }
2
3
4 #include <gmpxx.h>
5 #include <iostream>
6 #include <cxxblas/cxxblas.cxx>
7
8 using namespace std;
9
10 typedef mpq_class T;
11
12 int
13 main()
14 {
15 const int n = 30;
16 T a[n], b[n], c;
17
18 for (int i=0; i<n; ++i) {
19 a[i] = T(n+i)/n;
20
21 b[i] = 1/T(n-i);
22 }
23
24 cxxblas::dot(n, a, 1, b, 1, c);
25
26 cout << "a*b = " << c << "\n";
27
28 cxxblas::axpy(n, c, b, 1, a, 1);
29 for (int i=0; i<n; ++i) {
30 cout << i << ") " << a[i] << endl;
31 }
32 }