1 #ifndef OPENANN_UTIL_EIGEN_WRAPPER_H_
2 #define OPENANN_UTIL_EIGEN_WRAPPER_H_
9 template<
typename T,
int M,
int N>
10 bool equals(
const Eigen::Matrix<T, M, N>& a,
const Eigen::Matrix<T, M, N>& b,
T delta)
12 Eigen::Matrix<T, M, N> d = a - b;
13 for(
int i = 0; i < d.rows(); i++)
for(
int j = 0; j < d.cols(); j++)
15 if(std::fabs(d(i, j)) > delta)
21 #define OPENANN_CHECK_MATRIX_NAN(matrix) \
22 OPENANN_CHECK(!isMatrixNan(matrix));
24 template<
typename T,
int M,
int N>
27 for(
int i = 0; i < m.rows(); i++)
for(
int j = 0; j < m.cols(); j++)
29 if(std::isnan(m(i, j)))
35 #define OPENANN_CHECK_MATRIX_INF(matrix) \
36 OPENANN_CHECK(!isMatrixInf(matrix));
38 template<
typename T,
int M,
int N>
41 for(
int i = 0; i < m.rows(); i++)
for(
int j = 0; j < m.cols(); j++)
43 if(std::isinf(m(i, j)))
49 #define OPENANN_CHECK_MATRIX_BROKEN(matrix) \
50 OPENANN_CHECK(!isMatrixBroken(matrix));
52 template<
typename T,
int M,
int N>
58 void pack(Eigen::VectorXd& vec,
int components, ...);
60 void unpack(
const Eigen::VectorXd& vec,
int components, ...);
62 #endif // OPENANN_UTIL_EIGEN_WRAPPER_H_