-
Notifications
You must be signed in to change notification settings - Fork 64
Comparing changes
Open a pull request
base repository: JuliaSparse/SparseArrays.jl
base: main
head repository: JuliaSparse/SparseArrays.jl
compare: release-1.12
- 12 commits
- 9 files changed
- 7 contributors
Commits on May 11, 2025
-
Fix
issymmetric
for matrices with empty columns (#606)The `issymmetric` check tracks an `offset` that it uses to go from (row, col) to (col, row). However, currently this doesn't account for the fact that if a column is empty, entries in `colptr` will be identical. E.g., in #605, we have ```julia julia> S = sparse([2, 3, 1], [1, 1, 3], [1, 1, 1], 3, 3) 3×3 SparseMatrixCSC{Int64, Int64} with 3 stored entries: ⋅ ⋅ 1 1 ⋅ ⋅ 1 ⋅ ⋅ julia> SparseArrays.getcolptr(S) 4-element Vector{Int64}: 1 3 3 4 ``` The offset `3` corresponds to rows in the third column, as the second column is empty. This PR checks for empty columns, in which case we may exit the call immediately. Fixes #605
Configuration menu - View commit details
-
Copy full SHA for 7ec2889 - Browse repository at this point
Copy the full SHA 7ec2889View commit details -
Replace
v == zero(v)
with_iszero
(#610)The purpose of this PR is to not call `==` directly, and use `_iszero` instead. This is to help integration with [IntervalArithmetic.jl](https://github.com/JuliaIntervals/IntervalArithmetic.jl) since `==` for our `Interval` type does not always return a Boolean. Closes #609. I did not change two checks using `===` since this would break the behaviour for `-0.0`.
Configuration menu - View commit details
-
Copy full SHA for 08a15ca - Browse repository at this point
Copy the full SHA 08a15caView commit details -
ldiv!
forDiagonal
and a sparse vector (#613)This improves performance: ```julia julia> using LinearAlgebra, SparseArrays julia> D = Diagonal(rand(3000)); julia> S = sprand(size(D,1), 0.01); julia> @Btime ldiv!($D, $S); 30.053 μs (0 allocations: 0 bytes) # master 1.585 μs (0 allocations: 0 bytes) # PR ```
Configuration menu - View commit details
-
Copy full SHA for 2ae8768 - Browse repository at this point
Copy the full SHA 2ae8768View commit details -
Relax
eltype
inDiagonal
ldiv!
/rdiv!
(#616)These methods do not require the `eltype`s to match exactly, and should work as long as the values may be stored in the destination.
Configuration menu - View commit details
-
Copy full SHA for 66d65cc - Browse repository at this point
Copy the full SHA 66d65ccView commit details -
Use
libsuitesparseconfig
from JLL (#620)This prevents us from being influenced by things like `LD_LIBRARY_PATH`, and ensures that we always load the correct `libsuitesparseconfig` that came with our JLL.
Configuration menu - View commit details
-
Copy full SHA for b38f273 - Browse repository at this point
Copy the full SHA b38f273View commit details -
Clarify pros, cons and limitations of Cholesky and LDLt (#621)
I find it worth pointing out explicitly in the docs that LDLt, which mathematically looks like a drop-in replacement for Cholesky that does away with the positive definiteness requirement, comes with the following caveats: * It fails for a lot of matrices (for example, `ldlt(Symmetric(sprandn(1000, 1000, p)))` basically never succeeds for any relevant sparsity `p`) due to the requirement that all leading principal minors be well-conditioned * In CHOLMOD, `ldlt` is significantly slower than `cholesky` as it does not have a supernodal implementation So I made some docstring edits to clarify the relationship and tradeoffs between `cholesky` and `ldlt`. Citation for these claims: pages 106-107 in the CHOLMOD user guide at https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/v7.10.3/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf
Configuration menu - View commit details
-
Copy full SHA for e1817e8 - Browse repository at this point
Copy the full SHA e1817e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for d1b0cd0 - Browse repository at this point
Copy the full SHA d1b0cd0View commit details
Commits on Jun 11, 2025
-
Configuration menu - View commit details
-
Copy full SHA for fa9736c - Browse repository at this point
Copy the full SHA fa9736cView commit details -
Configuration menu - View commit details
-
Copy full SHA for f51dace - Browse repository at this point
Copy the full SHA f51daceView commit details -
Configuration menu - View commit details
-
Copy full SHA for d921308 - Browse repository at this point
Copy the full SHA d921308View commit details -
[release-1.12] Run CI with Julia 1.12 (#635)
Run CI with Julia 1.12 on the release-1.12 branch and backport #625.
Configuration menu - View commit details
-
Copy full SHA for 415bc9e - Browse repository at this point
Copy the full SHA 415bc9eView commit details -
Configuration menu - View commit details
-
Copy full SHA for cdbad55 - Browse repository at this point
Copy the full SHA cdbad55View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...release-1.12