tmain.cpp - numeric - C++ library with numerical algorithms
(HTM) git clone git://src.adamsgaard.dk/numeric
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tmain.cpp (1280B)
---
1 #include <iostream>
2 #include "header.h"
3 #include "functions.h"
4 #include "integrator.h"
5
6 int main(int argc, char* argv[])
7 {
8 // Namespace declarations
9 using std::cout;
10
11 // Calculate machine precision
12 Floattype eps_machine = 1.0f;
13 while (1.0f + eps_machine != 1.0f)
14 eps_machine /= 2.0f;
15
16 Floattype a, b, acc, eps;
17
18 // Find the integral of function 1
19 a = 0.0f, b = 1.0f;
20 acc = 0.001f; eps = acc;
21 ncalls = 0;
22 Integral F1(func1, a, b, acc, eps);
23 F1.show("f(x) = x*x");
24 cout << '\n';
25
26 // Find the integral of function 2
27 a = 1e-8f, b = 1.0f;
28 acc = 0.001f; eps = acc;
29 ncalls = 0;
30 Integral F2(func2, a, b, acc, eps);
31 F2.show("f(x) = log(x)/sqrt(x)");
32 cout << "Check: Integral equal to -4:\t";
33 check(fabs(F2.result() + 4.0f) < 0.1f);
34 cout << '\n';
35
36 // Find the integral of function 3
37 a = 0.0f, b = 1.0f;
38 acc = 1e-8f; eps = acc;
39 ncalls = 0;
40 Integral F3(func3, a, b, acc, eps);
41 F3.show("f(x) = 4*sqrt(1-(1-x)^2)");
42 cout << "Check: Integral equal to pi:\t";
43 check(fabs(F3.result() - M_PI) < 0.01f);
44 cout << '\n';
45
46 // Return successfully
47 return 0;
48 }
49
50 void check(const bool statement)
51 {
52 using std::cout;
53 if (statement == true)
54 cout << "\t\033[0;32mPassed\033[0m\n";
55 else
56 cout << "\t\033[1;31mFail!!\033[0m\n";
57 }