From 0f13941f584ecf6d433e7393868dc2fd88d4e645 Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Mon, 1 Jun 2026 11:05:33 -0400 Subject: [PATCH 1/2] Try to use vector multiplication for truncation error computation --- ext/TensorKitCUDAExt/truncation.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/TensorKitCUDAExt/truncation.jl b/ext/TensorKitCUDAExt/truncation.jl index 2633b3483..d229f4262 100644 --- a/ext/TensorKitCUDAExt/truncation.jl +++ b/ext/TensorKitCUDAExt/truncation.jl @@ -74,3 +74,10 @@ function MatrixAlgebraKit._ind_intersect(A::CuVector{Bool}, B::CuVector{Int}) result[B] .= @view A[B] return result end + +function MatrixAlgebraKit.truncation_error!(values::CuSectorVector, ind) + for (c, ind_c) in pairs(ind) + @. values[c] *= !ind_c + end + return norm(values) +end From c4a6f043ca11a40ffa298c7cad6b800e0185eeaa Mon Sep 17 00:00:00 2001 From: Katharine Hyatt Date: Tue, 2 Jun 2026 05:01:46 -0400 Subject: [PATCH 2/2] Type constraint --- ext/TensorKitCUDAExt/truncation.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ext/TensorKitCUDAExt/truncation.jl b/ext/TensorKitCUDAExt/truncation.jl index d229f4262..a4ee0009d 100644 --- a/ext/TensorKitCUDAExt/truncation.jl +++ b/ext/TensorKitCUDAExt/truncation.jl @@ -75,9 +75,10 @@ function MatrixAlgebraKit._ind_intersect(A::CuVector{Bool}, B::CuVector{Int}) return result end -function MatrixAlgebraKit.truncation_error!(values::CuSectorVector, ind) +function MatrixAlgebraKit.truncation_error!(values::CuSectorVector, ind::AbstractVector{Bool}) for (c, ind_c) in pairs(ind) - @. values[c] *= !ind_c + sector_vals = values[c] + @. sector_vals *= !ind_c end return norm(values) end