From 5c8e1231220940b3e06fdfa0dccce62217a66b93 Mon Sep 17 00:00:00 2001 From: Daniel Ingraham Date: Wed, 20 May 2026 15:41:16 -0400 Subject: [PATCH] Avoid `MArrays` with FiniteDiff backend --- .../ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl | 4 ++-- .../ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl b/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl index 82b769ef6..4a3712c0f 100644 --- a/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl +++ b/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl @@ -14,7 +14,7 @@ function DI.prepare_pushforward_nokwarg( _sig = DI.signature(f, backend, x, tx, contexts...; strict) fc = DI.fix_tail(f, map(DI.unwrap, contexts)...) y = fc(x) - cache = if x isa Number || y isa Number + cache = if x isa Number || y isa Number || (! DI.ismutable_array(x)) || (! DI.ismutable_array(y)) nothing else JVPCache(similar(x), y, fdtype(backend)) @@ -130,7 +130,7 @@ function DI.prepare_derivative_nokwarg( _sig = DI.signature(f, backend, x, contexts...; strict) fc = DI.fix_tail(f, map(DI.unwrap, contexts)...) y = fc(x) - cache = if y isa Number + cache = if y isa Number || (! DI.ismutable_array(y)) nothing elseif y isa AbstractArray df = similar(y) diff --git a/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl b/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl index e30ba1ec7..90c789f81 100644 --- a/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl +++ b/DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl @@ -18,7 +18,7 @@ function DI.prepare_pushforward_nokwarg( contexts::Vararg{DI.Context, C} ) where {C} _sig = DI.signature(f!, y, backend, x, tx, contexts...; strict) - cache = if x isa Number + cache = if x isa Number || (! DI.ismutable_array(x)) nothing else JVPCache(similar(x), similar(y), fdtype(backend))