28 #include "autodiff/forward/dual/dual.hpp"
29 #include "unsupported/Eigen/CXX11/Tensor"
35 bool checkIfEqual(
const double a,
const double b,
const double tol = 1e-15 );
37 bool checkIfEqual(
const autodiff::dual a,
const autodiff::dual b,
const double tol = 1e-15 );
39 bool checkIfEqual(
const std::complex< double > a,
const std::complex< double > b,
const double tol = 1e-15 );
44 template <
typename T >
46 const Eigen::Matrix< T, -1, -1 >& b,
47 const double tol = 1e-15 )
49 if ( a.rows() != b.rows() || a.cols() != b.cols() ) {
52 for (
int i = 0; i < a.rows(); i++ ) {
53 for (
int j = 0; j < a.cols(); j++ ) {
56 std::cout <<
" -> HINT: a(" << i <<
"," << j <<
") = " <<
getString( a( i, j ) ) <<
" != b(" << i <<
","
57 << j <<
") =" <<
getString( b( i, j ) ) << std::endl;
65 template <
typename T,
long int... Rest >
66 bool checkIfEqual(
const Eigen::TensorFixedSize< T, Eigen::Sizes< Rest... > >& a,
67 const Eigen::TensorFixedSize< T, Eigen::Sizes< Rest... > >& b,
68 const double tol = 1e-15 )
70 const T* a_data = a.data();
71 const T* b_data = b.data();
73 for (
int i = 0; i < a.size(); i++ ) {
76 std::cout <<
" -> HINT: a(" << i <<
") = " <<
getString( a_data[i] ) <<
" != b(" << i
77 <<
") =" <<
getString( b_data[i] ) << std::endl;