Dear Author,
Hi, I tried to install HmmUFOtu, but encountered error during installation. I think eigen occurred the problem.
I installed eigen 3.4.0 using the code below
wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2
tar xvf eigen-3.4.0.tar.bz2
cd eigen-3.4.0
mkdir build
cd build
cmake ./../
pkg-config --modversion eigen3
cd /usr/include
sudo ln -sf eigen3/Eigen Eigen
sudo ln -sf eigen3/unsupported unsupported
Installation of HmmUFOtu-1.5.1 occurred the error below.
~/HmmUFOtu-1.5.1$ make
Making all in data
make[1]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/data'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/data'
Making all in src
make[1]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src'
Making all in libdivsufsort
make[2]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
make all-recursive
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
Making all in lib
make[4]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort/lib'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort/lib'
Making all in examples
make[4]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort/examples'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort/examples'
make[4]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
make[4]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
make[2]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libdivsufsort'
Making all in libcds
make[2]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds'
Making all in src
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/src'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/src'
Making all in tests
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tests'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tests'
Making all in tutorial/src
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tutorial/src'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tutorial/src'
Making all in tutorial/ssa
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tutorial/ssa'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds/tutorial/ssa'
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds'
make[2]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/libcds'
Making all in util
make[2]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/util'
make all-am
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/util'
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/util'
make[2]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/util'
Making all in math
make[2]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/math'
make all-am
make[3]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src/math'
make[3]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/math'
make[2]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src/math'
make[2]: Entering directory '/home/snyoo/HmmUFOtu-1.5.1/src'
g++ -DPACKAGE_NAME="HmmUFOtu" -DPACKAGE_TARNAME="hmmufotu" -DPACKAGE_VERSION="1.5.1" -DPACKAGE_STRING="HmmUFOtu\ 1.5.1" -DPACKAGE_BUGREPORT="" -DPACKAGE_URL="" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=".libs/" -DHAVE_STDINT_H=1 -DHAVE__BOOL=1 -DPACKAGE="hmmufotu" -DVERSION="1.5.1" -DHAVE_ISNAN=1 -DHAVE_STRERROR=1 -DHAVE_LIBZ=1 -DHAVE_BOOST=/**/ -DHAVE_BOOST_IOSTREAMS=/**/ -I. -I/usr/include -fopenmp -I/usr/include -I/usr/include -I../src -I../src/util -I../src/math -I../src/libdivsufsort/include -I../src/libcds/include -I/usr/include -fopenmp -g -O2 -MT hmmufotu.o -MD -MP -MF .deps/hmmufotu.Tpo -c -o hmmufotu.o hmmufotu.cpp
In file included from HmmUFOtu_phylo.h:33,
from HmmUFOtu.h:31,
from hmmufotu.cpp:28:
HKY85.h: In member function ‘virtual double EGriceLab::HmmUFOtu::HKY85::subDist(const Matrix4d&, double) const’:
HKY85.h:165:56: error: cannot convert ‘const Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op, const Eigen::Matrix<double, -1, -1> > >’ to ‘double’ in initialization
165 | double p = (D(A,G) + D(G,A) + D(C,T) + D(T,C)) / N; /* observed Ti diff /
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
| |
| const Eigen::CwiseBinaryOp<Eigen::internal::scalar_quotient_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >, const Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op, const Eigen::Matrix<double, -1, -1> > >
HKY85.h:166:64: error: no match for ‘operator+’ (operand types are ‘const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >’ and ‘const double’)
166 | double q = (D(A,C) + D(A,T) + D(C,A) + D(C,G) + D(G,C) + D(G,T) + D(T,A) + D(T,G)) / N; / observed Tv diff /
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~
| | |
| | const double
| const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >
In file included from /usr/include/Eigen/Core:19,
from /usr/include/Eigen/Dense:1,
from MSA.h:33,
from HmmUFOtu_common.h:43,
from HmmUFOtu.h:29,
from hmmufotu.cpp:28:
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:27:1: note: candidate: ‘template const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<typename Eigen::internal::traits::Scalar, typename Eigen::internal::traits::Scalar>, const Derived, const OtherDerived> Eigen::MatrixBase::operator+(const Eigen::MatrixBase&) const [with OtherDerived = OtherDerived; Derived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >]’
27 | EIGEN_MAKE_CWISE_BINARY_OP(operator+,sum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:27:1: note: template argument deduction/substitution failed:
In file included from HmmUFOtu_phylo.h:33,
from HmmUFOtu.h:31,
from hmmufotu.cpp:28:
HKY85.h:166:71: note: mismatched types ‘const Eigen::MatrixBase’ and ‘const double’
166 | double q = (D(A,C) + D(A,T) + D(C,A) + D(C,G) + D(G,C) + D(G,T) + D(T,A) + D(T,G)) / N; / observed Tv diff */
| ^
In file included from HmmUFOtu_common.h:39,
from HmmUFOtu.h:29,
from hmmufotu.cpp:28:
DigitalSeq.h:206:19: note: candidate: ‘EGriceLab::HmmUFOtu::DigitalSeq EGriceLab::HmmUFOtu::operator+(const EGriceLab::HmmUFOtu::DigitalSeq&, const EGriceLab::HmmUFOtu::DigitalSeq&)’
206 | inline DigitalSeq operator+(const DigitalSeq& lhs, const DigitalSeq& rhs) {
| ^~~~~~~~
DigitalSeq.h:206:47: note: no known conversion for argument 1 from ‘const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double>, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, double> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base> >, const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double> >’ to ‘const EGriceLab::HmmUFOtu::DigitalSeq&’
206 | inline DigitalSeq operator+(const DigitalSeq& lhs, const DigitalSeq& rhs) {
| ~~~~~~~~~~~~~~~~~~^~~
In file included from /usr/include/Eigen/Core:162,
from /usr/include/Eigen/Dense:1,
from MSA.h:33,
from HmmUFOtu_common.h:43,
from HmmUFOtu.h:29,
from hmmufotu.cpp:28:
/usr/include/Eigen/src/Core/util/Meta.h: In instantiation of ‘constexpr Eigen::Index Eigen::internal::size(const T&) [with T = double; Eigen::Index = long int]’:
/usr/include/Eigen/src/Core/IndexedView.h:125:45: required from ‘Eigen::Index Eigen::IndexedView<XprType, RowIndices, ColIndices>::rows() const [with XprType = const Eigen::Matrix<double, 4, 4>; RowIndices = double; ColIndices = EGriceLab::HmmUFOtu::DNASubModel::Base; Eigen::Index = long int]’
/usr/include/Eigen/src/Core/CwiseBinaryOp.h:116:7: required from ‘Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; RhsType = const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Lhs = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Rhs = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>]’
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:27:1: required from ‘const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<typename Eigen::internal::traits::Scalar, typename Eigen::internal::traits::Scalar>, const Derived, const OtherDerived> Eigen::MatrixBase::operator+(const Eigen::MatrixBase&) const [with OtherDerived = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>; Derived = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; typename Eigen::internal::traits::Scalar = double; typename Eigen::internal::traits::Scalar = double]’
HKY85.h:165:28: required from here
/usr/include/Eigen/src/Core/util/Meta.h:479:51: error: request for member ‘size’ in ‘x’, which is of non-class type ‘const double’
479 | EIGEN_CONSTEXPR Index size(const T& x) { return x.size(); }
| ~~^~~~
/usr/include/Eigen/src/Core/util/Meta.h: In instantiation of ‘constexpr Eigen::Index Eigen::internal::size(const T&) [with T = EGriceLab::HmmUFOtu::DNASubModel::Base; Eigen::Index = long int]’:
/usr/include/Eigen/src/Core/IndexedView.h:125:45: required from ‘Eigen::Index Eigen::IndexedView<XprType, RowIndices, ColIndices>::rows() const [with XprType = const Eigen::Matrix<double, 4, 4>; RowIndices = EGriceLab::HmmUFOtu::DNASubModel::Base; ColIndices = double; Eigen::Index = long int]’
/usr/include/Eigen/src/Core/CwiseBinaryOp.h:116:7: required from ‘Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::CwiseBinaryOp(const Lhs&, const Rhs&, const BinaryOp&) [with BinaryOp = Eigen::internal::scalar_sum_op<double, double>; LhsType = const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; RhsType = const Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Lhs = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; Eigen::CwiseBinaryOp<BinaryOp, Lhs, Rhs>::Rhs = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>]’
/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h:27:1: required from ‘const Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<typename Eigen::internal::traits::Scalar, typename Eigen::internal::traits::Scalar>, const Derived, const OtherDerived> Eigen::MatrixBase::operator+(const Eigen::MatrixBase&) const [with OtherDerived = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, EGriceLab::HmmUFOtu::DNASubModel::Base, double>; Derived = Eigen::IndexedView<const Eigen::Matrix<double, 4, 4>, double, EGriceLab::HmmUFOtu::DNASubModel::Base>; typename Eigen::internal::traits::Scalar = double; typename Eigen::internal::traits::Scalar = double]’
HKY85.h:165:28: required from here
/usr/include/Eigen/src/Core/util/Meta.h:479:51: error: request for member ‘size’ in ‘x’, which is of non-class type ‘const EGriceLab::HmmUFOtu::DNASubModel::Base’
make[2]: *** [Makefile:853: hmmufotu.o] Error 1
make[2]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src'
make[1]: *** [Makefile:984: all-recursive] Error 1
make[1]: Leaving directory '/home/snyoo/HmmUFOtu-1.5.1/src'
make: *** [Makefile:394: all-recursive] Error 1
Thank you in advance for your assistance.
Best regards,
Shinnam Yoo