DiracNotation.dirac
— Functiondirac(state::MixedState, statename::String="ρ"; header::Bool=false)
dirac(io::IO, state::MixedState, statename::String="ρ"; header::Bool=false)
dirac(state::MixedState, dims::Vector{Int}, statename::String="ρ"; header::Bool=false)
dirac(state::MixedState, ldims::Vector{Int}, rdims::Vector{Int}, statename::String="ρ"; header::Bool=false)
dirac(io::IO, state::MixedState, ldims::Vector{Int}, rdims::Vector{Int}, statename::String="ρ"; header::Bool=false)
Display a matrix as Dirac notation.
Example
julia> using Random; Random.seed!(0);
julia> op1 = randn(Complex{Float64}, 2,2);
julia> dirac(op1)
ρ = (0.480201+0.585777im)|0⟩⟨0|+(0.414801+0.210248im)|0⟩⟨1|+(-0.249614-0.0953561im)|1⟩⟨0|+(0.0459249-0.0770869im)|1⟩⟨1|
julia> op2 = randn(Complex{Float64}, 4,3);
julia> dirac(op2, [2,2], [3])
ρ = (-0.363602+1.11322im)|00⟩⟨0|+(-1.1365-1.75419im)|00⟩⟨1|+(0.197612+0.078787im)|00⟩⟨2|+(-0.487131-0.539384im)|01⟩⟨0|+(1.60954+0.155347im)|01⟩⟨1|+(-0.253062+0.334967im)|01⟩⟨2|+(0.281063+0.573909im)|10⟩⟨0|+(-0.0828287-0.42515im)|10⟩⟨1|+(0.212297-0.539294im)|10⟩⟨2|+(-0.24491-0.132634im)|11⟩⟨0|+(0.807711-0.0626612im)|11⟩⟨1|+(1.00625+0.288773im)|11⟩⟨2|
DiracNotation.dirac
— Functiondirac(state::PureState, statename::String="ψ"; header::Bool=false)
dirac(io::IO, state::PureState, statename::String="ψ"; header::Bool=false)
dirac(state::PureState, dims::Vector{Int}, statename::String="ψ"; header::Bool=false)
dirac(io::IO, state::PureState, dims::Vector{Int}, statename::String="ψ"; header::Bool=false)
Display a vector as Dirac notation.
Example
julia> using Random; Random.seed!(0);
julia> dirac(randn(Complex{Float64}, 2))
|ψ⟩ = (0.480201+0.585777im)|0⟩+(-0.249614-0.0953561im)|1⟩
julia> qutrit = rand(Complex{Float64},3);
julia> dirac(qutrit, [3])
|ψ⟩ = (0.27888+0.203477im)|0⟩+(0.0423017+0.0682693im)|1⟩+(0.361828+0.973216im)|2⟩
dirac(qubitqutrit, [2,3])
|ψ⟩ = (-0.487131-0.539384im)|00⟩+(0.281063+0.573909im)|01⟩+(-0.24491-0.132634im)|02⟩+(-1.1365-1.75419im)|10⟩+(1.60954+0.155347im)|11⟩+(-0.0828287-0.42515im)|12⟩
DiracNotation.ind2Nary
— Methodind2Nary(n::Int, dims::Vector{Int})
Arguments
n::Int
: n th row(column) of qudit/operator array.dims::Vector{Int}
: N-ary array
DiracNotation.print_dirac
— Functionprint_dirac(io::IO, state::PureState, dims::Vector{Int}, statename::String="ψ")
print_dirac(io::IO, state::MixedState,
ldims::Vector{Int},
rdims::Vector{Int},
statename::String="ρ") where T <: Number
DiracNotation.print_dirac_term
— Methodprint_dirac_term(io::IO, idx::Int, value::T, dims::Vector{Int}, isfirstterm=false) where T
print_dirac_term(io::IO, row::Int, col::Int,
value::T, ldims::Vector{Int}, rdims::Vector{Int}, isfirstterm=false) where T
DiracNotation.set_properties
— Methodset_properties(; kw...)
Arguments
- precision::Int.
- islatex::Bool. true -> rendered by mathjax on IJulia
- displayall::Bool. true -> display all terms.
- numhead: Display the first part of terms. Default is 5 terms.
- newline::Bool.
- imag_suffix::String.