Mercurial > octave
comparison 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 |
comparison
equal
deleted
inserted
replaced
29258:fdfd874293f6 | 29259:66f162b6fa03 |
---|---|
2142 [suitesparse/cholmod.h ufsparse/cholmod.h cholmod/cholmod.h cholmod.h], | 2142 [suitesparse/cholmod.h ufsparse/cholmod.h cholmod/cholmod.h cholmod.h], |
2143 [cholmod${CHOLMOD_TAG}start], | 2143 [cholmod${CHOLMOD_TAG}start], |
2144 [], [don't use CHOLMOD library, disable some sparse matrix functionality]) | 2144 [], [don't use CHOLMOD library, disable some sparse matrix functionality]) |
2145 LIBS="$save_LIBS" | 2145 LIBS="$save_LIBS" |
2146 | 2146 |
2147 ### Check for SPQR library | |
2148 | |
2149 OCTAVE_CHECK_LIB(spqr, SPQR, | |
2150 [SPQR library not found. This will result in some lack of functionality for sparse matrices.], | |
2151 [suitesparse/SuiteSparseQR.hpp], | |
2152 [SuiteSparseQR_C], | |
2153 [C++], [don't use SPQR library, disable some sparse matrix functionality]) | |
2154 | |
2147 ### Check for CXSparse library | 2155 ### Check for CXSparse library |
2148 | 2156 |
2149 OCTAVE_CHECK_LIB(cxsparse, CXSparse, | 2157 OCTAVE_CHECK_LIB(cxsparse, CXSparse, |
2150 [CXSparse library not found. This will result in some lack of functionality for sparse matrices.], | 2158 [CXSparse library not found. This will result in some lack of functionality for sparse matrices.], |
2151 [suitesparse/cs.h ufsparse/cs.h cxsparse/cs.h cs.h], | 2159 [suitesparse/cs.h ufsparse/cs.h cxsparse/cs.h cs.h], |
2207 dnl These are here instead of just in the Makefile.am file because we | 2215 dnl These are here instead of just in the Makefile.am file because we |
2208 dnl substitute some of them into other source files like mkoctfile. | 2216 dnl substitute some of them into other source files like mkoctfile. |
2209 | 2217 |
2210 ## Order matters, at least on some systems (Cygwin, for example). | 2218 ## Order matters, at least on some systems (Cygwin, for example). |
2211 | 2219 |
2212 SPARSE_XCPPFLAGS="$CHOLMOD_CPPFLAGS $UMFPACK_CPPFLAGS $AMD_CPPFLAGS $CAMD_CPPFLAGS $COLAMD_CPPFLAGS $CCOLAMD_CPPFLAGS $CXSPARSE_CPPFLAGS" | 2220 SPARSE_XCPPFLAGS="$CHOLMOD_CPPFLAGS $UMFPACK_CPPFLAGS $AMD_CPPFLAGS $CAMD_CPPFLAGS $COLAMD_CPPFLAGS $CCOLAMD_CPPFLAGS $CXSPARSE_CPPFLAGS $SPQR_CPPFLAGS" |
2213 | 2221 |
2214 SPARSE_XLDFLAGS="$CHOLMOD_LDFLAGS $UMFPACK_LDFLAGS $AMD_LDFLAGS $CAMD_LDFLAGS $COLAMD_LDFLAGS $CCOLAMD_LDFLAGS $CXSPARSE_LDFLAGS" | 2222 SPARSE_XLDFLAGS="$CHOLMOD_LDFLAGS $UMFPACK_LDFLAGS $AMD_LDFLAGS $CAMD_LDFLAGS $COLAMD_LDFLAGS $CCOLAMD_LDFLAGS $CXSPARSE_LDFLAGS $SPQR_LDFLAGS" |
2215 | 2223 |
2216 SPARSE_XLIBS="$CHOLMOD_LIBS $UMFPACK_LIBS $AMD_LIBS $CAMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $CXSPARSE_LIBS $SUITESPARSECONFIG_LIBS" | 2224 SPARSE_XLIBS="$CHOLMOD_LIBS $UMFPACK_LIBS $AMD_LIBS $CAMD_LIBS $COLAMD_LIBS $CCOLAMD_LIBS $CXSPARSE_LIBS $SUITESPARSECONFIG_LIBS $SPQR_LIBS" |
2217 | 2225 |
2218 AC_SUBST(SPARSE_XCPPFLAGS) | 2226 AC_SUBST(SPARSE_XCPPFLAGS) |
2219 AC_SUBST(SPARSE_XLDFLAGS) | 2227 AC_SUBST(SPARSE_XLDFLAGS) |
2220 AC_SUBST(SPARSE_XLIBS) | 2228 AC_SUBST(SPARSE_XLIBS) |
2221 | 2229 |
3146 Qt qhelpgenerator: $QHELPGENERATOR $QHELPGENERATORFLAGS | 3154 Qt qhelpgenerator: $QHELPGENERATOR $QHELPGENERATORFLAGS |
3147 READLINE libraries: $READLINE_LIBS | 3155 READLINE libraries: $READLINE_LIBS |
3148 Sndfile CPPFLAGS: $SNDFILE_CPPFLAGS | 3156 Sndfile CPPFLAGS: $SNDFILE_CPPFLAGS |
3149 Sndfile LDFLAGS: $SNDFILE_LDFLAGS | 3157 Sndfile LDFLAGS: $SNDFILE_LDFLAGS |
3150 Sndfile libraries: $SNDFILE_LIBS | 3158 Sndfile libraries: $SNDFILE_LIBS |
3159 SPQR CPPFLAGS: $SPQR_CPPFLAGS | |
3160 SPQR LDFLAGS: $SPQR_LDFLAGS | |
3161 SPQR libraries: $SPQR_LIBS | |
3151 SuiteSparse config libraries: $SUITESPARSECONFIG_LIBS | 3162 SuiteSparse config libraries: $SUITESPARSECONFIG_LIBS |
3152 SUNDIALS IDA CPPFLAGS: $SUNDIALS_IDA_CPPFLAGS | 3163 SUNDIALS IDA CPPFLAGS: $SUNDIALS_IDA_CPPFLAGS |
3153 SUNDIALS IDA LDFLAGS: $SUNDIALS_IDA_LDFLAGS | 3164 SUNDIALS IDA LDFLAGS: $SUNDIALS_IDA_LDFLAGS |
3154 SUNDIALS IDA libraries: $SUNDIALS_IDA_LIBS | 3165 SUNDIALS IDA libraries: $SUNDIALS_IDA_LIBS |
3155 SUNDIALS NVECTOR CPPFLAGS: $SUNDIALS_NVECSERIAL_CPPFLAGS | 3166 SUNDIALS NVECTOR CPPFLAGS: $SUNDIALS_NVECSERIAL_CPPFLAGS |