yixuan / ADMM

Solving Statistical Optimization Problems Using the ADMM Algorithm
75 stars 26 forks source link

Fail to install on Centos #2

Closed harryprince closed 8 years ago

harryprince commented 8 years ago

I am trying to install ADMM on my centos server, it fails too.

Here is the bug.

* installing *source* package ?.DMM?....
** libs
g++ -I/usr/local/R/lib64/R/include -DNDEBUG  -I/usr/local/include -I"/usr/local/R/lib64/R/library/Rcpp/include" -I"/usr/local/R/lib64/R/library/RcppEigen/include"  -fopenmp -fpic  -g -O2  -c BP.cpp -o BP.o
g++ -I/usr/local/R/lib64/R/include -DNDEBUG  -I/usr/local/include -I"/usr/local/R/lib64/R/library/Rcpp/include" -I"/usr/local/R/lib64/R/library/RcppEigen/include"  -fopenmp -fpic  -g -O2  -c Enet.cpp -o Enet.o
In file included from Spectra/SymEigsSolver.h:20:0,
                 from ADMMLassoTall.h:6,
                 from ADMMEnet.h:4,
                 from Enet.cpp:3:
Spectra/LinAlg/TridiagEigen.h: In instantiation of ?.oid Spectra::TridiagEigen<Scalar>::compute(Spectra::TridiagEigen<Scalar>::ConstGenericMatrix&) [with Scalar = float; Spectra::TridiagEigen<Scalar>::ConstGenericMatrix = const Eigen::Ref<const Eigen::Matrix<float, -1, -1> >; typename Eigen::internal::conditional<const Eigen::Matrix<LhsScalar, -1, -1, 0>::IsVectorAtCompileTime, Eigen::InnerStride<1>, Eigen::OuterStride<> >::type = Eigen::OuterStride<>]?.
Spectra/LinAlg/TridiagEigen.h:46:20:   required from ?.pectra::TridiagEigen<Scalar>::TridiagEigen(Spectra::TridiagEigen<Scalar>::ConstGenericMatrix&) [with Scalar = float; Spectra::TridiagEigen<Scalar>::ConstGenericMatrix = const Eigen::Ref<const Eigen::Matrix<float, -1, -1> >; typename Eigen::internal::conditional<const Eigen::Matrix<LhsScalar, -1, -1, 0>::IsVectorAtCompileTime, Eigen::InnerStride<1>, Eigen::OuterStride<> >::type = Eigen::OuterStride<>]?
Spectra/SymEigsSolver.h:308:42:   required from ?.oid Spectra::SymEigsSolver<Scalar, SelectionRule, OpType>::retrieve_ritzpair() [with Scalar = float; int SelectionRule = 3; OpType = MatOpSymLower<float>]?
Spectra/SymEigsSolver.h:514:27:   required from ?.nt Spectra::SymEigsSolver<Scalar, SelectionRule, OpType>::compute(int, Scalar, int) [with Scalar = float; int SelectionRule = 3; OpType = MatOpSymLower<float>]?
ADMMLassoTall.h:199:33:   required from here
Spectra/LinAlg/TridiagEigen.h:93:107: error: no matching function for call to ?.ridiagonal_qr_step(float*&, float*&, int&, int&, Eigen::PlainObjectBase<Eigen::Matrix<float, -1, -1> >::Scalar*, int&)?
             Eigen::internal::tridiagonal_qr_step<Eigen::ColMajor>(maind, subd, start, end, evecs.data(), n);
                                                                                                           ^
Spectra/LinAlg/TridiagEigen.h:93:107: note: candidate is:
In file included from /usr/local/R/lib64/R/library/RcppEigen/include/Eigen/Eigenvalues:31:0,
                 from /usr/local/R/lib64/R/library/RcppEigen/include/Eigen/Dense:7,
                 from /usr/local/R/lib64/R/library/RcppEigen/include/RcppEigenForward.h:30,
                 from /usr/local/R/lib64/R/library/RcppEigen/include/RcppEigen.h:25,
                 from FADMMBase.h:4,
                 from ADMMLassoTall.h:4,
                 from ADMMEnet.h:4,
                 from Enet.cpp:3:
/usr/local/R/lib64/R/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:740:13: note: template<class RealScalar, class Scalar, class Index> void Eigen::internal::tridiagonal_qr_step(RealScalar*, RealScalar*, Index, Index, Scalar*, Index)
 static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
             ^
/usr/local/R/lib64/R/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h:740:13: note:   template argument deduction/substitution failed:
make: *** [Enet.o] Error 1
ERROR: compilation failed for package ?.DMM?
* removing ?.usr/local/R/lib64/R/library/ADMM?
Error: Command failed (1)
yixuan commented 8 years ago

Thanks for the report. I believe it's because ADMM contains an old version of the Spectra library, which is not compatible with the current version of Eigen. I'll fix it shortly.

yixuan commented 8 years ago

This has been fixed.