From 48456a75aa23a87af1d9951c529dbdf858267c07 Mon Sep 17 00:00:00 2001
From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk>
Date: Tue, 30 Jan 2024 15:05:06 +0000
Subject: [PATCH] Switch to permutedims and define `grad` variable

---
 src/gradients/constant_gradient_blocks.jl | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gradients/constant_gradient_blocks.jl b/src/gradients/constant_gradient_blocks.jl
index 4001c42..ca3f78c 100644
--- a/src/gradients/constant_gradient_blocks.jl
+++ b/src/gradients/constant_gradient_blocks.jl
@@ -38,7 +38,8 @@ slew_rate(::AbstractConstantGradientBlock) = zero(SVector{3, Float64})
 qvec(cgb::AbstractConstantGradientBlock) = duration(cgb) .* gradient_strength(cgb)
 
 function bmat_gradient(cgb::AbstractConstantGradientBlock)
-    return (grad .* grad') .* duration(cgb)^3 ./3
+    grad = gradient_strength(cgb)
+    return (grad .* permutedims(grad)) .* duration(cgb)^3 ./3
 end
 
 function bmat_gradient(cgb::AbstractConstantGradientBlock, qstart)
@@ -46,9 +47,10 @@ function bmat_gradient(cgb::AbstractConstantGradientBlock, qstart)
     #   qstart^2 * duration +
     #   qstart * grad * duration^2 +
     #   grad * grad * duration^3 / 3 +
+    grad = gradient_strength(cgb)
     return (
-        qstart .* qstart' .* duration(cgb) .+
-        qstart .* grad' .* duration(cgb)^2 .+
+        qstart .* permutedims(qstart) .* duration(cgb) .+
+        qstart .* permutedims(grad) .* duration(cgb)^2 .+
         bmat_gradient(cgb)
     )
 end
-- 
GitLab