Library
BellDiagonalQudits.AnalysedCoordState
BellDiagonalQudits.AnalysisSpecification
BellDiagonalQudits.BoundedCoordEW
BellDiagonalQudits.BoundedEW
BellDiagonalQudits.ClassConflictException
BellDiagonalQudits.CoordState
BellDiagonalQudits.DensityState
BellDiagonalQudits.EntanglementWitness
BellDiagonalQudits.StandardBasis
BellDiagonalQudits.BBPSSW_routine
BellDiagonalQudits.DEJMPS_routine
BellDiagonalQudits.FIMAX_routine
BellDiagonalQudits.FT_OP
BellDiagonalQudits.GXOR_OP_ADD
BellDiagonalQudits.GXOR_OP_SUB
BellDiagonalQudits.P1_P2_routine
BellDiagonalQudits.P1_routine
BellDiagonalQudits.P2_routine
BellDiagonalQudits.add_errorkeys
BellDiagonalQudits.altbell_creatingoperator
BellDiagonalQudits.analyse_coordstate
BellDiagonalQudits.belldiagonal_projection
BellDiagonalQudits.calculate_mub_correlation
BellDiagonalQudits.canonic_eigenbasis_weylprime
BellDiagonalQudits.classify_analyzed_states!
BellDiagonalQudits.classify_entanglement
BellDiagonalQudits.concurrence_qp_check
BellDiagonalQudits.concurrence_qp_gendiagonal_check
BellDiagonalQudits.createProjectorOperator
BellDiagonalQudits.create_alt_indexbasis
BellDiagonalQudits.create_altbellstate
BellDiagonalQudits.create_basis_state_operators
BellDiagonalQudits.create_bipartite_maxentangled
BellDiagonalQudits.create_bipartite_weyloperator_basis
BellDiagonalQudits.create_canonic_enconding
BellDiagonalQudits.create_comppar_unitary
BellDiagonalQudits.create_densitystate
BellDiagonalQudits.create_dictionary_from_basis
BellDiagonalQudits.create_dimelement_sublattices
BellDiagonalQudits.create_halfspheric_witnesses
BellDiagonalQudits.create_index_sublattice_state
BellDiagonalQudits.create_kernel_hpolytope
BellDiagonalQudits.create_kernel_polytope
BellDiagonalQudits.create_kernel_vertexstates
BellDiagonalQudits.create_random_bounded_ews
BellDiagonalQudits.create_random_coordstates
BellDiagonalQudits.create_random_witnesses
BellDiagonalQudits.create_red_parmatrix_from_parvector
BellDiagonalQudits.create_standard_indexbasis
BellDiagonalQudits.create_standard_mub
BellDiagonalQudits.create_weyloperator_basis
BellDiagonalQudits.depolarize_coords
BellDiagonalQudits.direct_optimization
BellDiagonalQudits.efficiency
BellDiagonalQudits.extend_vpolytope_by_densitystates
BellDiagonalQudits.generate_symmetries
BellDiagonalQudits.generic_vectorproduct
BellDiagonalQudits.get_abelian_subgroup_generators
BellDiagonalQudits.get_bounded_coordew
BellDiagonalQudits.get_bounded_ew
BellDiagonalQudits.get_codespace_errorops_for_meas
BellDiagonalQudits.get_comppar_unitary_from_parvector
BellDiagonalQudits.get_concurrence_qp
BellDiagonalQudits.get_concurrence_qp_gendiagonal
BellDiagonalQudits.get_coset_partition
BellDiagonalQudits.get_cosets_prob_s
BellDiagonalQudits.get_direct_functions_for_wit_traceoptimization
BellDiagonalQudits.get_erroraction_from_encoding
BellDiagonalQudits.get_erroroperator_from_errorelement
BellDiagonalQudits.get_intertwiner
BellDiagonalQudits.get_max_fidelity_stabilizer_coset
BellDiagonalQudits.get_permutation_from_momentuminversion
BellDiagonalQudits.get_permutation_from_quarterrotation
BellDiagonalQudits.get_permutation_from_translation
BellDiagonalQudits.get_permutation_from_verticalshear
BellDiagonalQudits.get_prob_for_E
BellDiagonalQudits.get_prob_for_errorkeys
BellDiagonalQudits.get_properdivisors
BellDiagonalQudits.get_s_dict_for_generators
BellDiagonalQudits.get_s_errorkeys
BellDiagonalQudits.get_s_for_generator
BellDiagonalQudits.get_s_normalized_coset_probs
BellDiagonalQudits.get_s_prob_dict
BellDiagonalQudits.get_stdbasis_probabilities
BellDiagonalQudits.get_symcoords
BellDiagonalQudits.get_witness_extrema
BellDiagonalQudits.isppt
BellDiagonalQudits.ispsd
BellDiagonalQudits.iterative_BBPSSW_protocol
BellDiagonalQudits.iterative_DEJMPS_protocol
BellDiagonalQudits.iterative_FIMAX_protocol
BellDiagonalQudits.iterative_P1_P2_protocol
BellDiagonalQudits.iterative_specific_stabilizer_protocol
BellDiagonalQudits.kernel_check
BellDiagonalQudits.map_indices_to_normcoords
BellDiagonalQudits.modbra
BellDiagonalQudits.modket
BellDiagonalQudits.mub_check
BellDiagonalQudits.numeric_ew_check
BellDiagonalQudits.ppt_check
BellDiagonalQudits.realignment_check
BellDiagonalQudits.rounddigits
BellDiagonalQudits.spinrep_check
BellDiagonalQudits.stabilizer_routine
BellDiagonalQudits.sym_analyse_coordstate
BellDiagonalQudits.uniform_bell_sampler
BellDiagonalQudits.weyloperator
BellDiagonalQudits.weyltrf
BellDiagonalQudits.δ
BellDiagonalQudits.δ_mod
Public
BellDiagonalQudits.AnalysedCoordState
— TypeRepresenting an entanglement analyzed Bell diagonal state.
- coordState: The analyzed
CoordState
- kernel:
true
if kernel check successful, elsefalse
.missing
if entanglement check not applied. - spinrep:
true
if spinrep check successful, elsefalse
.missing
if entanglement check not applied. - ppt:
true
if ppt check successful, elsefalse
.missing
if entanglement check not applied. - realign:
true
if realignment check successful, elsefalse
.missing
if entanglement check not applied. - concurrence:
true
if concurrence check successful, elsefalse
.missing
if entanglement check not applied. - mub:
true
if mub check successful, elsefalse
.missing
if entanglement check not applied. - numericEW:
true
if numericEW check successful, elsefalse
.missing
if entanglement check not applied.
BellDiagonalQudits.AnalysisSpecification
— TypeSpecification which entanglement checks to use.
- kernel_check
- spinrep_check
- ppt_check
- realignment_check
- concurrenceqpcheck
- mub_check
- numericewcheck
- useSymmetries
BellDiagonalQudits.BoundedCoordEW
— TypeRepresents an entanglement witness $W$ with extrema to detect entangled Bell diagonal states.
- coords: Coordinates in Bell basis.
- upperBound: Upper bound of $tr W \rho$ satisfied by all separable states $\rho$. Violation detects entanglement.
- lowerBound: Lower bound of $tr W \rho$ satisfied by all separable states $\rho$. Violation detects entanglement.
- checkedIterations: Number of iterations used in the optimization of bounds.
BellDiagonalQudits.ClassConflictException
— TypeException for conflicts in analysis results.
- state: The
AnalysedCoordState
for which a conflict occurs.
BellDiagonalQudits.CoordState
— TypeRepresents a Bell diagonal state in Bell basis.
- coords: Coordinates in Bell basis.
- eClass: Entanglement class of the represented state.
BellDiagonalQudits.DensityState
— TypeRepresents a Bell diagonal state.
- coords: Coordinates in Bell basis.
- densityMatrix: Hermitian density matrix in computational basis.
- eClass: Entanglement class of the represented state.
BellDiagonalQudits.StandardBasis
— TypeRepresents a Bell basis related to Weyl operators.
- basis: Array with elements containing Bell basis density matrices, Weyl- and flat indices.
BellDiagonalQudits.BBPSSW_routine
— MethodBBPSSW_routine(ρ, n, d, stdbasis)
Applies one iteration of BBPSSW routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.DEJMPS_routine
— MethodDEJMPS_routine(ρ, n, d, stdbasis)
Applies one iteration of DEJMPS routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.FIMAX_routine
— MethodFIMAX_routine(ρ, n, d, stdbasis)
Applies one iteration of FIMAX routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.P1_P2_routine
— MethodP1_P2_routine(ρ, n, d, stdbasis)
Applies one iteration of P1_P2 routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.analyse_coordstate
— Functionanalyse_coordstate(
d,
coordState::CoordState,
anaSpec::AnalysisSpecification,
stdBasis::StandardBasis=missing,
kernelPolytope::Union{HPolytope{Float64,Array{Float64,1}},VPolytope{Float64,Array{Float64,1}},Missing}=missing,
bipartiteWeylBasis::Union{Vector{Array{Complex{Float64},2}},Missing}=missing,
dictionaries::Union{Any,Missing}=missing,
mubSet::Union{Vector{Vector{Vector{ComplexF64}}},Missing}=missing,
boundedEWs::Union{Array{BoundedCoordEW},Missing}=missing,
precision=10,
relUncertainity=0.0
)
Return an AnalysedCoordState
for a coordState
in d
dimensions based on the given anaSpec
and corresponding analysis objects.
If an entanglement check should not be carried out or if an analysis object in not passed as variable, the corresponding property in anaSpec
needs to be false
. In this case, return the corresponding property of the AnalysedCoordState
as missing
.
BellDiagonalQudits.classify_analyzed_states!
— Methodclassify_analyzed_states!(anaCoordStates::Array{AnalysedCoordState})
Set entanglement class for array of analysedCoordStates
.
BellDiagonalQudits.concurrence_qp_gendiagonal_check
— Functionconcurrence_qp_gendiagonal_check(coordState, d, basisStates, precision=10)
Return true
if the quasi-pure concurrence (see concurrence.jl
) is positive for a coordState
and given basis states basisStates
in the given precision
.
BellDiagonalQudits.create_alt_indexbasis
— Methodcreate_alt_indexbasis(d, l, α, precision)
Return alternative indexed Bell basis for d
dimensions as StandardBasis
rounded to precision
digits. Elements of secondary index l
are replaced by alternative Bell state defined by d
-element vector of phases α
.
BellDiagonalQudits.create_altbellstate
— Functioncreate_altbellstate(state(d,k,l,α, returnDensity)
Return an alternative Bell state in the computational basis. Return denisty matrix unless returnDensity=false, in which case return state vector.
BellDiagonalQudits.create_bipartite_weyloperator_basis
— Methodcreate_bipartite_weyloperator_basis(d)
Return vector of length $d^4$, containing the product basis of two Weyl operator bases as basis for the $(d^2,d^2)$ matrix space.
BellDiagonalQudits.create_densitystate
— Methodcreate_densitystate(coordState::CoordState, standardBasis::StandardBasis)
Return DensityState
containing the density matrix in computational basis based on
coordStatecoordinates in Bell
standardBasis`.
BellDiagonalQudits.create_dictionary_from_basis
— Methodcreate_dictionary_from_basis(stdBasis)
Return vector containing a dictionary and it's inverse, relating the $d^2$ flat indices to the double indices of stdBasis
.
BellDiagonalQudits.create_kernel_polytope
— Methodcreate_kernel_polytope(d, standardBasis::StandardBasis)
Return LazySets.HPolytope representation of the kernel polytope for dimension d
and Bell basis standardBasis
.
BellDiagonalQudits.create_random_bounded_ews
— Functioncreate_random_bounded_ews(
d,
standardBasis::StandardBasis,
n,
sphericalOnly::Bool,
iterations::Integer,
method=Optim.NelderMead,
useConstrainedOpt=false
)
Return array of n
BoundedEW
with $d^2$ standardBasis
coordinates uniformly distributed in [-1, 1] if sphericalOnly
is false or uniformly distributed on unit sphere otherwise.
Use iterations
runs to improve optimizatio with Optim.jl optimization method method
.
BellDiagonalQudits.create_random_coordstates
— Functioncreate_random_coordstates(nSamples, d, object=:magicSimplex, precision=10, roundToSteps::Int=0, nTriesMax=10000000)
Return an array of nSamples
$d^2$ dimensional CoordStates.
Use the object
to specify the coordinate ranges to [0,1] for 'magicSimplex' or [0, 1/d] for 'enclosurePolytope'. If roundToSteps
> 0, round the coordinates to the vertices that divide the range in roundToSteps
` equally sized sections. Be aware that the resulting distribution of points is generally not uniform.
BellDiagonalQudits.create_standard_indexbasis
— Methodcreate_standard_indexbasis(d, precision)
Return indexed Bell basis for d
dimensions as StandardBasis
rounded to precision
digits.
BellDiagonalQudits.create_standard_mub
— Methodcreate_standard_mub(d)
Return vector of mutually unbiased bases for dimensions d
three or four.
BellDiagonalQudits.efficiency
— Methodefficiency(distillable, iterations, successProbs, n)
Returns efficiency of n
-copy distillation protocol with iterations
iterations of success probabilities successProbs
.
BellDiagonalQudits.extend_vpolytope_by_densitystates
— Methodextend_vpolytope_by_densitystates(
sepPolytope::VPolytope{Float64,Array{Float64,1}},
sepDensityStates::Array{DensityState},
precision::Integer
)
Return an extended Lazysets.VPolytope representation of polytope of separable states based on given polytope sepPolytope
and new separable sepDensityStates
as new vertices.
BellDiagonalQudits.generate_symmetries
— Functiongenerate_symmetries(stdBasis::StandardBasis, d, orderLimit=0)
Return array of Permutations.Permutation
of all symmetries up to order orderLimit
in d
dimensions generated by the generators represented in standardBasis
.
BellDiagonalQudits.get_bounded_coordew
— Methodget_bounded_coordew(bEw::BoundedEW)::BoundedCoordEW
Map BoundedEW bEw
to corresponding BoundedCoordEW
.
BellDiagonalQudits.get_symcoords
— Methodget_symcoords(coords::Array{Float64,1}, symPermutations::Array{Permutation})
Return array containing all symmetric Bell coordinates of given symmetries symPermutations
applied to Bell coordinates coords
.
BellDiagonalQudits.iterative_BBPSSW_protocol
— Functioniterative_BBPSSW_protocol(ρ, targetFid, n, d, stdBasis, maxIts)
Applies iterations of the BBPSSW routine to the n
-copy input state ρ
in d
dimensions. Iterates until targetFid
or maximal number of iterations maxIts
is reached. Returns distillable=true
if targetFid
could be reached and fidelities and success probabilies with respect to the stdbasis
for each iteration.
BellDiagonalQudits.iterative_DEJMPS_protocol
— Functioniterative_DEJMPS_protocol(ρ, targetFid, n, d, stdBasis, maxIts)
Applies iterations of the DEJMPS routine to the n
-copy input state ρ
in d
dimensions. Iterates until targetFid
or maximal number of iterations maxIts
is reached. Returns distillable=true
if targetFid
could be reached and fidelities and success probabilies with respect to the stdbasis
for each iteration.
BellDiagonalQudits.iterative_FIMAX_protocol
— Functioniterative_FIMAX_protocol(ρ, targetFid, n, d, stdBasis, maxIts)
Applies iterations of the FIMAX routine to the n
-copy input state ρ
in d
dimensions. Iterates until targetFid
or maximal number of iterations maxIts
is reached. Returns distillable=true
if targetFid
could be reached and fidelities and success probabilies with respect to the stdbasis
for each iteration.
BellDiagonalQudits.iterative_P1_P2_protocol
— Functioniterative_P1_P2_protocol(ρ, targetFid, n, d, stdBasis, maxIts)
Applies iterations of the P1_P2 routine to the n
-copy input state ρ
in d
dimensions. Iterates until targetFid
or maximal number of iterations maxIts
is reached. Returns distillable=true
if targetFid
could be reached and fidelities and success probabilies with respect to the stdbasis
for each iteration.
BellDiagonalQudits.sym_analyse_coordstate
— Functionsym_analyse_coordstate(
d,
coordState::CoordState,
symmetries::Array{Permutation},
anaSpec::AnalysisSpecification,
stdBasis::StandardBasis=missing,
kernelPolytope::Union{HPolytope{Float64,Array{Float64,1}},VPolytope{Float64,Array{Float64,1}},Missing}=missing,
bipartiteWeylBasis::Union{Vector{Array{Complex{Float64},2}},Missing}=missing,
dictionaries::Union{Any,Missing}=missing,
mubSet::Union{Vector{Vector{Vector{ComplexF64}}},Missing}=missing,
boundedCoordEWs::Union{Array{BoundedCoordEW},Missing}=missing,
precision=10,
relUncertainity=0.0
)
Return an AnalysedCoordState
for a coordState
in d
dimensions based on the given anaSpec
and corresponding analysis objects and symmetry analysis.
If an entanglement check should not be carried out or if an analysis object in not passed as variable, the corresponding property in anaSpec
needs to be false
. In this case, return the corresponding property of the AnalysedCoordState
as missing
.
BellDiagonalQudits.uniform_bell_sampler
— Functionuniform_bell_sampler(n, d, object=:magicSimplex, precision=10)
Create array of n
uniformly distributed $d^2$ Bell diagonal states represented as CoordState
rounded to precision
digits.
Use object=:enclosurePolytope
to create CoordStates in the enclosure polytope, having all $coords \leq 1/d$.
Internal
BellDiagonalQudits.BoundedEW
— TypeRepresents an entanglement witness $W$ with extrema and extremizers to detect entangled Bell diagonal states.
- coords: Coordinates in Bell basis.
- upperBound: Upper bound of $tr W \rho$ satisfied by all separable states $\rho$. Violation detects entanglement.
- lowerBound: Lower bound of $tr W \rho$ satisfied by all separable states $\rho$. Violation detects entanglement.
- maximizingDensityMatrix: Density matrix of separable state $\rho$ in computational basis, maximizing $tr W \rho$.
- minimizingDensityMatrix: Density matrix of separable state $\rho$ in computational basis. minimizing $tr W \rho$.
- checkedIterations: Number of iterations used in the optimization of bounds.
BellDiagonalQudits.EntanglementWitness
— TypeRepresents an operator to detect Bell diagonal entangled states.
- coords: Coordinates in Bell basis
- operatorMatrix: Hermitian matrix representing the linear operator in computational basis.
BellDiagonalQudits.FT_OP
— MethodFT_OP(d)
Returns the d
-dimensional Fourier gate.
BellDiagonalQudits.GXOR_OP_ADD
— MethodGXOR_OP_ADD(d)
Returns the d
-dimensional generalization of the GXOR gate acting as |i>k|j> => |i>|i+j>.
BellDiagonalQudits.GXOR_OP_SUB
— MethodGXOR_OP_SUB(d)
Returns the d
-dimensional generalization of the GXOR gate acting as |i>k|j> => |i>|i-j>.
BellDiagonalQudits.P1_routine
— MethodP1_routine(ρ, n, d, stdbasis)
Applies one iteration of P1 routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.P2_routine
— MethodP2_routine(ρ, n, d, stdbasis)
Applies one iteration of P2 routine to the n
-copy input state 'rho
in d
dimensions. Returns the output state and the probabilies of success with respect to the stdbasis
.
BellDiagonalQudits.add_errorkeys
— Methodadd_errorkeys(x,y,d,n)
Adds two error elements mod d.
BellDiagonalQudits.altbell_creatingoperator
— Methodaltbell_creatingoperator(d, k, l, α)
Return the $(d,d)$- dimensional matrix representation of an alternative operator that is used to create Bell states $V_{k,l}$. $V_{k,l} ⊗ Id Ω_00$ creates $1/√d * ∑ω^(ks)*α_(s,l) ket{s-l} ⊗ ket{s}$
BellDiagonalQudits.belldiagonal_projection
— Functionbelldiagonal_projection(stdbasis, ρ)
Projects any density matrix to the set of Bell-diagonal densitystates of corresponding dimension as defined by the stdbasis
.
BellDiagonalQudits.calculate_mub_correlation
— Functioncalculate_mub_correlation(d, mubSet::Vector{Vector{Vector{ComplexF64}}}, ρ, s=-1)
Based on complete set of mutually unbiased bases mubSet
, return sum of mutual predictibilities, shifted by s
, for density matrix ρ
in d
dimensions.
BellDiagonalQudits.canonic_eigenbasis_weylprime
— Methodcanonic_eigenbasis_weylprime(d, E)
Create array of eigenvectors-eigenvalue tuples for Weyl operator indexed by tuple E
in dimension d
.
BellDiagonalQudits.classify_entanglement
— Methodclassify_entanglement(analysedCoordState)
Return entanglement class of analysedCoordState
.
Entanglement class can be "UNKNWON", "PPT_UNKNOWN" for PPT states that can be separable or entangled, "SEP" for separable states, "BOUND" for PPT/bound entangled states or "NPT" for NPT/free entangled states.
BellDiagonalQudits.concurrence_qp_check
— Functionconcurrence_qp_check(coordState::CoordState, d, dictionaries, precision=10)
Return true
if the quasi-pure concurrence (see concurrence.jl
) is positive for a coordState
and given basis dictionaries
in the given precision
.
BellDiagonalQudits.createProjectorOperator
— MethodcreateProjectorOperator(d)
Return concurrence related operator in arbitrary dimension d
.
BellDiagonalQudits.create_basis_state_operators
— Methodcreate_basis_state_operators(d, bellStateOperator, precision)
Use maximally entangled Bell state bellStateOperator
of dimension d
to create Bell basis and return with corresponding flat and Weyl indices.
BellDiagonalQudits.create_bipartite_maxentangled
— Methodcreate_bipartite_maxentangled(d)
Return maximally entangled pure state of a bipartite system of dimension $d^2$.
BellDiagonalQudits.create_canonic_enconding
— Methodcreate_canonic_enconding(g, d)
Return unitary matrix as encoding for generating stabilizer element g
in demensiond
.
BellDiagonalQudits.create_comppar_unitary
— Methodcreate_comppar_unitary(λ, d)
Return d
dimensional prameterized unitary matrix from parameter matrix λ
.
BellDiagonalQudits.create_dimelement_sublattices
— Methodcreate_dimelement_sublattices(d)
Return all sublattices with d
elements represented as vector of tuples in the $d^2$ elements discrete phase space induced by Weyl operators.
BellDiagonalQudits.create_halfspheric_witnesses
— Methodcreate_halfspheric_witnesses(standardBasis::StandardBasis, n)
Return array of n
uniformly distributed random EntanglementWitness
on unit sphere represented in Bell basis standardBasis
.
BellDiagonalQudits.create_index_sublattice_state
— Methodcreate_index_sublattice_state(standardBasis::StandardBasis, subLattice)
Return collection of standardBasis
elements contributing to the state corresponding to the sublattice
, coordinates in Bell basis and density matrix in computational basis.
BellDiagonalQudits.create_kernel_hpolytope
— Methodcreate_kernel_hpolytope(vertexCoordinates)
Return LazySets.HPolytope representation of polytope defined by vertexCoordinates
.
BellDiagonalQudits.create_kernel_vertexstates
— Methodcreate_kernel_vertexstates(d, standardBasis::StandardBasis)
Return array containing collections of corresponding standardBasis
indices, coordinates and density matrices for all d
element sublattices in discrete phase space.
BellDiagonalQudits.create_random_witnesses
— Methodcreate_random_witnesses(standardBasis::StandardBasis, n)
Return array of n
uniformly distributed random EntanglementWitness
represented in Bell basis standardBasis
.
BellDiagonalQudits.create_red_parmatrix_from_parvector
— Methodcreate_red_parmatrix_from_parvector(x, d)
Return parameter matrix for pure state parameterization from parameter vector x
of length $2(d-1)$.
BellDiagonalQudits.create_weyloperator_basis
— Methodcreate_weyloperator_basis(d)
Return vector of length $d^2$, containing the Weyl operator basis for the $(d,d)$ dimensionalmatrix space.
BellDiagonalQudits.depolarize_coords
— Methoddepolarize_coords(coords)
Return depolarized elements of a coord probability vector. Leaves the first element invariant. Remaining elements are replaced by their average value.
BellDiagonalQudits.direct_optimization
— Functiondirect_optimization(f, negf, method, d, iterations, constrainedOpt=false)
Return total (minimum, minimizer) and (maximum, maximizer) of iterations
optimization runs of function f
and its negative negf
over the set of separale states using Optim.jl optimization mehtod method
.
Optim.jl is used for optimazation based on parameterization.jl
, so f
and negf
are defined for $2(d-1)$ parameters. Supported methods include NelderMead
, LBFGS
and NewtonTrustRegion
.
BellDiagonalQudits.generic_vectorproduct
— Methodgeneric_vectorproduct(A,B)
For any vectors of equal length, return $\sum_i A[i]B[i]$, the sum of all products of elements with the same index.
BellDiagonalQudits.get_abelian_subgroup_generators
— Methodget_abelian_subgroup_generators(d, n)
Return all generators of abelian subgroups for the n
-copy weyl-Heisenberg group in d
dimensions.
BellDiagonalQudits.get_bounded_ew
— Functionget_bounded_ew(d, wit::EntanglementWitness, iterations, method=Optim.NelderMead, useConstrainedOpt=false)
Return BoundedEW in d
dimensions based on EntanglementWitness wit
and iterations
optimization runs of lower and upper bound for separable states.
BellDiagonalQudits.get_codespace_errorops_for_meas
— Methodget_codespace_errorops_for_meas(U, gVec, aVec, bVec)
For given encoding U
of a stabilizer with generating elements gVec
and measurement outcomes aVec
and bVec
, return Dict of error elements (keys) and error action operators (values).
BellDiagonalQudits.get_comppar_unitary_from_parvector
— Methodget_comppar_unitary_from_parvector(x, d)
Return parameterized unitatry matrix U of dimension d
and rank 1 from parameter vector x
with $2(d-1)$ elements.
Using the first basis state of the computational basis with density matrix $e_1$, any pure state $\rho$ can be generated as $\rho = U e_1 U^\dagger$.
BellDiagonalQudits.get_concurrence_qp
— Methodget_concurrence_qp(coords, d, dictionaries)
Return quasi-pure approximation of the concurrence for a Bell diagonal state represented by coordinates coords
with respect to a StandardBasis
and corresponding dictionaries
in d
dimensions.
BellDiagonalQudits.get_concurrence_qp_gendiagonal
— Methodget_concurrence_qp_gendiagonal(coords, d, basisStates)
Return quasi-pure approximation of the concurrence for a d
-dimensional Bell diagonal state represented by coordinates coords
with respect to a set of basisStates
.
BellDiagonalQudits.get_coset_partition
— Methodget_coset_partition(gVec, n, d)
Return coset partition of error elements defined by stabilizer generating elements gVec
of n
-copies in d
dimensions.
BellDiagonalQudits.get_cosets_prob_s
— Methodget_cosets_prob_s(ρ, gVec, n, d, stdbasis)
Return vector of tuples containing the cosets defined by stabilizer generating elements gVec
for n
-copies ind
dimensions together with its s-value and probabilies in the stdbasis
.
BellDiagonalQudits.get_direct_functions_for_wit_traceoptimization
— Methodget_direct_functions_for_wit_traceoptimization(wit::EntanglementWitness, d)
Return the function and its negative that calculates $tr \rho$ wit.coords
, the trace of the given witness wit
multiplied by a parameterized seperable state $\rho$ in d
dimensions.
BellDiagonalQudits.get_erroraction_from_encoding
— Methodget_erroraction_from_encoding(U, W, bVec, sVec, d )
Create error action operator for an error W
in encoding U
for measurment outcomes bVec
and sVec
in dimension d
.
BellDiagonalQudits.get_erroroperator_from_errorelement
— Methodget_erroroperator_from_errorelement(E, d)
Return error operator in computational basis from error element E
in dimension d
.
BellDiagonalQudits.get_intertwiner
— Methodget_intertwiner(d, k, l)
Return the tensor product $W_{k,l} \otimes \mathbb{1}_d$.
BellDiagonalQudits.get_max_fidelity_stabilizer_coset
— Methodget_max_fidelity_stabilizer_coset(ρ, n, d, stdbasis)
Returns stabilizer generator, coset of maximal normalized probability and corresponding s-value, coset probabily and s-value probabily for n
-copy input state ρ
in d
dimensions with respect to stdbasis
.
BellDiagonalQudits.get_permutation_from_momentuminversion
— Methodget_permutation_from_momentuminversion(stdBasis::StandardBasis, d)
Return Permutations.Permutation
of momentum inversion for $d^2$ dimensional vector of coordinates in Bell basis standardBasis
.
BellDiagonalQudits.get_permutation_from_quarterrotation
— Methodget_permutation_from_quarterrotation(stdBasis::StandardBasis, d)
Return Permutations.Permutation
of qurater rotation for $d^2$ dimensional vector of coordinates in Bell basis standardBasis
.
BellDiagonalQudits.get_permutation_from_translation
— Methodget_permutation_from_translation(translation::Tuple{Int,Int}, stdBasis::StandardBasis, d)
Return Permutations.Permutation
of translation for $d^2$ dimensional vector of coordinates in Bell basis standardBasis
.
BellDiagonalQudits.get_permutation_from_verticalshear
— Methodget_permutation_from_verticalshear(stdBasis::StandardBasis, d)
Return Permutations.Permutation
of vertical shear for
d^2
dimensional vector of coordinates in Bell basis
standardBasis`.
BellDiagonalQudits.get_prob_for_E
— Methodget_prob_for_E(ρ, E, stdBasis)
Return probability of measurment of stdBasis
corresponding to error element E
in state ρ
.
BellDiagonalQudits.get_prob_for_errorkeys
— Methodget_prob_for_errorkeys(ρ, errorKeys, n, stdBasis)
Get total error probability for n
-copy errorKeys
defined by stdBasis
in rho
.
BellDiagonalQudits.get_properdivisors
— Methodget_properdivisors(k:Int)
Return vector of proper divisors of k
.
BellDiagonalQudits.get_s_dict_for_generators
— Methodget_s_dict_for_generators(gVec, n, d)
Create Dict containing the s-values for each error element (keys) for stabilizer generating elements gVec
for n
-copies in dimension d
.
BellDiagonalQudits.get_s_errorkeys
— Methodget_s_errorkeys(gVec, sVec, n, d)
Return all errors with sValue
for n
-cope stabilizer generators gVec
in d
dimenions.
BellDiagonalQudits.get_s_for_generator
— Methodget_s_for_generator(g, E)
Return s-value of error element E
for stabilzer generator
gin dimension
d`.
BellDiagonalQudits.get_s_normalized_coset_probs
— Methodget_s_normalized_coset_probs(ρ, gVec, n, d, stdbasis)
Return array of tuples containing the cosets and s-values defined by generating n
-copy stabilizer elements gVec
and the coset probabilitiies, normalized coset probabilites and the s-value probabilies for the stdbasis
in d
dimensions.
BellDiagonalQudits.get_s_prob_dict
— Methodget_s_prob_dict(ρ, gVec, n, d, stdbasis)
Return Dict of stdbasis
probabilities (values) for each s-value (keys) in n
-copy state rho
of subsystem dimension d
.
BellDiagonalQudits.get_stdbasis_probabilities
— Functionget_stdbasis_probabilities(ρ, stdBasis, precision)
Return probability of measuring a Bell stdBasis
state for ρ
in precision
.
BellDiagonalQudits.get_witness_extrema
— Functionget_witness_extrema(d, wit::EntanglementWitness, iterations, method, useConstrainedOpt=false)
Return optimization (see optimization.jl) results for lower and upper bound of d
dimensional EntanglementWitness wit
using iterations
runs and Optim.jl optimization method method
.
BellDiagonalQudits.isppt
— MethodisPPTP(ρ, d, precision)
Return true
if the partial transposition of the Hermitian matrix based on the upper triangular of ρ
is positive semi-definite in precision
.
BellDiagonalQudits.ispsd
— Methodispsd(M, precision)
Return true
if the smallest eingenvalue of matrix M
rounded to precision precision
is not negative.
BellDiagonalQudits.iterative_specific_stabilizer_protocol
— Functioniterative_specific_stabilizer_protocol(ρ, targetFid, gVec, aVec, bVec, U, n, d, stdBasis, maxIts)
Applies iterations of the stabilizer routine to the n
-copy input state 'rho
in d
dimensions for stabilizer generating elements gVec
, encoding U
and measurement outcomes aVec
andbVec
. Iterates until targetFid
or maximal number of iterations maxIts
is reached. Returns distillable=true
if targetFid
could be reached and fidelities and success probabilies with respect to the stdbasis
for each iteration.
BellDiagonalQudits.kernel_check
— Methodkernel_check(coordState::CoordState, kernelPolytope::Union{HPolytope{Float64,Array{Float64,1}},VPolytope{Float64,Array{Float64,1}}})
Return true
if the Euclidean coordinates of the coordState
are contained in the
kernelPolytope` represented in V- or H-representation.
BellDiagonalQudits.map_indices_to_normcoords
— Methodmap_indices_to_normcoords(indices, D)
Return D
element normalized coordinate vector with equal nonzero values at given indices
.
BellDiagonalQudits.modbra
— Methodmodbra(k,d)
Return the k
th bra vector modulo d
.
BellDiagonalQudits.modket
— Methodmodket(k,d)
Return the k
th ket vector modulo d
.
BellDiagonalQudits.mub_check
— Methodmub_check(coordState::CoordState, d, stdBasis::StandardBasis, mubSet::Vector{Vector{Vector{ComplexF64}}})
Return true
if the sum of mutual predictibilities for a mubSet
(see mub.jl
) of dimension d
exceeds $2$ for a coordState
and given standardBasis
.
BellDiagonalQudits.numeric_ew_check
— Functionnumeric_ew_check(coordState::CoordState, boundedEWs::Array{BoundedCoordEW}, relUncertainity::Float64)
Return true
if any entanglement witness of boundedEWs
detects the density matrix ρ
as entangled.
An entanglement witness $E$ of boundedEWs
detects ρ
, if the scalar product $\rho$.coords
$\cdot E$.coords
is not in [lowerBound
, upperBound
]. If a relUncertainity
is given, the violation relative to upperBound-lowerBound
needs to exceed relUncertainity
` to detect entanglement.
BellDiagonalQudits.ppt_check
— Functionppt_check(coordState::CoordState, standardBasis::StandardBasis, precision=10)
Return true
if the
coordStatedefined via the
standardBasishas positive partial transposition in the given
precision`.
BellDiagonalQudits.realignment_check
— Functionrealignment_check(coordState::CoordState, standardBasis::StandardBasis, precision=10)
Return true
if the realigned
coordStatedefined via the
standardBasishas trace norm
> 1
in the given
precision`.
BellDiagonalQudits.rounddigits
— Methodrounddigits(A, precision)
Return A
with all elemets rounded up to precision
digits.
BellDiagonalQudits.spinrep_check
— Functionspinrep_check(coordState::CoordState, stdBasis::StandardBasis, bipartiteWeylBasis::Vector{Array{Complex{Float64},2}}, precision=10)
Return true
and detects a coordState
for a standardBasis
as separbale, if its coefficiencts in the bipartiteWeylBasis
have 1-norm smaller than $2$ in given precision
.
BellDiagonalQudits.stabilizer_routine
— Methodstabilizer_routine((ρ, gVec, aVec, bVec, Uenc, n, d, stdbasis)
Return output state and probability of success for one iteration of the stabilizer distillation routine.
The routine is defined by the input state ρ
, the stabilizer generating element gVec
, the measurement outcomes aVec
and bVec
, the encoding operator Uenc
, the number of copies n
, the dimension of the subsystems d
and the standard Bell bases stdbasis
.
BellDiagonalQudits.weyloperator
— Methodweyloperator(d, k, l)
Return the $(d,d)$- dimensional matrix representation of Weyl operator $W_{k,l}$.
BellDiagonalQudits.weyltrf
— Methodweyltrf(d, ρ, k, l)
Apply the $(k,l)$-th Weyl transformation of dimension d
to the density matrix ρ
. Return $W_{k,l} \rho W_{k,l}^\dagger$.
BellDiagonalQudits.δ
— Methodδ(n,m)
Return 1 if n
==m
BellDiagonalQudits.δ_mod
— Methodδ_mod(n,m,x)
Return 1 if n
and m
are congruent modulo x
.