Skip to content

Instantly share code, notes, and snippets.

@OXPHOS
Created February 15, 2017 22:02
Show Gist options
  • Save OXPHOS/68f9d5eba66fed7ce61d024f4523bf80 to your computer and use it in GitHub Desktop.
Save OXPHOS/68f9d5eba66fed7ce61d024f4523bf80 to your computer and use it in GitHub Desktop.
Eigen Compatability Test
#!/bin/bash
# Test Cholesky decomposition with different Eigen versions
function fclean {
make clean
rm -rf ../third_party/Eigen3
rm -rf ../third_party/include/eigen
}
function frun {
fclean
addr=https://bitbucket.org/eigen/eigen/get/$1.tar.bz2
addr_md5=`curl ${addr} | md5`
cmake -DADDRESS:STRING=${addr} -DADDRESS_MD5=${addr_md5} -DENABLE_TESING=on -DENABLE_VIENNACL=off ..
make
./tests/unit/shogun-unit-test --gtest_filter=LinalgBackendEigen.SGMatrix_cholesky_solver > eigentests/$1
}
frun 3.2.10
frun 3.2.9
frun 3.2.8
frun 3.2.7
frun 3.2.6
frun 3.2.5
frun 3.2.4
frun 3.2.3
frun 3.2.2
frun 3.2.1
frun 3.2.0
frun 3.1.4
frun 3.1.3
frun 3.3.2
frun 3.3.1
frun 3.3.0
[ 1%] Building CXX object src/shogun/CMakeFiles/libshogun.dir/base/init.cpp.o
In file included from /Users/Zora/Github/shogun/src/shogun/base/init.cpp:17:
In file included from /Users/Zora/Github/shogun/src/shogun/mathematics/linalg/SGLinalg.h:39:
In file included from /Users/Zora/Github/shogun/src/shogun/mathematics/linalg/LinalgBackendEigen.h:34:
In file included from /Users/Zora/Github/shogun/src/shogun/mathematics/eigen3.h:16:
In file included from /usr/local/include/eigen3/Eigen/Eigen:1:
In file included from /usr/local/include/eigen3/Eigen/Dense:1:
In file included from /usr/local/include/eigen3/Eigen/Core:415:
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:817:3: error: static_assert failed
"YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY"
EIGEN_CHECK_BINARY_COMPATIBILIY(Func,typename ActualDstTypeCleaned::Scalar,typename Src::Scalar);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/eigen3/Eigen/src/Core/util/XprHelper.h:816:3: note: expanded from macro
'EIGEN_CHECK_BINARY_COMPATIBILIY'
EIGEN_STATIC_ASSERT((Eigen::internal::has_ReturnType<ScalarBinaryOpTraits<LHS, RHS,BINOP> >::value), \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/eigen3/Eigen/src/Core/util/StaticAssert.h:32:40: note: expanded from macro
'EIGEN_STATIC_ASSERT'
#define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
^ ~
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:787:3: note: in instantiation of function
template specialization
'Eigen::internal::call_assignment_no_alias<Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0,
Eigen::Stride<0, 0> >, Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const
Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
> >, Eigen::internal::assign_op<bool, int> >' requested here
call_assignment_no_alias(dst, src, func);
^
/usr/local/include/eigen3/Eigen/src/Core/AssignEvaluator.h:765:3: note: in instantiation of function
template specialization 'Eigen::internal::call_assignment<Eigen::Map<Eigen::Matrix<bool, -1, 1,
0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool,
bool>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
> >, Eigen::internal::assign_op<bool, int> >' requested here
call_assignment(dst, src, internal::assign_op<typename Dst::Scalar,typename Src::Scalar>());
^
/usr/local/include/eigen3/Eigen/src/Core/Assign.h:66:13: note: in instantiation of function template
specialization 'Eigen::internal::call_assignment<Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1,
1>, 0, Eigen::Stride<0, 0> >, Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>,
const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
> > >' requested here
internal::call_assignment(derived(), other.derived());
^
/usr/local/include/eigen3/Eigen/src/Core/Map.h:155:5: note: in instantiation of function template
specialization 'Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0,
Eigen::Stride<0, 0> > >::operator=<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool,
bool>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
> > >' requested here
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
^
/usr/local/include/eigen3/Eigen/src/Core/util/Macros.h:839:53: note: expanded from macro
'EIGEN_INHERIT_ASSIGNMENT_OPERATORS'
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
^
/usr/local/include/eigen3/Eigen/src/Core/util/Macros.h:823:108: note: expanded from macro
'EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR'
...EIGEN_STRONG_INLINE Derived& operator=(const DenseBase<OtherDerived>& other) { Base::operator...
^
/Users/Zora/Github/shogun/src/shogun/mathematics/linalg/LinalgBackendEigen.h:285:9: note: in
instantiation of function template specialization 'Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1,
1>, 0, Eigen::Stride<0, 0>
>::operator=<Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const
Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<bool, bool>, const
Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<bool>, const Eigen::Matrix<bool, -1,
1, 0, -1, 1> >, const Eigen::Map<Eigen::Matrix<bool, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >
> > >' requested here
c_eig = alpha * a_eig + beta * b_eig;
^
/Users/Zora/Github/shogun/src/shogun/mathematics/linalg/LinalgBackendEigen.h:91:23: note: in
instantiation of function template specialization 'shogun::LinalgBackendEigen::add_impl<bool>'
requested here
DEFINE_FOR_ALL_PTYPE(BACKEND_GENERIC_ADD, SGVector)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment