From 890e77db896cb6b6e1a77eca99a6c7226543d300 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Thu, 11 Apr 2024 16:17:48 +0100 Subject: [PATCH] Improve check if `get_gradient` should be called --- src/variables.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/variables.jl b/src/variables.jl index af796e9..6d85e71 100644 --- a/src/variables.jl +++ b/src/variables.jl @@ -291,7 +291,9 @@ end for base_fn in [:qval, :gradient_strength, :slew_rate] fn3 = Symbol(String(base_fn) * "3") @eval function $fn3(bb::AbstractBlock, args...; kwargs...) - if hasproperty(bb, :orientation) + if hasmethod(get_gradient, (typeof(bb), )) + return $fn3(get_gradient(bb), args...; kwargs...) + else value = $base_fn(bb, args...; kwargs...) if value isa Number && iszero(value) return zero(SVector{3, Float64}) @@ -300,8 +302,6 @@ for base_fn in [:qval, :gradient_strength, :slew_rate] else return value .* bb.orientation end - else - return $fn3(get_gradient(bb), args...; kwargs...) end end @eval $fn3(nt::NamedTuple, args...; kwargs...) = map(v -> $fn3(v, args...; kwargs...), nt) -- GitLab