From c91721365ba3580a22b7f287215d55607fee3bbd Mon Sep 17 00:00:00 2001 From: mtfishman Date: Wed, 4 Feb 2026 14:22:44 -0500 Subject: [PATCH 1/2] Upgrade to TensorAlgebra.jl v0.7, NamedDimsArrays.jl v0.14 --- Project.toml | 6 +++--- test/Project.toml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Project.toml b/Project.toml index b4d5327..a1c9805 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "SparseArraysBase" uuid = "0d5efcca-f356-4864-8770-e1ed8d78f208" authors = ["ITensor developers and contributors"] -version = "0.9.0" +version = "0.9.1" [deps] Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" @@ -35,10 +35,10 @@ FunctionImplementations = "0.4" GPUArraysCore = "0.2" LinearAlgebra = "1.10" MapBroadcast = "0.1.5" -NamedDimsArrays = "0.13" +NamedDimsArrays = "0.13, 0.14" Random = "1.10" SparseArrays = "1.10" -TensorAlgebra = "0.6.2" +TensorAlgebra = "0.6.2, 0.7" TypeParameterAccessors = "0.4.3" julia = "1.10" diff --git a/test/Project.toml b/test/Project.toml index e189075..5584127 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -29,12 +29,12 @@ FillArrays = "1.13.0" FunctionImplementations = "0.4" JLArrays = "0.2.0, 0.3" LinearAlgebra = "<0.0.1, 1" -NamedDimsArrays = "0.13" +NamedDimsArrays = "0.13, 0.14" Random = "<0.0.1, 1" SafeTestsets = "0.1.0" SparseArrays = "1.10" SparseArraysBase = "0.9" StableRNGs = "1.0.2" Suppressor = "0.2.8" -TensorAlgebra = "0.6" +TensorAlgebra = "0.6, 0.7" Test = "<0.0.1, 1" From 69584285640a487449dad0304efabd6e7710f23e Mon Sep 17 00:00:00 2001 From: mtfishman Date: Wed, 4 Feb 2026 14:35:42 -0500 Subject: [PATCH 2/2] Fix tests --- .../SparseArraysBaseNamedDimsArraysExt.jl | 4 +-- test/test_dense.jl | 30 ++++++++++--------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/ext/SparseArraysBaseNamedDimsArraysExt/SparseArraysBaseNamedDimsArraysExt.jl b/ext/SparseArraysBaseNamedDimsArraysExt/SparseArraysBaseNamedDimsArraysExt.jl index f2541b4..023a78c 100644 --- a/ext/SparseArraysBaseNamedDimsArraysExt/SparseArraysBaseNamedDimsArraysExt.jl +++ b/ext/SparseArraysBaseNamedDimsArraysExt/SparseArraysBaseNamedDimsArraysExt.jl @@ -1,7 +1,7 @@ module SparseArraysBaseNamedDimsArraysExt using NamedDimsArrays: AbstractNamedDimsArray, AbstractNamedUnitRange, denamed, inds, - nameddims, nameddimsof + name, nameddims, nameddimsof using SparseArraysBase: SparseArraysBase, dense, oneelement function SparseArraysBase.dense(a::AbstractNamedDimsArray) @@ -13,7 +13,7 @@ end function SparseArraysBase.oneelement( value, index::NTuple{N, Int}, ax::NTuple{N, AbstractNamedUnitRange} ) where {N} - return nameddims(oneelement(value, index, only.(axes.(denamed.(ax)))), ax) + return nameddims(oneelement(value, index, denamed.(ax)), name.(ax)) end end diff --git a/test/test_dense.jl b/test/test_dense.jl index 3542e2d..8b61b1d 100644 --- a/test/test_dense.jl +++ b/test/test_dense.jl @@ -3,6 +3,21 @@ using JLArrays: JLArray using SparseArraysBase: dense, sparsezeros using Test: @test, @testset +module TestDenseUtils + struct MySparseArrayDOK{T, N, S <: AbstractVector{T}} <: AbstractArray{T, N} + storedvalues::S + storedindices::Dict{CartesianIndex{N}, Int} + size::NTuple{N, Int} + end + Base.size(a::MySparseArrayDOK) = a.size + function Base.getindex(a::MySparseArrayDOK{<:Any, N}, I::Vararg{Int, N}) where {N} + storageindex = get(a.storedindices, CartesianIndex(I), nothing) + isnothing(storageindex) && return zero(eltype(a)) + return a.storedvalues[storageindex] + end + Base.parent(a::MySparseArrayDOK) = a.storedvalues +end + elts = (Float32, ComplexF64) arrayts = (Array, JLArray) @testset "dense (arraytype=$arrayt, eltype=$elt)" for arrayt in arrayts, elt in elts @@ -17,20 +32,7 @@ arrayts = (Array, JLArray) end @testset "Custom sparse array" begin - struct MySparseArrayDOK{T, N, S <: AbstractVector{T}} <: AbstractArray{T, N} - storedvalues::S - storedindices::Dict{CartesianIndex{N}, Int} - size::NTuple{N, Int} - end - Base.size(a::MySparseArrayDOK) = a.size - function Base.getindex(a::MySparseArrayDOK{<:Any, N}, I::Vararg{Int, N}) where {N} - storageindex = get(a.storedindices, CartesianIndex(I), nothing) - isnothing(storageindex) && return zero(eltype(a)) - return a.storedvalues[storageindex] - end - Base.parent(a::MySparseArrayDOK) = a.storedvalues - - s = MySparseArrayDOK( + s = TestDenseUtils.MySparseArrayDOK( dev(elt[2, 4]), Dict([CartesianIndex(1, 2) => 1, CartesianIndex(3, 4) => 2]), (3, 4) ) d = dense(s)