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 ) :: Bool
Returns 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} ) <: AbstractPOVM
Positve-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} ) <: AbstractPOVM
A 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 ) :: QubitPOVM
Constructs 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 ) :: QubitPOVM
Constructs 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 :: QubitPOVM
The POVM with elements parallel to the trine qubit states.
QBase.Observables.sic_qubit_povm
— Constantsic_qubit_povm :: QubitPOVM
The POVM with elements parallel to the symmetric informationally complete (SIC) qubits.
QBase.Observables.sqrt_povm
— Functionsqrt_povm(priors :: QMath.Marginals, states :: Vector{<:States.AbstractDensityMatrix}) :: POVM
Returns 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 ) :: QubitPOVM
Constructs 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.