astro-informatics / purify

Next-generation radio interferometric imaging.
https://astro-informatics.github.io/purify
GNU General Public License v2.0
17 stars 13 forks source link

Eigen3 assertion #278

Closed olebole closed 4 years ago

olebole commented 5 years ago

I am now trying to build 3.0.1 on Debian (after cubature got accepted from our ftp-masters). When compiling, I get the following error:

[  4%] Building CXX object cpp/purify/CMakeFiles/libpurify.dir/kernels.cc.o
cd /build/purify-3.0.1/obj-x86_64-linux-gnu/cpp/purify && /usr/bin/c++  -Dlibpurify_EXPORTS -I/build/purify-3.0.1/obj-x86_64-linux-gnu/include -I/build/purify-3.0.1/cpp -isystem /usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -isystem /usr/lib/x86_64-linux-gnu/openmpi/include -isystem /usr/include/eigen3 -isystem /usr/include/yaml-cpp -isystem /usr/include/x86_64-linux-gnu  -g -O2 -fdebug-prefix-map=/build/purify-3.0.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2  -std=gnu++11 -fPIC   -pthread -fopenmp -o CMakeFiles/libpurify.dir/kernels.cc.o -c /build/purify-3.0.1/cpp/purify/kernels.cc
In file included from /usr/include/eigen3/Eigen/Core:366,
                 from /build/purify-3.0.1/cpp/purify/types.h:6,
                 from /build/purify-3.0.1/cpp/purify/kernels.h:5,
                 from /build/purify-3.0.1/cpp/purify/kernels.cc:1:
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h: In instantiation of 'void Eigen::PlainObjectBase<Derived>::_init1(Eigen::Index, typename Eigen::internal::enable_if<(((typename Eigen::internal::dense_xpr_base<Derived>::type::SizeAtCompileTime != 1) || (! Eigen::internal::is_convertible<T, typename Eigen::internal::traits<T>::Scalar>::value)) && ((! Eigen::internal::is_same<typename Eigen::internal::traits<T>::XprKind, Eigen::ArrayXpr>::value) || (typename Eigen::internal::dense_xpr_base<Derived>::type::SizeAtCompileTime == Eigen::Dynamic))), T>::type*) [with T = double; Derived = Eigen::Matrix<double, -1, 1>; Eigen::Index = long int; typename Eigen::internal::enable_if<(((typename Eigen::internal::dense_xpr_base<Derived>::type::SizeAtCompileTime != 1) || (! Eigen::internal::is_convertible<T, typename Eigen::internal::traits<T>::Scalar>::value)) && ((! Eigen::internal::is_same<typename Eigen::internal::traits<T>::XprKind, Eigen::ArrayXpr>::value) || (typename Eigen::internal::dense_xpr_base<Derived>::type::SizeAtCompileTime == Eigen::Dynamic))), T>::type = double]':
/usr/include/eigen3/Eigen/src/Core/Matrix.h:294:31:   required from 'Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const T&) [with T = double; _Scalar = double; int _Rows = -1; int _Cols = 1; int _Options = 0; int _MaxRows = -1; int _MaxCols = 1]'
/build/purify-3.0.1/cpp/purify/kernels.cc:151:39:   required from here
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h:778:7: error: static assertion failed: FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED
  778 |       EIGEN_STATIC_ASSERT(is_integer,
      |       ^~~~~~~~~~~~~~~~~~~
make[3]: *** [cpp/purify/CMakeFiles/libpurify.dir/build.make:92: cpp/purify/CMakeFiles/libpurify.dir/kernels.cc.o] Error 1

Versions:

from Debian testing/unstable.

olebole commented 4 years ago

This is already fixed by 92d5279b7ea820ab250155139478dd49fc27769b (which is not in the release).