From b40d0842fe3fe91d22276867c7e5cda5e8f905f5 Mon Sep 17 00:00:00 2001 From: Michiel Cottaar <michiel.cottaar@ndcn.ox.ac.uk> Date: Thu, 8 Feb 2024 13:29:57 +0000 Subject: [PATCH] Fix qval/qval_square variables --- src/building_blocks.jl | 12 +++++++++++- src/variables.jl | 6 ------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/building_blocks.jl b/src/building_blocks.jl index 7434ec6..0e069e8 100644 --- a/src/building_blocks.jl +++ b/src/building_blocks.jl @@ -1,7 +1,7 @@ module BuildingBlocks import JuMP: value, Model, @constraint, @objective, objective_function, AbstractJuMPScalar import Printf: @sprintf -import ..Variables: Variables, variables, start_time, duration, end_time, gradient_strength, slew_rate, effective_time, VariableType, alternative_variables +import ..Variables: Variables, variables, start_time, duration, end_time, gradient_strength, slew_rate, effective_time, VariableType, alternative_variables, qval_square import ..BuildSequences: global_model, global_scanner, fixed import ..Scanners: Scanner @@ -122,6 +122,9 @@ end for variable_func in keys(variables) + if variable_func in [:qval_square, :qval] + continue + end @eval function Variables.$variable_func(bb::BuildingBlock) if Variables.$variable_func in keys(alternative_variables) alt_var, forward, backward, _ = alternative_variables[Variables.$variable_func] @@ -144,6 +147,13 @@ for variable_func in keys(variables) end end +function Variables.qval_square(bb::BuildingBlock, args...; kwargs...) + vec = Variables.qvec(bb, args...; kwargs...) + return vec[1]^2 + vec[2]^2 + vec[3]^2 +end + +Variables.qval(bb::BuildingBlock, args...; kwargs...) = sqrt(Variables.qval_square(bb, args...; kwargs...)) + struct BuildingBlockPrinter{T<:BuildingBlock} bb::T diff --git a/src/variables.jl b/src/variables.jl index b423a76..c1d971c 100644 --- a/src/variables.jl +++ b/src/variables.jl @@ -65,12 +65,6 @@ for (block_symbol, all_functions) in all_variables_symbols end -# helper functions -function qval_square(bb, args...; kwargs...) - vec = qvec(bb, args...; kwargs...) - return vec[1]^2 + vec[2]^2 + vec[3]^2 -end - alternative_variables = Dict( qval => (qval_square, n->n^2, sqrt, false), slice_thickness => (inverse_slice_thickness, inv, inv, true), -- GitLab