Observables
QBase.Observables — ModuleObservables describe measurable quantities of a quantum system. Quantum measurement is a probabilistic process. The measurement outcomes are not definite, but described by conditional probabilities.
The QBase.Observables submodule provides types and constructors for representing quantum observables.
Types
QBase.Observables.AbstractPOVM — TypeAbstractPOVM <: AbstractMatrix{Complex{Float64}}The abstract type representing positive-operator valued measures (POVMs). An AbstractPOVM cannot be instantiated, it serves as a supertype from which concrete types are derived.
QBase.Observables.is_povm — Functionis_povm( Π :: Vector ) :: BoolReturns true if Π is a POVM. The following constraints must be satisfied:
- Each POVM element is hermitian
- Each POVM element positive semi-definite
- The POVM is complete:
sum(Π) == I
QBase.Observables.POVM — TypePOVM( Π :: Vector{Matrix} ) <: AbstractPOVMPositve-operator valued measures (POVMs) represent a general quantum measurement. Each POVM-element is a hermitian, positive-semidefinite matrix. The sum of all POVM-elements yields the identity matrix. The constructor, POVM(Π) throws a DomainError if the provided array of matrices, Π is not a valid POVM.
QBase.Observables.QubitPOVM — TypeQubitPOVM( Π :: Vector{Matrix} ) <: AbstractPOVMA general qubit measurement. A DomainError is thrown if Π does not contain 2x2 elements or if it is not a valid POVM.
Constructors
QBase.Observables.mirror_symmetric_qubit_3povm — Functionmirror_symmetric_qubit_3povm( θ :: Real ) :: QubitPOVMConstructs a QubitPOVM aligned with the three mirror symmetric qubit states. The first measurement is aligned with the $|0\rangle$ state and the remaining two are symmetric across the z-axis.
A DomainError is thrown if argument θ ∉ [π/4,π/2].
QBase.Observables.asymmetric_qubit_3povm — Functionasymmetric_qubit_3povm( θ1::Real, θ2::Real ) :: QubitPOVMConstructs a general non-orthogonal 3-element QubitPOVM.
Inputs:
θ1 ∈ (0,π/2] or [-π/2,0), the angle element 2 makes with $|0\rangle$ state.θ2 ∈ [-π/2,0) or (0,π/2], the angle element 3 makes with $|0\rangle$ state.
A DomainError is thrown if θ1 and θ2 are not in the valid ranges. Note that one angle must be positive and the other negative.
QBase.Observables.trine_qubit_povm — Constanttrine_qubit_povm :: QubitPOVMThe POVM with elements parallel to the trine qubit states.
QBase.Observables.sic_qubit_povm — Constantsic_qubit_povm :: QubitPOVMThe POVM with elements parallel to the symmetric informationally complete (SIC) qubits.
QBase.Observables.sqrt_povm — Functionsqrt_povm(priors :: QMath.Marginals, states :: Vector{<:States.AbstractDensityMatrix}) :: POVMReturns the "pretty good" square-root povm for the given density operator states and priors.
QBase.Observables.planar_symmetric_qubit_povm — Functionplanar_symmetric_qubit_povm( n :: Int64 ) :: QubitPOVMConstructs an n-element QubitPOVM from the planar_symmetric_qubit_states. Each state is multipled by a factor of 2/n to satisfy the completeness relation.
A DomainError is thrown if n ≥ 2 is not satisfied.
Quantum Measurement
QBase.Observables.kraus_operators — Functionkraus_operators(Π::AbstractPOVM) :: Array{Array{Complex{Float64},2},1}Returns the Kraus operators for the provided POVM. In general, the Kraus operators form a continuum and are non-unique. In this method, the construction
$k_i = \sqrt{\Pi_i)}\otimes |i\rangle$
QBase.Observables.naimark_dilation — Functionnaimark_dilation( Π::AbstractPOVM )Returns the dilated projectors which are equivalent to the provided POVM. During measurement, the measured state must be tensored with the ancilla.