diff --git a/Project.toml b/Project.toml index 73cd7c6..648e128 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "BlockSparseArrays" uuid = "2c9a651f-6452-4ace-a6ac-809f4280fbb4" authors = ["ITensor developers and contributors"] -version = "0.10.1" +version = "0.10.2" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" @@ -41,7 +41,7 @@ GPUArraysCore = "0.1.0, 0.2" LinearAlgebra = "1.10" MacroTools = "0.5.13" MapBroadcast = "0.1.5" -MatrixAlgebraKit = "0.2.2" +MatrixAlgebraKit = "0.2.2, 0.3" SparseArraysBase = "0.7.1" SplitApplyCombine = "1.2.3" TensorAlgebra = "0.3.2" diff --git a/test/Project.toml b/test/Project.toml index c084b9f..2dd5acd 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -31,7 +31,7 @@ DiagonalArrays = "0.3" GPUArraysCore = "0.2" JLArrays = "0.2" LinearAlgebra = "1" -MatrixAlgebraKit = "0.2.5" +MatrixAlgebraKit = "0.2.5, 0.3" Random = "1" SafeTestsets = "0.1" SparseArraysBase = "0.7" diff --git a/test/test_abstract_blocktype.jl b/test/test_abstract_blocktype.jl index 5b2ca51..d66d4b2 100644 --- a/test/test_abstract_blocktype.jl +++ b/test/test_abstract_blocktype.jl @@ -106,29 +106,39 @@ arrayts = (Array, JLArray) a = BlockSparseMatrix{elt,AbstractMatrix{elt}}(undef, [2, 3], [2, 3]) a[Block(1, 1)] = dev(randn(elt, 2, 2)) for f in (left_orth, left_polar, qr_compact, qr_full) - if arrayt === Array + if arrayt ≢ Array && f ≡ left_orth + @test_broken f(a) + else u, c = f(a) @test u * c ≈ a - @test isisometry(u; side=:left) - else - @test_broken f(a) + if arrayt ≡ Array + @test isisometry(u; side=:left) + else + # TODO: Fix comparison with UniformScaling on GPU. + @test_broken isisometry(u; side=:left) + end end end for f in (right_orth, right_polar, lq_compact, lq_full) - if arrayt === Array + if arrayt ≢ Array && f ≡ right_orth + @test_broken f(a) + else c, u = f(a) @test c * u ≈ a - @test isisometry(u; side=:right) - else - @test_broken f(a) + if arrayt ≡ Array + @test isisometry(u; side=:right) + else + # TODO: Fix comparison with UniformScaling on GPU. + @test_broken isisometry(u; side=:right) + end end end for f in (svd_compact, svd_full, svd_trunc) - if arrayt === Array + if arrayt ≢ Array && (f ≡ svd_full || f ≡ svd_trunc) + @test_broken f(a) + else u, s, v = f(a) @test u * s * v ≈ a - else - @test_broken f(a) end end end