Library

Public

BellDiagonalQudits.AnalysedCoordStateType

Representing an entanglement analyzed Bell diagonal state.

  • coordState: The analyzed CoordState
  • kernel: true if kernel check successful, else false. missing if entanglement check not applied.
  • spinrep: true if spinrep check successful, else false. missing if entanglement check not applied.
  • ppt: true if ppt check successful, else false. missing if entanglement check not applied.
  • realign: true if realignment check successful, else false. missing if entanglement check not applied.
  • concurrence: true if concurrence check successful, else false. missing if entanglement check not applied.
  • mub: true if mub check successful, else false. missing if entanglement check not applied.
  • numericEW: true if numericEW check successful, else false. missing if entanglement check not applied.
source
BellDiagonalQudits.BoundedCoordEWType

Represents 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.
source
BellDiagonalQudits.CoordStateType

Represents a Bell diagonal state in Bell basis.

  • coords: Coordinates in Bell basis.
  • eClass: Entanglement class of the represented state.
source
BellDiagonalQudits.DensityStateType

Represents a Bell diagonal state.

  • coords: Coordinates in Bell basis.
  • densityMatrix: Hermitian density matrix in computational basis.
  • eClass: Entanglement class of the represented state.
source
BellDiagonalQudits.BBPSSW_routineMethod
BBPSSW_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.

source
BellDiagonalQudits.DEJMPS_routineMethod
DEJMPS_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.

source
BellDiagonalQudits.FIMAX_routineMethod
FIMAX_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.

source
BellDiagonalQudits.P1_P2_routineMethod
P1_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.

source
BellDiagonalQudits.analyse_coordstateFunction
analyse_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.

source
BellDiagonalQudits.concurrence_qp_gendiagonal_checkFunction
concurrence_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.

source
BellDiagonalQudits.create_alt_indexbasisMethod
create_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 α.

source
BellDiagonalQudits.create_altbellstateFunction
create_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.

source
BellDiagonalQudits.create_densitystateMethod
create_densitystate(coordState::CoordState, standardBasis::StandardBasis)

Return DensityStatecontaining the density matrix in computational basis based oncoordStatecoordinates in BellstandardBasis`.

source
BellDiagonalQudits.create_random_bounded_ewsFunction
create_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.

source
BellDiagonalQudits.create_random_coordstatesFunction
create_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.

source
BellDiagonalQudits.efficiencyMethod
efficiency(distillable, iterations, successProbs, n)

Returns efficiency of n-copy distillation protocol with iterations iterations of success probabilities successProbs.

source
BellDiagonalQudits.extend_vpolytope_by_densitystatesMethod
extend_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.

source
BellDiagonalQudits.generate_symmetriesFunction
generate_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.

source
BellDiagonalQudits.get_symcoordsMethod
get_symcoords(coords::Array{Float64,1}, symPermutations::Array{Permutation})

Return array containing all symmetric Bell coordinates of given symmetries symPermutations applied to Bell coordinates coords.

source
BellDiagonalQudits.iterative_BBPSSW_protocolFunction
iterative_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.

source
BellDiagonalQudits.iterative_DEJMPS_protocolFunction
iterative_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.

source
BellDiagonalQudits.iterative_FIMAX_protocolFunction
iterative_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.

source
BellDiagonalQudits.iterative_P1_P2_protocolFunction
iterative_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.

source
BellDiagonalQudits.sym_analyse_coordstateFunction
sym_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.

source
BellDiagonalQudits.uniform_bell_samplerFunction
uniform_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$.

source

Internal

BellDiagonalQudits.BoundedEWType

Represents 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.
source
BellDiagonalQudits.EntanglementWitnessType

Represents an operator to detect Bell diagonal entangled states.

  • coords: Coordinates in Bell basis
  • operatorMatrix: Hermitian matrix representing the linear operator in computational basis.
source
BellDiagonalQudits.P1_routineMethod
P1_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.

source
BellDiagonalQudits.P2_routineMethod
P2_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.

source
BellDiagonalQudits.altbell_creatingoperatorMethod
altbell_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}$

source
BellDiagonalQudits.calculate_mub_correlationFunction
calculate_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.

source
BellDiagonalQudits.classify_entanglementMethod
classify_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.

source
BellDiagonalQudits.concurrence_qp_checkFunction
concurrence_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.

source
BellDiagonalQudits.create_basis_state_operatorsMethod
create_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.

source
BellDiagonalQudits.create_index_sublattice_stateMethod
create_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.

source
BellDiagonalQudits.create_kernel_vertexstatesMethod
create_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.

source
BellDiagonalQudits.depolarize_coordsMethod
depolarize_coords(coords)

Return depolarized elements of a coord probability vector. Leaves the first element invariant. Remaining elements are replaced by their average value.

source
BellDiagonalQudits.direct_optimizationFunction
direct_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.

source
BellDiagonalQudits.get_bounded_ewFunction
get_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.

source
BellDiagonalQudits.get_codespace_errorops_for_measMethod
get_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).

source
BellDiagonalQudits.get_comppar_unitary_from_parvectorMethod
get_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$.

source
BellDiagonalQudits.get_concurrence_qpMethod
get_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.

source
BellDiagonalQudits.get_concurrence_qp_gendiagonalMethod
get_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.

source
BellDiagonalQudits.get_cosets_prob_sMethod
get_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.

source
BellDiagonalQudits.get_max_fidelity_stabilizer_cosetMethod
get_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.

source
BellDiagonalQudits.get_s_normalized_coset_probsMethod
get_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.

source
BellDiagonalQudits.get_s_prob_dictMethod
get_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.

source
BellDiagonalQudits.get_witness_extremaFunction
get_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.

source
BellDiagonalQudits.ispptMethod
isPPTP(ρ, d, precision)

Return true if the partial transposition of the Hermitian matrix based on the upper triangular of ρ is positive semi-definite in precision.

source
BellDiagonalQudits.ispsdMethod
ispsd(M, precision)

Return true if the smallest eingenvalue of matrix M rounded to precision precision is not negative.

source
BellDiagonalQudits.iterative_specific_stabilizer_protocolFunction
iterative_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.

source
BellDiagonalQudits.kernel_checkMethod

kernel_check(coordState::CoordState, kernelPolytope::Union{HPolytope{Float64,Array{Float64,1}},VPolytope{Float64,Array{Float64,1}}})

Return true if the Euclidean coordinates of the coordStateare contained in thekernelPolytope` represented in V- or H-representation.

source
BellDiagonalQudits.mub_checkMethod
mub_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.

source
BellDiagonalQudits.numeric_ew_checkFunction
numeric_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.

source
BellDiagonalQudits.ppt_checkFunction
ppt_check(coordState::CoordState, standardBasis::StandardBasis, precision=10)

Return trueif thecoordStatedefined via thestandardBasishas positive partial transposition in the givenprecision`.

source
BellDiagonalQudits.realignment_checkFunction
realignment_check(coordState::CoordState, standardBasis::StandardBasis, precision=10)

Return trueif the realignedcoordStatedefined via thestandardBasishas trace norm> 1in the givenprecision`.

source
BellDiagonalQudits.spinrep_checkFunction
spinrep_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.

source
BellDiagonalQudits.stabilizer_routineMethod
stabilizer_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.

source
BellDiagonalQudits.weyltrfMethod
weyltrf(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$.

source