Algorith sandbox
helper_macro.hpp
1 #pragma once
2 
3 #define DISPLAY_DUAL(x) \
4  std::cout << #x << std::endl; \
5  std::cout << " " << x.getValue() << std::endl; \
6  std::cout << " "; \
7  for (auto iter = std::begin(x.getDerivative()); iter != std::end(x.getDerivative()); ++iter) { \
8  std::cout << *iter << " "; \
9  } \
10  std::cout << std::endl;
11 
12 #define DISPLAY_VECTOR_DUAL(vector) \
13  std::cout << #vector << std::endl; \
14  for (std::size_t i = 0; i < vector.size(); ++i) { \
15  std::cout << " " << #vector << "(" << i << ")" << std::endl; \
16  std::cout << " " << vector(i).getValue() << std::endl; \
17  std::cout << " "; \
18  for (auto& derivative : vector(i).getDerivative()) { \
19  std::cout << derivative << " "; \
20  } \
21  std::cout << std::endl; \
22  } \
23  std::cout << std::endl;
24 
25 #define DISPLAY_JACOBIAN_DUAL(jac) \
26  std::cout << #jac << std::endl; \
27  for (std::size_t ri = 0; ri < jac.size1(); ++ri) { \
28  for (std::size_t ci = 0; ci < jac.size2(); ++ci) { \
29  std::cout << jac(ri, ci) << " "; \
30  } \
31  std::cout << std::endl; \
32  } \
33  std::cout << std::endl;
34 
35 #define DISPLAY_INTEGRAL(x) \
36  std::cout << #x << std::endl; \
37  std::cout << " " << x << std::endl;
38 
39 #define DISPLAY_VECTOR(vector) \
40  std::cout << #vector << std::endl; \
41  std::cout << " "; \
42  for (std::size_t i = 0; i < vector.size(); ++i) { \
43  std::cout << vector(i) << " "; \
44  } \
45  std::cout << std::endl;