You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I downloaded flashpca2 using git clone as mentioned in README.md , and installed Eigen 3.3.9 and Spectra as instructed without problem. Then I entered flashpca/ folder, changed the including folders of eigen, boost and spectra in Makefile and then 'make', then I got these error informations (too long, I just copy the first and last few lines):
~/Downloads/flashpca$ make
g++ -I/usr/local/include/Spectra -I/usr/local/include/boost -I/usr/local/include/eigen3 -march=native -std=c++0x -O3 -DNDEBUG -DVERSION=\"2.1\" -funroll-loops -ftree-vectorize -ffast-math -c randompca.cpp -o randompca.o
randompca.cpp: In member function ‘void RandomPCA::pca_fast(Eigen::MatrixXd&, unsigned int, unsigned int, unsigned int, double, long int, bool)’:
randompca.cpp:133:16: error: ‘LARGEST_ALGE’ is not a member of ‘Spectra’
133 | Spectra::LARGEST_ALGE, SVDWide> eigs(&op, ndim, ndim * 2 + 1);
| ^~~~~~~~~~~~
randompca.cpp:133:16: error: ‘LARGEST_ALGE’ is not a member of ‘Spectra’
randompca.cpp:133:37: error: wrong number of template arguments (3, should be at least 0)
133 | Spectra::LARGEST_ALGE, SVDWide> eigs(&op, ndim, ndim * 2 + 1);
| ^
In file included from randompca.h:23,
from randompca.cpp:11:
/usr/local/include/Spectra/SymEigsSolver.h:134:7: note: provided for ‘template<class OpType> class Spectra::SymEigsSolver’
134 | class SymEigsSolver : public SymEigsBase<OpType, IdentityBOp>
| ^~~~~~~~~~~~~
randompca.cpp:133:67: error: expression list treated as compound expression in initializer [-fpermissive]
133 | Spectra::LARGEST_ALGE, SVDWide> eigs(&op, ndim, ndim * 2 + 1);
| ^
randompca.cpp:135:9: error: request for member ‘init’ in ‘eigs’, which is of non-class type ‘int’
135 | eigs.init();
| ^~~~
randompca.cpp:136:9: error: request for member ‘compute’ in ‘eigs’, which is of non-class type ‘int’
136 | eigs.compute(maxiter, tol);
| ^~~~~~~
randompca.cpp:144:12: error: request for member ‘info’ in ‘eigs’, which is of non-class type ‘int’
144 | if(eigs.info() == Spectra::SUCCESSFUL)
| ^~~~
randompca.cpp:144:31: error: ‘SUCCESSFUL’ is not a member of ‘Spectra’
144 | if(eigs.info() == Spectra::SUCCESSFUL)
| ^~~~~~~~~~
randompca.cpp:146:16: error: request for member ‘eigenvectors’ in ‘eigs’, which is of non-class type ‘int’
146 | U = eigs.eigenvectors();
| ^~~~~~~~~~~~
randompca.cpp:148:16: error: request for member ‘eigenvalues’ in ‘eigs’, which is of non-class type ‘int’
148 | d = eigs.eigenvalues().array() / div;
| ^~~~~~~~~~~
randompca.cpp:164:43: error: request for member ‘info’ in ‘eigs’, which is of non-class type ‘int’
164 | + ", status: " + std::to_string(eigs.info()));
| ^~~~
randompca.cpp: In member function ‘void RandomPCA::pca_fast(Data&, unsigned int, unsigned int, unsigned int, double, long int, bool)’:
randompca.cpp:174:44: error: ‘LARGEST_ALGE’ is not a member of ‘Spectra’
174 | Spectra::SymEigsSolver<double, Spectra::LARGEST_ALGE,
| ^~~~~~~~~~~~
...
...
...
randompca.cpp:186:31: error: ‘SUCCESSFUL’ is not a member of ‘Spectra’
186 | if(eigs.info() == Spectra::SUCCESSFUL)
| ^~~~~~~~~~
randompca.cpp:188:16: error: request for member ‘eigenvectors’ in ‘eigs’, which is of non-class type ‘int’
188 | U = eigs.eigenvectors();
| ^~~~~~~~~~~~
randompca.cpp:190:16: error: request for member ‘eigenvalues’ in ‘eigs’, which is of non-class type ‘int’
190 | d = eigs.eigenvalues().array() / div;
| ^~~~~~~~~~~
randompca.cpp:216:43: error: request for member ‘info’ in ‘eigs’, which is of non-class type ‘int’
216 | + ", status: " + std::to_string(eigs.info()));
| ^~~~
make: *** [Makefile:54: randompca.o] Error 1
What could I do for fixing it? Thank you!
polyhedron
The text was updated successfully, but these errors were encountered:
There is a major update to Spectra recently, and the code in the master branch is not compatible with older versions. You can download the v0.9.0 version instead.
There is a major update to Spectra recently, and the code in the master branch is not compatible with older versions. You can download the v0.9.0 version instead.
Thank you, the installation works now with Spectra v0.9.0.
Dear gabraham,
I downloaded flashpca2 using git clone as mentioned in README.md , and installed Eigen 3.3.9 and Spectra as instructed without problem. Then I entered flashpca/ folder, changed the including folders of eigen, boost and spectra in
Makefile
and then 'make', then I got these error informations (too long, I just copy the first and last few lines):What could I do for fixing it? Thank you!
polyhedron
The text was updated successfully, but these errors were encountered: