Changes¶
v0.5.0¶
Major API updates to the
sksparse.cholmodmodule. The module has been updated to resemble the existingscipy.linalg.cholesky()interface, as well as provide additional functions present in the SuiteSparse CHOLMOD MATLAB interface, and MATLAB built-in Cholesky functions. The underlying Cython code has been refactored to provide greater type safety and performance.The
cholmod.Factorclass has been renamed toCholeskyFactor.The
cholmod.Commonclass has been removed. Its attributes have been subsumed into theCholeskyFactorclass.The
cholesky()function now returns acsc_arrayinstead of aFactorobject, and an optionalndarraycontaining the permutation vector.The
ldl()function has been added. It returns a tuple (csc_array,csc_array), and an optionalndarraycontaining the permutation vector.A
cho_factor()function has been added to perform the numeric Cholesky factorization and return aCholeskyFactorobject.Similarly, a
ldl_factor()function has been added to perform the numeric LDL factorization and return aCholeskyFactorobject.The
cholmod.analyzefunction has been removed. The analysis step is now performed when calling the constructor ofCholeskyFactor.The
use_longparameter has been removed from thecholesky()andldl()functions. The type of indices is now inferred from the input matrix.The
modeparameter has been renamed tosupernodal_mode.The
symmetricparameter has been removed. It has been replaced by two new parameters:lower, andsym_kind.Parameter
lowercontrols whether to use the lower or upper triangular part of the input matrix, or whether to return a lower or upper triangular factor.Parameter
sym_kindhas been added. It accepts a string argument in{"sym", "row", "col"}, which controls the symmetry structure of the matrix to analyze.
The functions
cholmod.analyze_AAtandcholmod.cholesky_AAthave been removed. Usecho_factor()orcholesky()withsym_kind="row"instead.The
ordering_methodparameter has been renamed toorder.The
FactormethodsL,D,LD,L_D, andP, have been removed in factor of the methodsget_factor()andget_perm().The property
permand methodfactorhave been added to return read-only views of the permutation vector and factor matrix, respectively.The
Factormethodssolve_LDLt,solve_LD,solve_DLt,solve_L,solve_Lt, andsolve_Dhave been removed in favor of the singlesolve()method. TheCholeskyFactoris not callable.Add multiple properties to the
CholeskyFactorclass for convenient access tocholmod_factorattributes. See the full documentation for details.Fix a bug in the previous version where sparse inputs with inconsistent
has_sorted_indicesorhas_canonical_formatflags would silently lead to incorrect results. The input matrix is now modified into a canonical CSC format, regardless of the input format.
Create the
amdmodule, which provides the AMD ordering method.Create the
btfmodule, which provides the BTF ordering method.Create the
camdmodule, which provides the constrained AMD ordering method.Create the
colamdmodule, which provides the COLAMD ordering method.Create the
ccolamdmodule, which provides the constrained COLAMD ordering method.Create the
umfpacksubmodule, which provides an interface to the UMFPACK sparse LU solver.Remove support for the following versions:
Python < 3.10
NumPy < 2.0
SciPy < 1.14
SuiteSparse < 7.4.0
Python 3.9 will reach its end of life in October 2025, so remove support for it now. Numpy will end support for all 1.x versions by September 2025. SciPy v1.14 (released June 2024) will be supported until the end of 2026.
v0.4.4¶
Bug in solve with dense array, where base of result is not set correctly, fixed.
Travis tests are using conda now.
Supported versions updated to:
Python: 3.7, 3.6
NumPy: 1.15, 1.14, 1.13
SciPy: 1.1, 1.0, 0.19
SuiteSparse: 5.2
v0.4.3¶
The method
Factor.solve_Lcan now also use the L matrix of the LL’ decomposition.Supported versions updated to:
Python: 3.6, 3.5
NumPy: 1.14, 1.13
SciPy: 1.0, 0.19
v0.4.2¶
Bug where the ordering method is not taken into account is fixed.
The Factor class has now a (public) copy method.
v0.4.1¶
Bug with relaxed stride checking in NumPy 1.12 fixed.
Supported versions updated to:
Python: 3.6, 3.5, 3.4, 2.7
NumPy: 1.8 to 1.12
v0.4¶
64-bit indices (type long) are now supported.
The ordering method for Cholesky decomposition is now choosable.
Specific exceptions subclasses are now thrown for each error condition.
Setup does not rely on an installed Cython anymore.
v0.3.1¶
Ensure that arrays returned by the
Factor.solve_...methods are writeable.
v0.3¶
Dropped deprecated
Factor.solve_PandFactor.solve_P.Fixed a memory leak upon garbage collection of
Factor.
v0.2¶
Factorsolve methods now return 1d output for 1d input (just likenumpy.dot()does).Factor.solve_PandFactor.solve_Pdeprecated; useFactor.apply_PandFactor.apply_Ptinstead.New methods for computing determinants of positive-definite matrices:
Factor.det,Factor.logdet,Factor.slogdet.New method for explicitly computing inverse of a positive-definite matrix:
Factor.inv.Factor.Dhas much better implementation.Build system improvements.
Wrapper code re-licensed under BSD terms.
v0.1¶
First public release.