singular / lela Goto Github PK
View Code? Open in Web Editor NEWLibrary for exact linear algebra, a C++ template-library based originally on LinBox intended for F4-like implementations
License: GNU Lesser General Public License v3.0
Library for exact linear algebra, a C++ template-library based originally on LinBox intended for F4-like implementations
License: GNU Lesser General Public License v3.0
Library for Exact Linear Algebra (LELA) ======================================= LELA is a C++ template-library for computations in (normally) exact linear algebra. It is flexible in two respects: - the choice of ring over which to compute - the choice of vector- and matrix-representation, i.e. dense vs. sparse LELA uses C++ templates to provide the best feasible performance for each of the above choices. It also includes wrappers for some other libraries, such as M4RI (see http://m4ri.sagemath.org/) and CBLAS to make use of highly specialised implementations available in certain cases. All of these dependencies are optional; if the libraries are not present, LELA will fall back to its own routines at a cost of some performance. An introductory tutorial on the use of LELA may be found in the file doc/tutorial.html For questions, please make use of our mailing-list at [email protected] LELA was originally derived from LinBox (see http://www.linalg.org/). Some key differences between LELA and LinBox are the following: - LELA does not have any built-in facilities for black-box linear algebra. - LELA uses a completely new system for vector- and matrix-arithmetic. There is a single BLAS-like interface which handles all cases and the underlying mechanism is designed to be versatile and extensible. LinBox in contrast has two separate interfaces (MatrixDomain and VectorDomain vs. fflas) for matrix- and vector-arithmetic, each one with its own advantages and limitations. - LELA currently does not implement many of the high-level algorithms which are present in LinBox, particularly for calculations over the integers. - LELA has far fewer vector-representation-types over general rings than LinBox: only one for sparse vectors vs. three. - LELA has far better support for GF2 than LinBox, including fast word-based operations, a wrapper for M4RI, and a new "hybrid" vector-representation-type which is well suited to elimination problems with sparse matrices over GF(2). - LELA defines an interface for rings while LinBox defines an interface for fields. LELA-rings do not assume that all non-zero entries are invertible or that all nonzero elements divide all others. Instead the ring-interface reports whether inversion respectively division was successful. - Unlike fflas, LELA does not currently automatically convert matrices with an integral representation to a floating point representation before multiplying them. To take advantage of fast floating-point operations, the user must use such a representation throughout.
make[1]: *** No rule to make target install-doc', needed by
install'
make distcheck DISTCHECK_CONFIGURE_FLAGS="--with-libpolys=/GITHUB/w/LINBOX --without-blas"
fails for me with the following:
test-blas-cblas-module.o: In function LELA::DenseMatrix<float>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::gemm_impl<LELA::BLASModule<float>, LELA::DenseMatrix<float>, LELA::DenseMatrix<float>, LELA::DenseMatrix<float> >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::DenseMatrix<float> const&, LELA::DenseMatrix<float> const&, float, LELA::DenseMatrix<float>&, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:52: undefined reference to
cblas_sgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<float>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::gemm_impl<LELA::BLASModule<float>, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<float>, LELA::DenseMatrix<float> >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol> const&, LELA::DenseMatrix<float> const&, float, LELA::DenseMatrix<float>&, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:67: undefined reference to
cblas_sgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<float>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::gemm_impl<LELA::BLASModule<float>, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol>, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<float> >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol> const&, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol> const&, float, LELA::DenseMatrix<float>&, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:97: undefined reference to
cblas_sgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<float>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::gemm_impl<LELA::BLASModule<float>, LELA::DenseMatrix<float>, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<float> >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::DenseMatrix<float> const&, LELA::TransposeMatrix<LELA::DenseMatrix<float>, LELA::MatrixIteratorTypes::RowCol> const&, float, LELA::DenseMatrix<float>&, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:82: undefined reference to
cblas_sgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<double>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::gemm_impl<LELA::BLASModule<double>, LELA::DenseMatrix<double>, LELA::DenseMatrix<double>, LELA::DenseMatrix<double> >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::DenseMatrix<double> const&, LELA::DenseMatrix<double> const&, double, LELA::DenseMatrix<double>&, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:203: undefined reference to
cblas_dgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<double>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::gemm_impl<LELA::BLASModule<double>, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<double>, LELA::DenseMatrix<double> >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol> const&, LELA::DenseMatrix<double> const&, double, LELA::DenseMatrix<double>&, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:215: undefined reference to
cblas_dgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<double>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::gemm_impl<LELA::BLASModule<double>, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol>, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<double> >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol> const&, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol> const&, double, LELA::DenseMatrix<double>&, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:239: undefined reference to
cblas_dgemm'
test-blas-cblas-module.o: In function LELA::DenseMatrix<double>& LELA::BLAS3::_gemm<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::gemm_impl<LELA::BLASModule<double>, LELA::DenseMatrix<double>, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol>, LELA::DenseMatrix<double> >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::DenseMatrix<double> const&, LELA::TransposeMatrix<LELA::DenseMatrix<double>, LELA::MatrixIteratorTypes::RowCol> const&, double, LELA::DenseMatrix<double>&, LELA::MatrixStorageTypes::Dense, LELA::MatrixStorageTypes::DenseTranspose, LELA::MatrixStorageTypes::Dense)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level3-cblas.h:227: undefined reference to
cblas_dgemm'
test-blas-cblas-module.o: In function LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >& LELA::BLAS1::_axpy<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::axpy_impl<LELA::BLASModule<float>, LELA::Subvector<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >, LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > > >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::Subvector<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > > const&, LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >&, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level1-cblas.h:163: undefined reference to
cblas_saxpy'
test-blas-cblas-module.o: In function LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >& LELA::BLAS1::_axpy<LELA::TypeWrapperRing<float>, LELA::BLASModule<float>::Tag>::axpy_impl<LELA::BLASModule<float>, LELA::Subvector<LELA::Subiterator<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >, LELA::Subiterator<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > > >, LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > > >(LELA::TypeWrapperRing<float> const&, LELA::BLASModule<float>&, float, LELA::Subvector<LELA::Subiterator<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >, LELA::Subiterator<__gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > > > const&, LELA::Subvector<__gnu_cxx::__normal_iterator<float*, std::vector<float, std::allocator<float> > >, __gnu_cxx::__normal_iterator<float const*, std::vector<float, std::allocator<float> > > >&, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level1-cblas.h:163: undefined reference to
cblas_saxpy'
test-blas-cblas-module.o: In function LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >& LELA::BLAS1::_axpy<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::axpy_impl<LELA::BLASModule<double>, LELA::Subvector<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >, LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > > >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::Subvector<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > > const&, LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >&, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level1-cblas.h:190: undefined reference to
cblas_daxpy'
test-blas-cblas-module.o: In function LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >& LELA::BLAS1::_axpy<LELA::TypeWrapperRing<double>, LELA::BLASModule<double>::Tag>::axpy_impl<LELA::BLASModule<double>, LELA::Subvector<LELA::Subiterator<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >, LELA::Subiterator<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > > >, LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > > >(LELA::TypeWrapperRing<double> const&, LELA::BLASModule<double>&, double, LELA::Subvector<LELA::Subiterator<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >, LELA::Subiterator<__gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > > > const&, LELA::Subvector<__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, __gnu_cxx::__normal_iterator<double const*, std::vector<double, std::allocator<double> > > >&, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real, LELA::VectorRepresentationTypes::Dense, LELA::VectorStorageTypes::Real)': /mnt/DATA/GITHUB/w/Linbox-F4/lela-0.1.0/_build/tests/../../lela/blas/level1-cblas.h:190: undefined reference to
cblas_daxpy'
collect2: ld returned 1 exit status
make[4]: *** [test-blas-cblas-module] Error 1
configure said:
checking for C interface to BLAS... not found
checking for other BLAS... not found
libtool: link: g++ -Wall -O2 -o diff diff.o support.o -Wl,-rpath -Wl,/usr/lib -L/GITHUB/w/LINBOX/lib -lpolys_g -lcoeffs_g -lresources_g -lreporter_g -lmisc_g -lfactory -lomalloc_g /usr/lib/libntl.so -L/usr/lib /usr/lib/libgf2x.so -ldl -lgmp -lgmpxx -lpng /usr/lib/libm4ri.so -lm ../lela/.libs/liblela.a
In file included from ../../lela/algorithms/elimination.h:225:0,
from ../../lela/solutions/echelon-form.h:18,
from ../../util/row-echelon-form.C:19:
../../lela/blas/level1-gf2.tcc: In member function ‘Matrix& LELA::Elimination<Ring, Modules>::echelonize(Matrix&, LELA::Elimination<Ring, Modules>::Permutation&, size_t&, LELA::Elimination<Ring, Modules>::Element&, PivotStrategy, bool) const [with Matrix = LELA::DenseMatrix, PivotStrategy = LELA::DensePivotStrategy<LELA::GF2, LELA::AllModulesLELA::GF2 >, Ring = LELA::GF2, Modules = LELA::AllModulesLELA::GF2, LELA::Elimination<Ring, Modules>::Permutation = std::vector<std::pair<unsigned int, unsigned int> >, size_t = long unsigned int, LELA::Elimination<Ring, Modules>::Element = bool]’:
../../lela/blas/level1-gf2.tcc:294:3: warning: ‘((void)(& j_A)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:64:36: note: ‘((void_)(& j_A)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ was declared here
../../lela/blas/level1-gf2.tcc:292:4: warning: ‘((void_)(& j_A)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::begin’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:64:36: note: ‘((void_)(& j_A)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::begin’ was declared here
../../lela/matrix/m4ri-matrix.h: In member function ‘Matrix1& LELA::Elimination<Ring, Modules>::echelonize_reduced(Matrix1&, Matrix2&, LELA::Elimination<Ring, Modules>::Permutation&, size_t&, LELA::Elimination<Ring, Modules>::Element&, PivotStrategy, bool) const [with Matrix1 = LELA::DenseMatrix, Matrix2 = LELA::DenseMatrix, PivotStrategy = LELA::DensePivotStrategy<LELA::GF2, LELA::AllModulesLELA::GF2 >, Ring = LELA::GF2, Modules = LELA::AllModulesLELA::GF2, LELA::Elimination<Ring, Modules>::Permutation = std::vector<std::pair<unsigned int, unsigned int> >, size_t = long unsigned int, LELA::Elimination<Ring, Modules>::Element = bool]’:
../../lela/matrix/m4ri-matrix.h:143:4: warning: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ was declared here
../../lela/blas/level1-gf2.tcc:294:3: warning: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ was declared here
../../lela/algorithms/elimination.tcc:163:37: warning: ‘((void_)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::begin’ may be used uninitialized in this function [-Wuninitialized]
../../lela/matrix/m4ri-matrix.h: In member function ‘Matrix1& LELA::Elimination<Ring, Modules>::echelonize_reduced(Matrix1&, Matrix2&, LELA::Elimination<Ring, Modules>::Permutation&, size_t&, LELA::Elimination<Ring, Modules>::Element&, PivotStrategy, bool) const [with Matrix1 = LELA::SparseMatrix<bool, std::vector >, Matrix2 = LELA::DenseMatrix, PivotStrategy = LELA::SparsePartialPivotStrategy<LELA::GF2, LELA::AllModulesLELA::GF2 >, Ring = LELA::GF2, Modules = LELA::AllModulesLELA::GF2, LELA::Elimination<Ring, Modules>::Permutation = std::vector<std::pair<unsigned int, unsigned int> >, size_t = long unsigned int, LELA::Elimination<Ring, Modules>::Element = bool]’:
../../lela/matrix/m4ri-matrix.h:143:4: warning: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ was declared here
../../lela/blas/level1-gf2.tcc:294:3: warning: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ was declared here
../../lela/algorithms/elimination.tcc:163:37: warning: ‘((void_)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::begin’ may be used uninitialized in this function [-Wuninitialized]
../../lela/matrix/m4ri-matrix.h: In member function ‘Matrix1& LELA::Elimination<Ring, Modules>::echelonize_reduced(Matrix1&, Matrix2&, LELA::Elimination<Ring, Modules>::Permutation&, size_t&, LELA::Elimination<Ring, Modules>::Element&, PivotStrategy, bool) const [with Matrix1 = LELA::SparseMatrix<bool, LELA::HybridVector<LELA::BigEndian, short unsigned int, long unsigned int> >, Matrix2 = LELA::DenseMatrix, PivotStrategy = LELA::SparsePartialPivotStrategy<LELA::GF2, LELA::AllModulesLELA::GF2 >, Ring = LELA::GF2, Modules = LELA::AllModulesLELA::GF2, LELA::Elimination<Ring, Modules>::Permutation = std::vector<std::pair<unsigned int, unsigned int> >, size_t = long unsigned int, LELA::Elimination<Ring, Modules>::Element = bool]’:
../../lela/matrix/m4ri-matrix.h:143:4: warning: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘j_L.LELA::M4RIMatrix::RowIteratorPT<long long unsigned int*, const long long unsigned int*, LELA::M4RIMatrixBase*>::idx’ was declared here
../../lela/blas/level1-gf2.tcc:294:3: warning: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ may be used uninitialized in this function [-Wuninitialized]
../../lela/algorithms/elimination.tcc:163:37: note: ‘((void)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::end’ was declared here
../../lela/algorithms/elimination.tcc:163:37: warning: ‘((void_)(& j_L)+16).LELA::BitSubvectorWordAligned<long long unsigned int*, const long long unsigned int*, LELA::BigEndian >::_begin’ may be used uninitialized in this function [-Wuninitialized]
the test fails only with gcc (OK - with clang...)
lela/algorithms/gauss-jordan.tcc:271 : ctx.F.mulin (d, aii); where d is undefined (but aii is ok)
gdb backtrace:
#8 0x00000000004361c1 in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffb9c8, h=@0x7fffffffb9bc, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:271
#9 0x0000000000436607 in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffbf70, h=@0x7fffffffbf68, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:328
#10 0x000000000043690d in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffc520, h=@0x7fffffffc518, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:358
#11 0x000000000043690d in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffcad0, h=@0x7fffffffcac8, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:358
#12 0x000000000043690d in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffd088, h=@0x7fffffffd07c, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:358
#13 0x0000000000436607 in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffd630, h=@0x7fffffffd628, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:328
#14 0x000000000043690d in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffe1f0, A=..., L=..., d_0=..., P=..., r=@0x7fffffffda78, h=@0x7fffffffd78c, d=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:358
#15 0x000000000042fbbe in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::echelonizeLELA::DenseMatrix<Number, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (
this=0x7fffffffe1f0, A=..., P=..., rank=@0x7fffffffda78, det=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:421
#16 0x000000000042971e in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::echelonizeLELA::DenseMatrix (this=0x7fffffffe1f0, A=..., P=..., rank=@0x7fffffffda78, det=...)
at ../lela/algorithms/gauss-jordan.h:124
#17 0x0000000000420e64 in LELA::EchelonForm<MyModular, LELA::AllModules<MyModular > >::echelonize (this=0x7fffffffe1d8, A=..., reduced=false,
method=LELA::EchelonForm<MyModular<float>, LELA::AllModules<MyModular<float> > >::METHOD_ASYMPTOTICALLY_FAST_GJ) at ../lela/solutions/echelon-form.h:130
#18 0x000000000041a36d in LELA::FaugereLachartre<MyModular, LELA::AllModules<MyModular > >::echelonize<LELA::SparseMatrix<Number, LELA::SparseVector<Number, std::vector, std::vector<Number, std::allocator > >, LELA::VectorRepresentationTypes::Sparse> > (this=0x7fffffffe1d0, R=..., X=..., rank=@0x7fffffffe378, det=...) at ../lela/algorithms/faugere-lachartre.tcc:297
#19 0x00000000004158d3 in testFaugereLachartre<MyModular > (R=..., text=0x55552c "GF(5)", m=96, n=128) at test-faugere-lachartre.C:179
#20 0x000000000040edec in main (argc=1, argv=0x7fffffffe548) at test-faugere-lachartre.C:241
after your fix:
ERROR (at copy_impl in ../lela/blas/level3-generic.tcc:102):
Precondition not met:A.rowdim () == B.rowdim ()
terminate called after throwing an instance of 'LELA::PreconditionFailed'
/bin/sh: line 5: 26878 Aborted ${dir}$tst
FAIL: test-strassen-winograd
./configure --with-gmp="/opt/local"
results in
checking for GMP >= 1.0... *******************************************************************************
ERROR: GMP not found!
GMP version 3.1.1 or greater with --enable-cxx is required for this library to compile. Please
make sure GMP is installed and specify its location with the option
--with-gmp= when running configure.
whereas i have it all under that prefix:
/opt/local/include/gmp.h
/opt/local/include/gmpxx.h
/opt/local/lib/libgmp.10.dylib
/opt/local/lib/libgmp.3.dylib
/opt/local/lib/libgmp.a
/opt/local/lib/libgmp.dylib
/opt/local/lib/libgmp.la
/opt/local/lib/libgmpxx.4.dylib
/opt/local/lib/libgmpxx.a
/opt/local/lib/libgmpxx.dylib
/opt/local/lib/libgmpxx.la
the config.log contains
g++ -o conftest conftest.cpp -L/opt/local/lib -lgmp -lgmpxx >&5
conftest.cpp:36:17: error: gmp.h: No such file or directory
...
and
g++ -o conftest conftest.cpp -L/opt/local/lib -lgmp -lgmpxx -L/opt/local/lib -lgmp -lgmpxx >&5
conftest.cpp:36:17: error: gmp.h: No such file or directory
...
So i guess you don't pass -I/opt/local/include to the checker!!!
AFAIK, we fixed this issue in libpolys so why not to use the fixed gmp check?
In BLAS1 methods that return sparse vectors (like scal), a check must be done to eliminate all the 0 values from the resulting vector.
Hi,
after trying to install the library, I encountered initially the following error:
... LELA-master/install-sh: ./html/* does not exist.
It seems that the doc/Makefile.am
tries to locate the html
folder instead of the reference
. After renaming it to html
and re-executed the./configure; make; make install;
the installation process went on smoothly.
I also renamed the reference.doxy
file to html.doxy
; not totally sure if needed.
Thank you!
lela/algorithms/gauss-jordan.tcc:74: ctx.F.mulin (d, aii); where d is undefined...!
started with EF.echelonize(D, true) for a Dense 10x10 (initialized!) matrix...
gdb backtrace:
#7 0x0000000000410b58 in CoeffDomain::mulin (this=0x7fffffffe3b0, x=..., y=...) at ../lela/ring/coeffs.h:606
#8 0x000000000042e736 in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussJordanTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffded8, A=..., k=0, d_0=..., U=..., P=..., r=@0x7fffffffc878, h=@0x7fffffffc86c, d=..., S=..., T=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:74
#9 0x000000000042ebdf in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussJordanTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffded8, A=..., k=0, d_0=..., U=..., P=..., r=@0x7fffffffd038, h=@0x7fffffffd02c, d=..., S=..., T=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:131
#10 0x000000000042ebdf in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussJordanTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffded8, A=..., k=0, d_0=..., U=..., P=..., r=@0x7fffffffd7f8, h=@0x7fffffffd7ec, d=..., S=..., T=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:131
#11 0x000000000042ebdf in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::GaussJordanTransformLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffded8, A=..., k=0, d_0=..., U=..., P=..., r=@0x7fffffffdd68, h=@0x7fffffffda2c, d=..., S=..., T=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:131
#12 0x0000000000425cab in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::echelonize_reducedLELA::DenseMatrix<Number, LELA::DenseMatrix, LELA::DensePivotStrategy<MyModular, LELA::AllModules<MyModular > > > (this=0x7fffffffded8, A=..., L=..., P=..., rank=@0x7fffffffdd68, det=..., PS=...) at ../lela/algorithms/gauss-jordan.tcc:453
#13 0x000000000041b85a in LELA::GaussJordan<MyModular, LELA::AllModules<MyModular > >::echelonize_reducedLELA::DenseMatrix<Number, LELA::DenseMatrix > (this=0x7fffffffded8, A=..., L=..., P=...,
rank=@0x7fffffffdd68, det=...) at ../lela/algorithms/gauss-jordan.h:168
#14 0x00000000004172b3 in LELA::EchelonForm<MyModular, LELA::AllModules<MyModular > >::echelonize (this=0x7fffffffdec0, A=..., reduced=true,
method=LELA::EchelonForm<MyModular<unsigned char>, LELA::AllModules<MyModular<unsigned char> > >::METHOD_ASYMPTOTICALLY_FAST_GJ) at ../lela/solutions/echelon-form.h:128
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.