This forum has been archived. All content is frozen. Please use KDE Discuss instead.

installation issue linked to Eigen

Tags: None
(comma "," separated)
kevinvervier
Registered Member
Posts
1
Karma
0

installation issue linked to Eigen

Tue Nov 03, 2015 10:32 pm
Hello everyone,

I am trying to install a tool called GCTA that requires Eigen (version 3.2.6), but got an error message when running the 'make' command.
Here is the log:

Code: Select all
g++ -w -O3 -m64 -static -fopenmp -I eigen-eigen-c58038c56923 -DEIGEN_NO_DEBUG -I /home/kvervier/intel/mkl/include -c est_hsq.cpp
In file included from eigen-eigen-c58038c56923/Eigen/Core:328:0,
                 from eigen-eigen-c58038c56923/Eigen/Dense:1,
                 from gcta.h:32,
                 from est_hsq.cpp:13:
eigen-eigen-c58038c56923/Eigen/src/Core/products/CoeffBasedProduct.h: In instantiation of ‘static void Eigen::internal::product_coeff_impl<0, -1, Lhs, Rhs, RetScalar>::run(Eigen::internal::product_coeff_impl<0, -1, Lhs, Rhs, RetScalar>::Index, Eigen::internal::product_coeff_impl<0, -1, Lhs, Rhs, RetScalar>::Index, const Lhs&, const Rhs&, RetScalar&) [with Lhs = Eigen::Matrix<double, -1, -1>; Rhs = Eigen::SparseMatrix<double>; RetScalar = double; Eigen::internal::product_coeff_impl<0, -1, Lhs, Rhs, RetScalar>::Index = long int]’:
eigen-eigen-c58038c56923/Eigen/src/Core/products/CoeffBasedProduct.h:167:55:   required from ‘const Scalar Eigen::CoeffBasedProduct<Lhs, Rhs, NestingFlags>::coeff(Eigen::CoeffBasedProduct<Lhs, Rhs, NestingFlags>::Index, Eigen::CoeffBasedProduct<Lhs, Rhs, NestingFlags>::Index) const [with LhsNested = const Eigen::Matrix<double, -1, -1>&; RhsNested = const Eigen::SparseMatrix<double>&; int NestingFlags = 0; Eigen::CoeffBasedProduct<Lhs, Rhs, NestingFlags>::Scalar = double; Eigen::CoeffBasedProduct<Lhs, Rhs, NestingFlags>::Index = long int]’
eigen-eigen-c58038c56923/Eigen/src/Core/Diagonal.h:114:61:   required from ‘Eigen::Diagonal<MatrixType, Index>::CoeffReturnType Eigen::Diagonal<MatrixType, Index>::coeff(Eigen::Diagonal<MatrixType, Index>::Index, Eigen::Diagonal<MatrixType, Index>::Index) const [with MatrixType = const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>; int _DiagIndex = 0; Eigen::Diagonal<MatrixType, Index>::CoeffReturnType = double; Eigen::Diagonal<MatrixType, Index>::Index = long int]’
eigen-eigen-c58038c56923/Eigen/src/Core/DenseCoeffsBase.h:98:38:   required from ‘Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::coeff(Eigen::DenseCoeffsBase<Derived, 0>::Index, Eigen::DenseCoeffsBase<Derived, 0>::Index) const [with Derived = Eigen::Diagonal<const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>, 0>; Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType = double; Eigen::DenseCoeffsBase<Derived, 0>::Index = long int]’
eigen-eigen-c58038c56923/Eigen/src/Core/DenseCoeffsBase.h:104:54:   required from ‘Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType Eigen::DenseCoeffsBase<Derived, 0>::coeffByOuterInner(Eigen::DenseCoeffsBase<Derived, 0>::Index, Eigen::DenseCoeffsBase<Derived, 0>::Index) const [with Derived = Eigen::Diagonal<const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>, 0>; Eigen::DenseCoeffsBase<Derived, 0>::CoeffReturnType = double; Eigen::DenseCoeffsBase<Derived, 0>::Index = long int]’
eigen-eigen-c58038c56923/Eigen/src/Core/Redux.h:177:9:   required from ‘static Eigen::internal::redux_impl<Func, Derived, 0, 0>::Scalar Eigen::internal::redux_impl<Func, Derived, 0, 0>::run(const Derived&, const Func&) [with Func = Eigen::internal::scalar_sum_op<double>; Derived = Eigen::Diagonal<const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>, 0>; Eigen::internal::redux_impl<Func, Derived, 0, 0>::Scalar = double]’
eigen-eigen-c58038c56923/Eigen/src/Core/Redux.h:330:34:   required from ‘typename Eigen::internal::result_of<BinaryOp(typename Eigen::internal::traits<T>::Scalar)>::type Eigen::DenseBase<Derived>::redux(const Func&) const [with BinaryOp = Eigen::internal::scalar_sum_op<double>; Derived = Eigen::Diagonal<const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>, 0>; typename Eigen::internal::result_of<BinaryOp(typename Eigen::internal::traits<T>::Scalar)>::type = double]’
eigen-eigen-c58038c56923/Eigen/src/Core/Redux.h:363:62:   required from ‘typename Eigen::internal::traits<T>::Scalar Eigen::DenseBase<Derived>::sum() const [with Derived = Eigen::Diagonal<const Eigen::CoeffBasedProduct<const Eigen::Matrix<double, -1, -1>&, const Eigen::SparseMatrix<double>&, 0>, 0>; typename Eigen::internal::traits<T>::Scalar = double]’
est_hsq.cpp:1260:73:   required from here
eigen-eigen-c58038c56923/Eigen/src/Core/products/CoeffBasedProduct.h:276:9: error: no matching function for call to ‘Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >::cwiseProduct(Eigen::SparseMatrixBase<Eigen::SparseMatrix<double> >::ConstColXpr) const’
     res = (lhs.row(row).transpose().cwiseProduct(rhs.col(col))).sum();
         ^
eigen-eigen-c58038c56923/Eigen/src/Core/products/CoeffBasedProduct.h:276:9: note: candidate is:
In file included from eigen-eigen-c58038c56923/Eigen/src/Core/MatrixBase.h:139:0,
                 from eigen-eigen-c58038c56923/Eigen/Core:279,
                 from eigen-eigen-c58038c56923/Eigen/Dense:1,
                 from gcta.h:32,
                 from est_hsq.cpp:13:
eigen-eigen-c58038c56923/Eigen/src/Core/../plugins/MatrixCwiseBinaryOps.h:22:1: note: template<class OtherDerived> const Eigen::CwiseBinaryOp<Eigen::internal::scalar_product_op<typename Eigen::internal::traits<T>::Scalar, typename Eigen::internal::traits<OtherDerived>::Scalar>, const Derived, const OtherDerived> Eigen::MatrixBase<Derived>::cwiseProduct(const Eigen::MatrixBase<OtherDerived>&) const [with OtherDerived = OtherDerived; Derived = Eigen::Transpose<const Eigen::Block<const Eigen::Matrix<double, -1, -1>, 1, -1, false> >]
 cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
 ^
eigen-eigen-c58038c56923/Eigen/src/Core/../plugins/MatrixCwiseBinaryOps.h:22:1: note:   template argument deduction/substitution failed:
In file included from eigen-eigen-c58038c56923/Eigen/Core:328:0,
                 from eigen-eigen-c58038c56923/Eigen/Dense:1,
                 from gcta.h:32,
                 from est_hsq.cpp:13:
eigen-eigen-c58038c56923/Eigen/src/Core/products/CoeffBasedProduct.h:276:9: note:   ‘Eigen::SparseMatrixBase<Eigen::SparseMatrix<double> >::ConstColXpr {aka const Eigen::Block<const Eigen::SparseMatrix<double>, -1, 1, true>}’ is not derived from ‘const Eigen::MatrixBase<Derived>’
     res = (lhs.row(row).transpose().cwiseProduct(rhs.col(col))).sum();
         ^
make: *** [est_hsq.o] Error 1


I also provide the content of 'gtca.h:32'
Code: Select all
#include <Eigen/Dense>
and 'est_hst.cpp:13'
Code: Select all
#include "gcta.h"
.

Thanks,

Kevin Vervier
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
This seems to be a regression within Eigen, should work with 3.2.2, and will be fixed for 3.2.7

update1: fixed in 3.2 branch, https://bitbucket.org/eigen/eigen/commits/0684e2ae9714/

update2: and devel branch, https://bitbucket.org/eigen/eigen/commits/c50d5aa9a8c5/


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot], q.ignora