From 003fe835c09ac8a2a94ada763264c206fea13a55 Mon Sep 17 00:00:00 2001 From: Spencer Lee Date: Wed, 27 Mar 2024 11:34:48 -0400 Subject: [PATCH] Made function for easily getting single control value with respect to the global control vector --- src/Controls/Control.jl | 16 ++++++++++++++++ src/QuantumGateDesign.jl | 1 + 2 files changed, 17 insertions(+) diff --git a/src/Controls/Control.jl b/src/Controls/Control.jl index edc253f..2e5abab 100644 --- a/src/Controls/Control.jl +++ b/src/Controls/Control.jl @@ -243,3 +243,19 @@ Return the index of the region to which `t` belongs. return region_index end + +""" +Given a set of controls and the control vector for all of them, evaluate a +single control on its portion of the control_vector +""" +function eval_p_single(controls, t, pcof, control_index) + local_control = controls[control_index] + local_pcof = get_control_vector_slice(pcof, controls, control_index) + return eval_p(local_control, t, local_pcof) +end + +function eval_q_single(controls, t, pcof, control_index) + local_control = controls[control_index] + local_pcof = get_control_vector_slice(pcof, controls, control_index) + return eval_q(local_control, t, local_pcof) +end diff --git a/src/QuantumGateDesign.jl b/src/QuantumGateDesign.jl index 49e1ed1..328652f 100644 --- a/src/QuantumGateDesign.jl +++ b/src/QuantumGateDesign.jl @@ -108,5 +108,6 @@ export convert_to_numpy, Qobj, unpack_Qobj, simulate_prob_no_control export get_number_of_control_parameters export multi_qudit_hamiltonian export control_ops +export eval_p_single, eval_q_single end # module QuantumGateDesign