From 4a454c77abd28caa6223559c01505002d9b24215 Mon Sep 17 00:00:00 2001 From: mtfishman Date: Thu, 12 Jun 2025 16:45:16 -0400 Subject: [PATCH] Enable specialization when dividing by scalars --- Project.toml | 2 +- src/abstractblocksparsearray/map.jl | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 9bb88efc..ead2a2e5 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.7.8" +version = "0.7.9" [deps] Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" diff --git a/src/abstractblocksparsearray/map.jl b/src/abstractblocksparsearray/map.jl index 4dcec66f..04513fc4 100644 --- a/src/abstractblocksparsearray/map.jl +++ b/src/abstractblocksparsearray/map.jl @@ -111,9 +111,15 @@ function Base.isreal(a::AnyAbstractBlockSparseArray) return @interface interface(a) isreal(a) end +# Helps with specialization of block operations by avoiding +# having anonymous functions constructed inside the map/broadcast +# code logic. function Base.:*(x::Number, a::AnyAbstractBlockSparseArray) return map(Base.Fix1(*, x), a) end function Base.:*(a::AnyAbstractBlockSparseArray, x::Number) return map(Base.Fix2(*, x), a) end +function Base.:/(a::AnyAbstractBlockSparseArray, x::Number) + return map(Base.Fix2(/, x), a) +end