diff --git a/Project.toml b/Project.toml index eb569a3..acc4379 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.7" +version = "0.10.8" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" @@ -41,7 +41,7 @@ GPUArraysCore = "0.1, 0.2" LinearAlgebra = "1.10" MacroTools = "0.5.13" MapBroadcast = "0.1.5" -MatrixAlgebraKit = "0.2.2, 0.3, 0.4" +MatrixAlgebraKit = "0.5" SparseArraysBase = "0.7.1" SplitApplyCombine = "1.2.3" TensorAlgebra = "0.3, 0.4" diff --git a/src/factorizations/orthnull.jl b/src/factorizations/orthnull.jl index f35921d..f1adf27 100644 --- a/src/factorizations/orthnull.jl +++ b/src/factorizations/orthnull.jl @@ -147,7 +147,7 @@ function MatrixAlgebraKit.left_null_svd!( ) return left_null_svd!(A, N, alg, null_truncation_strategy(; atol = 0, rtol = 0)) end -function MatrixAlgebraKit.truncate!( +function MatrixAlgebraKit.truncate( ::typeof(left_null!), (U, S)::Tuple{AbstractBlockSparseMatrix, AbstractBlockSparseMatrix}, strategy::TruncationStrategy, @@ -168,7 +168,7 @@ end function MatrixAlgebraKit.right_null_lq!(A::AbstractBlockSparseMatrix, N, alg) return error("Not implement.") end -function MatrixAlgebraKit.truncate!( +function MatrixAlgebraKit.truncate( ::typeof(right_null!), (S, Vᴴ)::Tuple{AbstractBlockSparseMatrix, AbstractBlockSparseMatrix}, strategy::TruncationStrategy, diff --git a/src/factorizations/truncation.jl b/src/factorizations/truncation.jl index ee822e0..0e8a265 100644 --- a/src/factorizations/truncation.jl +++ b/src/factorizations/truncation.jl @@ -7,7 +7,7 @@ using MatrixAlgebraKit: eigh_trunc!, findtruncated, svd_trunc!, - truncate! + truncate """ BlockDiagonalTruncationStrategy(strategy::TruncationStrategy) @@ -41,12 +41,12 @@ end for f in [:eig_trunc!, :eigh_trunc!] @eval begin - function MatrixAlgebraKit.truncate!( + function MatrixAlgebraKit.truncate( ::typeof($f), (D, V)::NTuple{2, AbstractBlockSparseMatrix}, strategy::TruncationStrategy, ) - return truncate!($f, (D, V), BlockDiagonalTruncationStrategy(strategy)) + return truncate($f, (D, V), BlockDiagonalTruncationStrategy(strategy)) end end end @@ -74,23 +74,23 @@ function to_truncated_indices(values::AbstractBlockVector, I::AbstractVector{Boo return blocks end -function MatrixAlgebraKit.truncate!( +function MatrixAlgebraKit.truncate( ::typeof(svd_trunc!), (U, S, Vᴴ)::NTuple{3, AbstractBlockSparseMatrix}, strategy::BlockDiagonalTruncationStrategy, ) I = findtruncated(diag(S), strategy) - return (U[:, I], S[I, I], Vᴴ[I, :]) + return (U[:, I], S[I, I], Vᴴ[I, :]), I end for f in [:eig_trunc!, :eigh_trunc!] @eval begin - function MatrixAlgebraKit.truncate!( + function MatrixAlgebraKit.truncate( ::typeof($f), (D, V)::NTuple{2, AbstractBlockSparseMatrix}, strategy::BlockDiagonalTruncationStrategy, ) I = findtruncated(diag(D), strategy) - return (D[I, I], V[:, I]) + return (D[I, I], V[:, I]), I end end end diff --git a/test/Project.toml b/test/Project.toml index 410ea2b..ba11df9 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.4" +MatrixAlgebraKit = "0.5" Random = "1" SafeTestsets = "0.1" SparseArraysBase = "0.7"