Mercurial > octave
diff configure.ac @ 29259:66f162b6fa03
Replacement of CXSPARSE by SPQR for QR factorization (bug #57033).
* libinterp/corefcn/qr.cc (Fqr): Handle sparse input. Return economy versions of
C, Q and R for qr(..., 0). Return column permutation of A as (vector|matrix)
for qr(..., ("vector"|"matrix")). Add documentation for sparse input A.
Additional tests if HAVE_SPQR.
* liboctave/numeric/oct-sparse.h, liboctave/numeric/oct-sparse.cc (ros2rcs,
cos2ccs, rod2ccd, rod2rcd, cod2ccd, rcs2ros, ccs2cos, ros2ccs): New functions
to convert between Octave and SuiteSparse matrix types.
(spqr_error_handler): New function to handle SPQR errors.
* liboctave/numeric/sparse-qr.h (octave::math::sparse_qr): Add new member
functions.
* liboctave/numeric/sparse-qr.cc: Add interface to SPQR functios.
* configure.ac: Add configure test for SPQR.
author | Simon Hau <simon.hau79@gmail.com> |
---|---|
date | Thu, 09 Jan 2020 21:45:54 +0100 |
parents | f6058c6e1b18 |
children | d4d56704978e |
line wrap: on
line diff
--- a/configure.ac Mon Jan 04 14:52:06 2021 +0100 +++ b/configure.ac Thu Jan 09 21:45:54 2020 +0100 @@ -2144,6 +2144,14 @@ [], [don't use CHOLMOD library, disable some sparse matrix functionality]) LIBS="$save_LIBS" +### Check for SPQR library + +OCTAVE_CHECK_LIB(spqr, SPQR, + [SPQR library not found. This will result in some lack of functionality for sparse matrices.], + [suitesparse/SuiteSparseQR.hpp], + [SuiteSparseQR_C], + [C++], [don't use SPQR library, disable some sparse matrix functionality]) + ### Check for CXSparse library OCTAVE_CHECK_LIB(cxsparse, CXSparse, @@ -2209,11 +2217,11 @@ ## Order matters, at least on some systems (Cygwin, for example). -SPARSE_XCPPFLAGS="$CHOLMOD_CPPFLAGS $UMFPACK_CPPFLAGS $AMD_CPPFLAGS $CAMD_CPPFLAGS $COLAMD_CPPFLAGS $CCOLAMD_CPPFLAGS $CXSPARSE_CPPFLAGS" - -SPARSE_XLDFLAGS="$CHOLMOD_LDFLAGS $UMFPACK_LDFLAGS $AMD_LDFLAGS $CAMD_LDFLAGS $COLAMD_LDFLAGS $CCOLAMD_LDFLAGS $CXSPARSE_LDFLAGS" - -SPARSE_XLIBS="$CHOLMOD_LIBS $UMFPACK_LIBS $AMD_LIBS $CAMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $CXSPARSE_LIBS $SUITESPARSECONFIG_LIBS" +SPARSE_XCPPFLAGS="$CHOLMOD_CPPFLAGS $UMFPACK_CPPFLAGS $AMD_CPPFLAGS $CAMD_CPPFLAGS $COLAMD_CPPFLAGS $CCOLAMD_CPPFLAGS $CXSPARSE_CPPFLAGS $SPQR_CPPFLAGS" + +SPARSE_XLDFLAGS="$CHOLMOD_LDFLAGS $UMFPACK_LDFLAGS $AMD_LDFLAGS $CAMD_LDFLAGS $COLAMD_LDFLAGS $CCOLAMD_LDFLAGS $CXSPARSE_LDFLAGS $SPQR_LDFLAGS" + +SPARSE_XLIBS="$CHOLMOD_LIBS $UMFPACK_LIBS $AMD_LIBS $CAMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $CXSPARSE_LIBS $SUITESPARSECONFIG_LIBS $SPQR_LIBS" AC_SUBST(SPARSE_XCPPFLAGS) AC_SUBST(SPARSE_XLDFLAGS) @@ -3148,6 +3156,9 @@ Sndfile CPPFLAGS: $SNDFILE_CPPFLAGS Sndfile LDFLAGS: $SNDFILE_LDFLAGS Sndfile libraries: $SNDFILE_LIBS + SPQR CPPFLAGS: $SPQR_CPPFLAGS + SPQR LDFLAGS: $SPQR_LDFLAGS + SPQR libraries: $SPQR_LIBS SuiteSparse config libraries: $SUITESPARSECONFIG_LIBS SUNDIALS IDA CPPFLAGS: $SUNDIALS_IDA_CPPFLAGS SUNDIALS IDA LDFLAGS: $SUNDIALS_IDA_LDFLAGS