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