QuantumStateTransfer.jl – Private API
Documentation for QuantumStateTransfer's private API.
The following documentation covers only the private API of the package. For public details, see the public API documentation.
QuantumStateTransfer.NotImplementedError — TypeNotImplementedError{Nothing}(f, subtype, abstracttype)
NotImplementedError{Symbol}(f, arg, subtype, abstracttype)An exception indicating that a function lacks dispatch to handle a specific argument type.
Semantically, this differs from MethodError in that it connotes a developer-side failure to implement a method rather than erroneous user input. Throughout this package, it is often used to warn when an existing function with multiple dispatch on some abstract type is called on a newly created subtype for which no method has been defined.
Fields
f::Function: the function called.arg::Symbol: the name of the argument with the unsupported type, if the function has multiple arguments. If the function has only one argument, this field should be set tonothing.subtype::Type: the type of the argument. May be the actual concrete type or some intermediate supertype. (For instance, if the relevant input has concrete typeAwith hierarchyA <: B <: Cand theabstracttypefield isC, then bothAandBare perfectly valid choices forsubtype.)abstracttype::Type: the abstract type under which the argument is meant to fall.
Constructors
NotImplementedError(::Function, ::Type, ::Type): constructs a newNotImplementedErrorinstance for a single-argument function. Throws an error if the second type is not abstract or the first type is not a subtype of the second.NotImplementedError(::Function, ::Symbol, ::Type, ::Type): constructs a newNotImplementedErrorinstance for a multi-argument function. Throws an error if the second type is not abstract or the first type is not a subtype of the second.
Supertype Hierarchy
NotImplementedError <: Exception
Notes
This struct was taken from one of the authors' other packages, MatrixBandwidth.jl. To avoid adding an unnecessary dependency, it has been copied here verbatim.
QuantumStateTransfer.StateMixingMaximizationResult — TypeStateMixingMaximizationResult{Tn}[TODO: Write here]
QuantumStateTransfer.StateMixingRecognitionResult — TypeStateMixingRecognitionResult{Tn}[TODO: Write here]
QuantumStateTransfer.StateTransferMaximizationResult — TypeStateTransferMaximizationResult{Tn,Ts}[TODO: Write here]
QuantumStateTransfer.StateTransferRecognitionResult — TypeStateTransferRecognitionResult{Tn,Ts}[TODO: Write here]
QuantumStateTransfer.is_simple — Methodis_simple(g) -> BoolCheck whether a graph g is simple (i.e., undirected with no self-loops).
Supposing that g represents a quantum spin network (whose walk Hamiltonian is the adjacency matrix A of g), self-loops would indicate couplings between qubits and themselves, which is physically nonsensical. On the other hand, undirectedness is required for the transition matrix $eⁱᵗᴬ$ to be unitary.
Arguments
g::AbstractGraph: The graph to check.
Returns
::Bool:trueifgis undirected with no self-loops, andfalseotherwise.
Examples
[TODO: Write here]
QuantumStateTransfer.is_zerodiag_symmetric — Methodis_zerodiag_symmetric(A) -> BoolCheck whether a matrix A is symmetric with a zero diagonal.
Supposing that A is the adjacency (and walk Hamiltonian) of a graph representing a quantum spin network, a nonzero diagonal would indicate couplings between qubits and themselves, which is physically nonsensical. On the other hand, symmetry (Hermicity in the general case, but we only consider here real-valued adjacency matrices) is required for the transition matrix $eⁱᵗᴬ$ to be unitary.
Arguments
A::AbstractMatrix{<:Real}: The matrix to check.
Returns
::Bool:trueifAis symmetric with a zero diagonal, andfalseotherwise.
Examples
[TODO: Write here]
QuantumStateTransfer.mixing_uniformity_deriv_bound — Methodmixing_uniformity_deriv_bound(A, order) -> Float64[TODO: Write here]
Arguments
[TODO: Write here]
Returns
[TODO: Write here]
Notes
[TODO: Proof sketch of bound, plus further relevant references?]
QuantumStateTransfer.transfer_fidelity_deriv_bound — Methodtransfer_fidelity_deriv_bound(A, order) -> Float64[TODO: Write here]
Arguments
[TODO: Write here]
Returns
[TODO: Write here]
Notes
[TODO: Proof sketch of bound, plus further relevant references?]
QuantumStateTransfer.EpsilonOptimization.ABBHyperrectangle — TypeABBHyperrectangle{Tx,Tf}[TODO: Write here]
QuantumStateTransfer.EpsilonOptimization.LBBHyperrectangle — TypeLBBHyperrectangle{Tx,Tf}[TODO: Write here]
QuantumStateTransfer.EpsilonOptimization.validate_solver_params — Methodvalidate_solver_params(solver)[TODO: Write here]
Arguments
[TODO: Write here]
Raises
[TODO: Write here]
Returns
[TODO: Write here]