From 57666fe4aa417fceee5bd3278be99b17f3bceeef Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Thu, 19 Dec 2024 19:48:26 +0000 Subject: [PATCH] build based on be8cb24 --- dev/.documenter-siteinfo.json | 2 +- dev/API/index.html | 78 +++++++++++++++++------------------ dev/QHO/index.html | 2 +- dev/bibliography/index.html | 2 +- dev/express/index.html | 2 +- dev/index.html | 4 +- dev/introduction/index.html | 2 +- dev/qubit_basis/index.html | 2 +- 8 files changed, 47 insertions(+), 47 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 57906f6..e85f8ca 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-11-21T22:24:52","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2024-12-19T19:48:21","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/API/index.html b/dev/API/index.html index ea5efa3..e6a2e11 100644 --- a/dev/API/index.html +++ b/dev/API/index.html @@ -4,33 +4,33 @@ padding-top: 0 !important; padding-bottom: 0 !important; } -

Autogenerated API list

QuantumSymbolics.CNOTConstant

CNOT gate

source
QuantumSymbolics.CPHASEConstant

CPHASE gate

source
QuantumSymbolics.CreateConstant

Creation operator, also available as the constant âꜛ, in an infinite dimension Fock basis. There is no unicode dagger superscript, so we use the uparrow

source
QuantumSymbolics.DestroyConstant

Annihilation operator, also available as the constant , in an infinite dimension Fock basis.

source
QuantumSymbolics.F₁Constant

Single photon basis state of n

source
QuantumSymbolics.HConstant

Hadamard gate

source
QuantumSymbolics.IConstant

Identity operator in qubit basis

source
QuantumSymbolics.NConstant

Number operator, also available as the constant , in an infinite dimension Fock basis.

source
QuantumSymbolics.PmConstant

Pauli "minus" operator, also available as the constant σ₋

source
QuantumSymbolics.PpConstant

Pauli "plus" operator, also available as the constant σ₊

source
QuantumSymbolics.XConstant

Pauli X operator, also available as the constant σˣ

source
QuantumSymbolics.X1Constant

Basis state of σˣ

source
QuantumSymbolics.X2Constant

Basis state of σˣ

source
QuantumSymbolics.YConstant

Pauli Y operator, also available as the constant σʸ

source
QuantumSymbolics.Y1Constant

Basis state of σʸ

source
QuantumSymbolics.Y2Constant

Basis state of σʸ

source
QuantumSymbolics.ZConstant

Pauli Z operator, also available as the constant σᶻ

source
QuantumSymbolics.Z1Constant

Basis state of σᶻ

source
QuantumSymbolics.Z2Constant

Basis state of σᶻ

source
QuantumSymbolics.vacConstant

Vacuum basis state of n

source
QuantumSymbolics.AbstractRepresentationType

An abstract type for the supported representation of quantum objects.

source
QuantumSymbolics.CliffordReprType

Representation using tableaux governed by QuantumClifford.jl

source
QuantumSymbolics.CoherentStateType

Coherent state in defined Fock basis.

source
QuantumSymbolics.CreateOpType

Creation (raising) operator.

julia> f = FockState(2)
+

Autogenerated API list

QuantumSymbolics.CreateConstant

Creation operator, also available as the constant âꜛ, in an infinite dimension Fock basis. There is no unicode dagger superscript, so we use the uparrow

source
QuantumSymbolics.NConstant

Number operator, also available as the constant , in an infinite dimension Fock basis.

source
QuantumSymbolics.CreateOpType

Creation (raising) operator.

julia> f = FockState(2)
 |2⟩
 
 julia> create = CreateOp()
 a†
 
 julia> qsimplify(create*f, rewriter=qsimplify_fock)
-(sqrt(3))|3⟩
source
QuantumSymbolics.DestroyOpType

Annihilation (lowering or destroy) operator in defined Fock basis.

julia> f = FockState(2)
 |2⟩
 
 julia> destroy = DestroyOp()
 a
 
 julia> qsimplify(destroy*f, rewriter=qsimplify_fock)
-(sqrt(2))|1⟩
source
QuantumSymbolics.DisplaceOpType

Displacement operator in defined Fock basis.

julia> f = FockState(0)
 |0⟩
 
 julia> displace = DisplaceOp(im)
 D(im)
 
 julia> qsimplify(displace*f, rewriter=qsimplify_fock)
-|im⟩
source
QuantumSymbolics.IdentityOpType

The identity operator for a given basis

julia> IdentityOp(X1⊗X2)
 𝕀
 
 julia> express(IdentityOp(Z2))
 Operator(dim=2x2)
-  basis: Spin(1/2)sparse([1, 2], [1, 2], ComplexF64[1.0 + 0.0im, 1.0 + 0.0im], 2, 2)
source
QuantumSymbolics.KrausReprType

Kraus representation of a quantum channel

julia> @op A₁; @op A₂; @op A₃;
+  basis: Spin(1/2)sparse([1, 2], [1, 2], ComplexF64[1.0 + 0.0im, 1.0 + 0.0im], 2, 2)
source
QuantumSymbolics.KrausReprType

Kraus representation of a quantum channel

julia> @op A₁; @op A₂; @op A₃;
 
 julia> K = kraus(A₁, A₂, A₃)
 𝒦(A₁,A₂,A₃)
@@ -38,7 +38,7 @@
 julia> @op ρ;
 
 julia> K*ρ
-(A₁ρA₁†+A₂ρA₂†+A₃ρA₃†)
source
QuantumSymbolics.MixedStateType

Completely depolarized state

julia> MixedState(X1⊗X2)
 𝕄
 
 julia> express(MixedState(X1⊗X2))
@@ -55,52 +55,52 @@
 
 𝒵ₗ━━
 + Z_
-+ _Z
source
QuantumSymbolics.NumberOpType

Number operator.

julia> f = FockState(2)
 |2⟩
 
 julia> num = NumberOp()
 n
 
 julia> qsimplify(num*f, rewriter=qsimplify_fock)
-2|2⟩
source
QuantumSymbolics.PauliNoiseCPTPType

Single-qubit Pauli noise CPTP map

julia> apply!(express(Z1), [1], express(PauliNoiseCPTP(1/4,1/4,1/4)))
 Operator(dim=2x2)
   basis: Spin(1/2)
  0.5+0.0im  0.0+0.0im
- 0.0+0.0im  0.5+0.0im
source
QuantumSymbolics.PhaseShiftOpType

Phase-shift operator in defined Fock basis.

julia> c = CoherentState(im)
 |im⟩
 
 julia> phase = PhaseShiftOp(pi)
 U(π)
 
 julia> qsimplify(phase*c, rewriter=qsimplify_fock)
-|1.2246467991473532e-16 - 1.0im⟩
source
QuantumSymbolics.SAddType

Addition of quantum objects (kets, operators, or bras).

julia> @ket k₁; @ket k₂;
+|1.2246467991473532e-16 - 1.0im⟩
source
QuantumSymbolics.SAddType

Addition of quantum objects (kets, operators, or bras).

julia> @ket k₁; @ket k₂;
 
 julia> k₁ + k₂
-(|k₁⟩+|k₂⟩)
source
QuantumSymbolics.SConjugateType

Complex conjugate of quantum objects (kets, bras, operators).

julia> @op A; @ket k;
 
 julia> conj(A)
 Aˣ
 
 julia> conj(k)
-|k⟩ˣ
source
QuantumSymbolics.SDaggerType

Dagger, i.e., adjoint of quantum objects (kets, bras, operators).

julia> @ket a; @op A;
 
 julia> dagger(2*im*A*a)
 (0 - 2im)|a⟩†A†
@@ -116,22 +116,22 @@
 ℋ
 
 julia> dagger(U)
-U⁻¹
source
QuantumSymbolics.SPartialTraceType

Partial trace over system i of a composite quantum system

julia> @op 𝒪 SpinBasis(1//2)⊗SpinBasis(1//2);
 
 julia> op = ptrace(𝒪, 1)
 tr1(𝒪)
@@ -162,14 +162,14 @@
 ((0 + ⟨b||k⟩)B+(tr(A))|k⟩⟨b|)
 
 julia> ptrace(mixed_state, 2)
-((0 + ⟨b||k⟩)A+(tr(B))|k⟩⟨b|)
source
QuantumSymbolics.SProjectorType

Projector for a given ket.

julia> projector(X1⊗X2)
 𝐏[|X₁⟩|X₂⟩]
 
 julia> express(projector(X2))
 Operator(dim=2x2)
   basis: Spin(1/2)
   0.5+0.0im  -0.5-0.0im
- -0.5+0.0im   0.5+0.0im
source
QuantumSymbolics.SScaledType

Scaling of a quantum object (ket, operator, or bra) by a number.

julia> @ket k
 |k⟩
 
 julia> 2*k
@@ -179,10 +179,10 @@
 A
 
 julia> 2*A
-2A
source
QuantumSymbolics.STraceType

Trace of an operator

julia> @op A; @op B;
 
 julia> tr(A)
 tr(A)
@@ -193,7 +193,7 @@
 julia> @bra b; @ket k;
 
 julia> tr(k*b)
-⟨b||k⟩
source
QuantumSymbolics.STransposeType

Transpose of quantum objects (kets, bras, operators).

julia> @op A; @op B; @ket k;
 
 julia> transpose(A)
 Aᵀ
@@ -202,17 +202,17 @@
 (Aᵀ+Bᵀ)
 
 julia> transpose(k)
-|k⟩ᵀ
source
QuantumSymbolics.SVecType

Vectorization of a symbolic operator.

julia> @op A; @op B;
 
 julia> vec(A)
 |A⟩⟩
 
 julia> vec(A+B)
-(|A⟩⟩+|B⟩⟩)
source
QuantumSymbolics.SqueezeOpType

Squeezing operator in defined Fock basis.

julia> S = SqueezeOp(pi)
 S(π)
 
 julia> qsimplify(S*vac, rewriter=qsimplify_fock)
-|0,π⟩
source
QuantumSymbolics.StabilizerStateType

State defined by a stabilizer tableau

For full functionality you also need to import the QuantumClifford library.

julia> using QuantumClifford, QuantumOptics # needed for the internal representation of the stabilizer tableaux and the conversion to a ket
+|0,π⟩
source
QuantumSymbolics.StabilizerStateType

State defined by a stabilizer tableau

For full functionality you also need to import the QuantumClifford library.

julia> using QuantumClifford, QuantumOptics # needed for the internal representation of the stabilizer tableaux and the conversion to a ket
 
 julia> StabilizerState(S"XX ZZ")
 𝒮₂
@@ -221,12 +221,12 @@
 Ket(dim=2)
   basis: Spin(1/2)
   0.7071067811865475 + 0.0im
- -0.7071067811865475 + 0.0im
source
Base.conjMethod
conj(x::Symbolic{AbstractKet})
+ -0.7071067811865475 + 0.0im
source
Base.conjMethod
conj(x::Symbolic{AbstractKet})
 conj(x::Symbolic{AbstractBra})
 conj(x::Symbolic{AbstractOperator})
-conj(x::Symbolic{AbstractSuperOperator})

Symbolic transpose operation. See also SConjugate.

source
Base.transposeMethod
transpose(x::Symbolic{AbstractKet})
+conj(x::Symbolic{AbstractSuperOperator})

Symbolic transpose operation. See also SConjugate.

source
Base.transposeMethod
transpose(x::Symbolic{AbstractKet})
 transpose(x::Symbolic{AbstractBra})
-transpose(x::Symbolic{AbstractOperator})

Symbolic transpose operation. See also STranspose.

source
Base.vecMethod
vec(x::Symbolic{AbstractOperator})

Symbolic vector representation of an operator. See also SVec.

source
QuantumSymbolics.expressFunction
express(s, repr::AbstractRepresentation=QuantumOpticsRepr()[, use::AbstractUse])

The main interface for expressing quantum objects in various representations.

julia> express(X1)
+transpose(x::Symbolic{AbstractOperator})

Symbolic transpose operation. See also STranspose.

source
Base.vecMethod
vec(x::Symbolic{AbstractOperator})

Symbolic vector representation of an operator. See also SVec.

source
QuantumSymbolics.expressFunction
express(s, repr::AbstractRepresentation=QuantumOpticsRepr()[, use::AbstractUse])

The main interface for expressing quantum objects in various representations.

julia> express(X1)
 Ket(dim=2)
   basis: Spin(1/2)
  0.7071067811865475 + 0.0im
@@ -246,7 +246,7 @@
 sX
 
 julia> express(QuantumSymbolics.X, CliffordRepr(), UseAsObservable())
-+ X
source
QuantumSymbolics.qexpandMethod
qexpand(s)

Manually expand a symbolic expression of quantum objects.

julia> @op A; @op B; @op C;
 
 julia> qexpand(commutator(A, B))
 (-1BA+AB)
@@ -257,20 +257,20 @@
 julia> @ket k₁; @ket k₂;
 
 julia> qexpand(A*(k₁+k₂))
-(A|k₁⟩+A|k₂⟩)
source
QuantumSymbolics.qsimplifyMethod
qsimplify(s; rewriter=nothing)

Manually simplify a symbolic expression of quantum objects.

If the keyword rewriter is not specified, then qsimplify will apply every defined rule to the expression. For performance or single-purpose motivations, the user has the option to define a specific rewriter for qsimplify to apply to the expression. The defined rewriters for simplification are the following objects: - qsimplify_pauli - qsimplify_commutator - qsimplify_anticommutator

julia> qsimplify(σʸ*commutator(σˣ*σᶻ, σᶻ))
+(A|k₁⟩+A|k₂⟩)
source
QuantumSymbolics.qsimplifyMethod
qsimplify(s; rewriter=nothing)

Manually simplify a symbolic expression of quantum objects.

If the keyword rewriter is not specified, then qsimplify will apply every defined rule to the expression. For performance or single-purpose motivations, the user has the option to define a specific rewriter for qsimplify to apply to the expression. The defined rewriters for simplification are the following objects: - qsimplify_pauli - qsimplify_commutator - qsimplify_anticommutator

julia> qsimplify(σʸ*commutator(σˣ*σᶻ, σᶻ))
 (0 - 2im)Z
 
 julia> qsimplify(anticommutator(σˣ, σˣ), rewriter=qsimplify_anticommutator)
-2𝕀
source
QuantumSymbolics.@braMacro
@bra(name, basis=SpinBasis(1//2))

Define a symbolic bra of type SBra. By default, the defined basis is the spin-1/2 basis.

julia> @bra b₁
+2𝕀
source
QuantumSymbolics.@braMacro
@bra(name, basis=SpinBasis(1//2))

Define a symbolic bra of type SBra. By default, the defined basis is the spin-1/2 basis.

julia> @bra b₁
 ⟨b₁|
 
 julia> @bra b₂ FockBasis(2)
-⟨b₂|
source
QuantumSymbolics.@ketMacro
@ket(name, basis=SpinBasis(1//2))

Define a symbolic ket of type SKet. By default, the defined basis is the spin-1/2 basis.

julia> @ket k₁
+⟨b₂|
source
QuantumSymbolics.@ketMacro
@ket(name, basis=SpinBasis(1//2))

Define a symbolic ket of type SKet. By default, the defined basis is the spin-1/2 basis.

julia> @ket k₁
 |k₁⟩
 
 julia> @ket k₂ FockBasis(2)
-|k₂⟩
source
QuantumSymbolics.@opMacro
@op(name, basis=SpinBasis(1//2))

Define a symbolic ket of type SOperator. By default, the defined basis is the spin-1/2 basis.

julia> @op A
+|k₂⟩
source
QuantumSymbolics.@opMacro
@op(name, basis=SpinBasis(1//2))

Define a symbolic ket of type SOperator. By default, the defined basis is the spin-1/2 basis.

julia> @op A
 A
 
 julia> @op B FockBasis(2)
-B
source
+Bsource diff --git a/dev/QHO/index.html b/dev/QHO/index.html index 22c28d4..608c4c2 100644 --- a/dev/QHO/index.html +++ b/dev/QHO/index.html @@ -75,4 +75,4 @@ 1.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 1.41421+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 1.73205+0.0im 0.0+0.0im 0.0+0.0im - 0.0+0.0im 0.0+0.0im 0.0+0.0im 2.0+0.0im 0.0+0.0im + 0.0+0.0im 0.0+0.0im 0.0+0.0im 2.0+0.0im 0.0+0.0im diff --git a/dev/bibliography/index.html b/dev/bibliography/index.html index 04b474e..9bb4ee4 100644 --- a/dev/bibliography/index.html +++ b/dev/bibliography/index.html @@ -1,2 +1,2 @@ -Bibliography · QuantumSymbolics.jl
+Bibliography · QuantumSymbolics.jl
diff --git a/dev/express/index.html b/dev/express/index.html index 5815235..53c2ead 100644 --- a/dev/express/index.html +++ b/dev/express/index.html @@ -36,4 +36,4 @@ 0.0+0.0im 1.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 2.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 3.0+0.0im 0.0+0.0im - 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 4.0+0.0im + 0.0+0.0im 0.0+0.0im 0.0+0.0im 0.0+0.0im 4.0+0.0im diff --git a/dev/index.html b/dev/index.html index ee6a5ef..e69ce63 100644 --- a/dev/index.html +++ b/dev/index.html @@ -65,7 +65,7 @@

Impure states, represented as sum of density matrices

-
(MixedState(X1)+SProjector(Z1)) / 2

\[0.5 \mathrm{projector}\left( \left|Z_1\right\rangle \right) + \mathbb{M}\]

+
(MixedState(X1)+SProjector(Z1)) / 2

\[0.5 \mathbb{M} + \mathrm{projector}\left( \left|Z_1\right\rangle \right)\]

express((MixedState(X1)+SProjector(Z1)) / 2)
Operator(dim=2x2)
   basis: Spin(1/2)
  0.75+0.0im   0.0+0.0im
@@ -79,4 +79,4 @@
 + Z
-
Stabilizer state expressions

The state written as $\frac{|Z₁⟩⊗|Z₁⟩+|Z₂⟩⊗|Z₂⟩}{√2}$ is a well known stabilizer state, namely a Bell state. However, automatically expressing it as a stabilizer is a prohibitively expensive computational operation in general. We do not perform that computation automatically. If you want to ensure that states you define can be automatically converted to tableaux for Clifford simulations, avoid using summation of kets. On the other hand, in all of our Clifford Monte-Carlo simulations, is fully supported, as well as projector, MixedState, StabilizerState, and summation of density matrices.

+
Stabilizer state expressions

The state written as $\frac{|Z₁⟩⊗|Z₁⟩+|Z₂⟩⊗|Z₂⟩}{√2}$ is a well known stabilizer state, namely a Bell state. However, automatically expressing it as a stabilizer is a prohibitively expensive computational operation in general. We do not perform that computation automatically. If you want to ensure that states you define can be automatically converted to tableaux for Clifford simulations, avoid using summation of kets. On the other hand, in all of our Clifford Monte-Carlo simulations, is fully supported, as well as projector, MixedState, StabilizerState, and summation of density matrices.

diff --git a/dev/introduction/index.html b/dev/introduction/index.html index fc474af..12c7e7c 100644 --- a/dev/introduction/index.html +++ b/dev/introduction/index.html @@ -132,4 +132,4 @@ 𝒟ℯ𝓈𝓉𝒶𝒷 + Z 𝒮𝓉𝒶𝒷 -+ X

For more details on using express, refer to the express functionality page.

++ X

For more details on using express, refer to the express functionality page.

diff --git a/dev/qubit_basis/index.html b/dev/qubit_basis/index.html index d5f3fd0..7b956ee 100644 --- a/dev/qubit_basis/index.html +++ b/dev/qubit_basis/index.html @@ -102,4 +102,4 @@ Ket(dim=2) basis: Spin(1/2) 0.7071067811865475 + 0.0im - 0.0 - 0.7071067811865475im + 0.0 - 0.7071067811865475im