Reference

NoncommutativeGraphs.AlgebraShapeType

The structure of a finite dimensional C*-algebra.

  • For example, [1 2; 3 4] corresponds to S₀ = M₁⊗I₂ ⊕ M₃⊗I₄.
  • For an n-dimensional non-commutative graph use [1 n] for S₀ = Iₙ.
  • For an n-vertex classical graph use ones(Integer, n, 2) for S₀ = diagonals.
source
NoncommutativeGraphs.S0GraphType
S0Graph(sig::AlgebraShape, S::Subspace{ComplexF64, 2})

S0Graph(g::AbstractGraph)

Represents an S₀-graph as defined in arxiv:1002.2514.

  • n::Integer

    Dimension of Hilbert space A such that S ⊆ L(A)

  • sig::Array{var"#s12",2} where var"#s12"<:Integer

    Structure of C*-algebra S₀

  • S::Subspaces.Subspace{Complex{Float64},2}

    Subspace that defines the graph

  • S0::Subspaces.Subspace{Complex{Float64},2}

    C*-algebra S₀

  • S1::Subspaces.Subspace{Complex{Float64},2}

    Commutant of C*-algebra S₀

  • D::Array{Float64,2}

    Block scaling array D from definition 23 of arxiv:2101.00162

source
NoncommutativeGraphs.dswMethod
dsw(g::S0Graph, w::AbstractArray{var"#s13",2} where var"#s13"<:Number; use_diag_optimization, eps, verbose) -> NamedTuple{(:λ, :x, :Z),_A} where _A<:Tuple

Compute weighted θ using theorem 14 of arxiv:2101.00162.

Returns optimal λ, x, and Z values in a named tuple. If use_diag_optimization=true (the default) then x ⪰ w and x is in the commutant of S₀. By theorem 29 of arxiv:2101.00162, θ(g, w) = θ(g, x).

source
NoncommutativeGraphs.dsw_schurMethod
dsw_schur(g::S0Graph) -> NamedTuple{(:λ, :w, :Z),Tuple{Convex.AbstractExpr,Convex.AbstractExpr,Convex.AbstractExpr}}

Schur complement form of weighted θ from theorem 14 of arxiv:2101.00162.

Returns λ, w, and Z variables (for Convex.jl) in a named tuple.

See also: dsw_schur2.

source
NoncommutativeGraphs.dsw_schur2Method
dsw_schur2(g::S0Graph) -> NamedTuple{(:λ, :w, :Z),Tuple{Convex.AbstractExpr,Convex.AbstractExpr,Convex.AbstractExpr}}

Schur complement form of weighted θ from theorem 14 of arxiv:2101.00162, optimized for the case S₀ ≠ ℂI, at the cost of w being constrained to S₁ (the commutant of S₀).

Returns λ, w, and Z variables (for Convex.jl) in a named tuple.

See also: dsw_schur2.

source
NoncommutativeGraphs.dsw_via_complementMethod
dsw_via_complement(g::S0Graph, w::AbstractArray{var"#s17",2} where var"#s17"<:Number; use_diag_optimization, eps, verbose) -> NamedTuple{(:λ, :x, :y, :Z),_A} where _A<:Tuple

Compute weighted θ via the complement graph, using theorem 29 of arxiv:2101.00162.

θ(S, w) = max{ tr(w x) : x ⪰ 0, y = Ψ(x), θ(Sᶜ, y) ≤ 1 }

Returns optimal λ, x, y, and Z in a named tuple.

If w is in the commutant of S₀ then the weights w and y saturate the inequality in theorem 32 of arxiv:2101.00162.

source
NoncommutativeGraphs.ΨMethod
Ψ(g::S0Graph, w::Union{Convex.Variable, AbstractArray{var"#s13",2} where var"#s13"<:Number}) -> Any

Block scaling superoperator Ψ from definition 23 of arxiv:2101.00162

source