From e8602dd2f9d49b2b7eddc4fb4c7248c784bcea03 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 15 Jan 2025 14:29:58 +0000 Subject: [PATCH] build based on dda11af --- dev/404.html | 4 +-- dev/api/ansatz.html | 6 ++-- dev/api/mps.html | 6 ++-- dev/api/product.html | 6 ++-- dev/api/quantum.html | 6 ++-- dev/api/tensor.html | 6 ++-- dev/api/tensornetwork.html | 6 ++-- dev/api/transformations.html | 6 ++-- .../{app.BjY0cXzg.js => app.DfVn7wTA.js} | 2 +- .../chunks/@localSearchIndexroot.-jLok-8K.js | 1 - .../chunks/@localSearchIndexroot.BaM3Q09T.js | 1 + ...uXHoIf.js => VPLocalSearchBox.RMvoiZTn.js} | 2 +- .../{theme.Cx9ooDF0.js => theme.nTp9SXyW.js} | 4 +-- ...kwjv.CYEaoWcy.png => cnavjwh.CYEaoWcy.png} | Bin ... => developer_cached-field.md.Cmyiwq3r.js} | 2 +- ...eveloper_cached-field.md.Cmyiwq3r.lean.js} | 2 +- ...> developer_type-hierarchy.md.BjTa1Aju.js} | 2 +- ...eloper_type-hierarchy.md.BjTa1Aju.lean.js} | 2 +- ...shen.DCSEWFbY.png => dnyvvec.DCSEWFbY.png} | Bin ...hwyd.BSPoQFMq.png => ipwewba.BSPoQFMq.png} | Bin ...zkcf.CAVjj1nl.png => jkhnglw.CAVjj1nl.png} | Bin ...kY.js => manual_ansatz_mps.md.DpMxNGsl.js} | 2 +- ... => manual_ansatz_mps.md.DpMxNGsl.lean.js} | 2 +- ...F5RCt.js => manual_quantum.md.BunFFBiF.js} | 2 +- ....js => manual_quantum.md.BunFFBiF.lean.js} | 2 +- ...s => manual_tensor-network.md.BBYri5cY.js} | 2 +- ...manual_tensor-network.md.BBYri5cY.lean.js} | 2 +- ...2w8t2.js => manual_tensors.md.CzWy8o0t.js} | 24 ++++++------- ....js => manual_tensors.md.CzWy8o0t.lean.js} | 24 ++++++------- ...xukl.B1dF7YaL.png => mbvmgwa.B1dF7YaL.png} | Bin ...glrh.CiEHhneS.png => mvyjnss.CiEHhneS.png} | Bin ...fvlm.B6-AUJNQ.png => rmmtjxg.B6-AUJNQ.png} | Bin ...nxrd.C4FqEdjF.png => szaubeg.C4FqEdjF.png} | Bin dev/assets/szofggk.xhSXnThi.png | Bin 0 -> 41636 bytes ...yfdd.DoxsvESl.png => utsnnjz.DoxsvESl.png} | Bin dev/assets/yzghtzv.BAfAYm2R.png | Bin 41638 -> 0 bytes dev/developer/cached-field.html | 10 +++--- dev/developer/hypergraph.html | 6 ++-- dev/developer/keyword-dispatch.html | 6 ++-- dev/developer/type-hierarchy.html | 10 +++--- dev/developer/unsafe-region.html | 6 ++-- dev/hashmap.json | 2 +- dev/index.html | 6 ++-- dev/manual/ansatz/index.html | 6 ++-- dev/manual/ansatz/mps.html | 10 +++--- dev/manual/ansatz/product.html | 6 ++-- dev/manual/interop.html | 6 ++-- dev/manual/quantum.html | 12 +++---- dev/manual/tensor-network.html | 18 +++++----- dev/manual/tensors.html | 32 +++++++++--------- 50 files changed, 130 insertions(+), 130 deletions(-) rename dev/assets/{app.BjY0cXzg.js => app.DfVn7wTA.js} (95%) delete mode 100644 dev/assets/chunks/@localSearchIndexroot.-jLok-8K.js create mode 100644 dev/assets/chunks/@localSearchIndexroot.BaM3Q09T.js rename dev/assets/chunks/{VPLocalSearchBox.lKuXHoIf.js => VPLocalSearchBox.RMvoiZTn.js} (99%) rename dev/assets/chunks/{theme.Cx9ooDF0.js => theme.nTp9SXyW.js} (99%) rename dev/assets/{kbokwjv.CYEaoWcy.png => cnavjwh.CYEaoWcy.png} (100%) rename dev/assets/{developer_cached-field.md.B_AWlHVq.js => developer_cached-field.md.Cmyiwq3r.js} (83%) rename dev/assets/{developer_cached-field.md.B_AWlHVq.lean.js => developer_cached-field.md.Cmyiwq3r.lean.js} (83%) rename dev/assets/{developer_type-hierarchy.md.DcV_8jOT.js => developer_type-hierarchy.md.BjTa1Aju.js} (98%) rename dev/assets/{developer_type-hierarchy.md.DcV_8jOT.lean.js => developer_type-hierarchy.md.BjTa1Aju.lean.js} (98%) rename dev/assets/{qmushen.DCSEWFbY.png => dnyvvec.DCSEWFbY.png} (100%) rename dev/assets/{vozhwyd.BSPoQFMq.png => ipwewba.BSPoQFMq.png} (100%) rename dev/assets/{crkzkcf.CAVjj1nl.png => jkhnglw.CAVjj1nl.png} (100%) rename dev/assets/{manual_ansatz_mps.md.C62jyDkY.js => manual_ansatz_mps.md.DpMxNGsl.js} (93%) rename dev/assets/{manual_ansatz_mps.md.C62jyDkY.lean.js => manual_ansatz_mps.md.DpMxNGsl.lean.js} (93%) rename dev/assets/{manual_quantum.md.WCVF5RCt.js => manual_quantum.md.BunFFBiF.js} (99%) rename dev/assets/{manual_quantum.md.WCVF5RCt.lean.js => manual_quantum.md.BunFFBiF.lean.js} (99%) rename dev/assets/{manual_tensor-network.md.uezHtmX5.js => manual_tensor-network.md.BBYri5cY.js} (99%) rename dev/assets/{manual_tensor-network.md.uezHtmX5.lean.js => manual_tensor-network.md.BBYri5cY.lean.js} (99%) rename dev/assets/{manual_tensors.md.a3W2w8t2.js => manual_tensors.md.CzWy8o0t.js} (96%) rename dev/assets/{manual_tensors.md.a3W2w8t2.lean.js => manual_tensors.md.CzWy8o0t.lean.js} (96%) rename dev/assets/{dmoxukl.B1dF7YaL.png => mbvmgwa.B1dF7YaL.png} (100%) rename dev/assets/{eeyglrh.CiEHhneS.png => mvyjnss.CiEHhneS.png} (100%) rename dev/assets/{cblfvlm.B6-AUJNQ.png => rmmtjxg.B6-AUJNQ.png} (100%) rename dev/assets/{gmrnxrd.C4FqEdjF.png => szaubeg.C4FqEdjF.png} (100%) create mode 100644 dev/assets/szofggk.xhSXnThi.png rename dev/assets/{fqsyfdd.DoxsvESl.png => utsnnjz.DoxsvESl.png} (100%) delete mode 100644 dev/assets/yzghtzv.BAfAYm2R.png diff --git a/dev/404.html b/dev/404.html index f0c99aa81..5f416fe0a 100644 --- a/dev/404.html +++ b/dev/404.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@
- + \ No newline at end of file diff --git a/dev/api/ansatz.html b/dev/api/ansatz.html index 995ce3df6..767949d0c 100644 --- a/dev/api/ansatz.html +++ b/dev/api/ansatz.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@
Skip to content

Ansatz

Tenet.Lattice Type
julia
Lattice

A lattice is a graph where the vertices are Sites and the edges are virtual bonds. It is used for representing the topology of a Ansatz Tensor Network. It fulfills the AbstractGraph interface.

source

Tenet.Lattice Method
julia
Lattice(::Val{:chain}, n; periodic=false)

Create a chain lattice with n sites.

source

Tenet.Lattice Method
julia
Lattice(::Val{:lieb}, nrows, ncols)

Create a Lieb lattice with nrows cell rows and ncols cell columns.

source

Tenet.Lattice Method
julia
Lattice(::Val{:rectangular}, nrows, ncols; periodic=false)

Create a rectangular lattice with nrows rows and ncols columns.

source

Graphs.edges Method
julia
Graphs.edges(::Lattice)

Return the edges of the lattice; i.e. pairs of Lanes.

source

Graphs.has_edge Method
julia
Graphs.has_edge(lattice::Lattice, edge)
 Graphs.has_edge(lattice::Lattice, a::Lane, b::Lane)

Return true if the lattice has the given edge.

source

Graphs.has_vertex Method
julia
Graphs.has_vertex(lattice::Lattice, lane::AbstractLane)

Return true if the lattice has the given Lane.

source

Graphs.ne Method
julia
Graphs.ne(::Lattice)

Return the number of edges in the lattice.

source

Graphs.neighbors Method
julia
Graphs.neighbors(lattice::Lattice, lane::AbstractLane)

Return the neighbors Lanes of the given Lane.

source

Graphs.nv Method
julia
Graphs.nv(::Lattice)

Return the number of vertices; i.e. Lanes, in the lattice.

source

Graphs.vertices Method
julia
Graphs.vertices(::Lattice)

Return the vertices of the lattice; i.e. the list of Lanes.

source

Tenet.AbstractAnsatz Type
julia
AbstractAnsatz

Abstract type for Ansatz-derived types. Its subtypes must implement conversion or extraction to the underlying Ansatz.

source

Tenet.Ansatz Type
julia
Ansatz

AbstractQuantum Tensor Network together with a Lattice for connectivity information between Lanes.

source

Tenet.Boundary Type
julia
Boundary

Abstract type representing the boundary condition trait of a AbstractAnsatz Tensor Network.

source

Tenet.Canonical Type
julia
Canonical

Form trait representing a AbstractAnsatz Tensor Network in canonical form or Vidal gauge.

source

Tenet.Form Type
julia
Form

Abstract type representing the canonical form trait of a AbstractAnsatz Tensor Network.

source

Tenet.MixedCanonical Type
julia
MixedCanonical

Form trait representing a AbstractAnsatz Tensor Network in mixed-canonical form.

  • The orthogonality center is a Lane or a vector of Lanes. The tensors to the left of the orthogonality center are left-canonical and the tensors to the right are right-canonical.

source

Tenet.NonCanonical Type
julia
NonCanonical

Form trait representing a AbstractAnsatz Tensor Network in non-canonical form.

source

Tenet.Open Type
julia
Open

Boundary trait representing an open boundary condition.

source

Tenet.Periodic Type
julia
Periodic

Boundary trait representing a periodic boundary condition.

source

Tenet.Quantum Method
julia
Quantum(tn::AbstractAnsatz)

Return the underlying Quantum Tensor Network of an AbstractAnsatz.

source

Base.truncate Method
julia
truncate(tn::AbstractAnsatz, bond; threshold = nothing, maxdim = nothing)

Like truncate!, but returns a new Tensor Network instead of modifying the original one.

source

EinExprs.inds Method
julia
inds(tn::AbstractAnsatz; bond)

Return the index of the virtual bond between two AbstractLanes in a AbstractAnsatz Tensor Network.

source

Graphs.has_edge Method
julia
has_edge(tn::AbstractAnsatz, a::AbstractLane, b::AbstractLane)

Check whether there is an edge between two AbstractLanes in the Lattice of the AbstractAnsatz Tensor Network.

source

Graphs.neighbors Method
julia
neighbors(tn::AbstractAnsatz, lane::AbstractLane)

Return the neighboring sites of a given AbstractLane in the Lattice of the AbstractAnsatz Tensor Network.

source

LinearAlgebra.normalize Method
julia
normalize!::AbstractAnsatz, at)

Normalize the state at a given Site or bond in a AbstractAnsatz Tensor Network.

source

Tenet.canonize! Function
julia
canonize!(tn::AbstractAnsatz)

Transform an AbstractAnsatz Tensor Network into the canonical form (aka Vidal gauge); i.e. the singular values matrix Λᵢ between each tensor Γᵢ₋₁ and Γᵢ.

source

Tenet.canonize Method
julia
canonize(tn::AbstractAnsatz)

Like canonize!, but returns a new Tensor Network instead of modifying the original one.

source

Tenet.contract! Method
julia
contract!(tn::AbstractAnsatz; bond)

Contract the virtual bond between two AbstractLanes in a AbstractAnsatz Tensor Network.

source

Tenet.evolve! Method
julia
evolve!::AbstractAnsatz, gate; threshold = nothing, maxdim = nothing, normalize = false)

Evolve (through time) a AbstractAnsatz Tensor Network with a gate operator.

Note

Currently only the "Simple Update" algorithm is implemented.

Arguments

  • ψ: Tensor Network representing the state.

  • gate: The gate operator to evolve the state with.

Keyword Arguments

  • threshold: The threshold to truncate the bond dimension.

  • maxdim: The maximum bond dimension to keep.

  • normalize: Whether to normalize the state after truncation.

Notes

  • The gate must act on neighboring sites according to the Lattice of the Tensor Network.

  • The gate must have the same number of inputs and outputs.

  • Currently only the "Simple Update" algorithm is used and the gate must be a 1-site or 2-site operator.

source

Tenet.expect Method
julia
expect::AbstractAnsatz, observable)

Compute the expectation value of an observable on a AbstractAnsatz Tensor Network.

Arguments

  • ψ: Tensor Network representing the state.

  • observable: The observable to compute the expectation value. If a Vector or Tuple of observables is provided, the sum of the expectation values is returned.

Keyword Arguments

  • bra: The bra state. Defaults to a copy of ψ.

source

Tenet.form Function
julia
form(tn::AbstractAnsatz)

Return the canonical form of the AbstractAnsatz Tensor Network.

source

Tenet.isisometry Function
julia
isisometry(tn::AbstractAnsatz, lane; dir, kwargs...)

Check if the tensor at a given Lane in a AbstractAnsatz Tensor Network is an isometry. The dir keyword argument specifies the direction of the isometry to check.

source

Tenet.lattice Method
julia
lattice(tn::AbstractAnsatz)

Return the Lattice of the AbstractAnsatz Tensor Network.

source

Tenet.mixed_canonize! Function
julia
mixed_canonize!(tn::AbstractAnsatz, orthog_center)

Transform an AbstractAnsatz Tensor Network into the mixed-canonical form, that is, for i < orthog_center the tensors are left-canonical and for i >= orthog_center the tensors are right-canonical, and in the orthog_center there is a tensor with the Schmidt coefficients in it.

source

Tenet.mixed_canonize Method
julia
mixed_canonize(tn::AbstractAnsatz, orthog_center)

Like mixed_canonize!, but returns a new Tensor Network instead of modifying the original one.

source

Tenet.overlap Method
julia
overlap(a::AbstractAnsatz, b::AbstractAnsatz)

Compute the overlap between two AbstractAnsatz Tensor Networks.

source

Tenet.simple_update! Method
julia
simple_update!::AbstractAnsatz, gate; threshold = nothing, maxdim = nothing, kwargs...)

Update a AbstractAnsatz Tensor Network with a gate operator using the "Simple Update" algorithm. kwargs are passed to the truncate! method in the case of a multi-site gate.

Warning

Currently only 1-site and 2-site gates are supported.

Arguments

  • ψ: Tensor Network representing the state.

  • gate: The gate operator to update the state with.

Keyword Arguments

  • threshold: The threshold to truncate the bond dimension.

  • maxdim: The maximum bond dimension to keep.

  • normalize: Whether to normalize the state after truncation.

Notes

  • If both threshold and maxdim are provided, maxdim is used.

source

Tenet.tensors Method
julia
tensors(tn::AbstractAnsatz; bond)

Return the Tensor in a virtual bond between two AbstractLanes in a AbstractAnsatz Tensor Network.

Notes

  • If the AbstractAnsatz Tensor Network is in the canonical form, Tenet stores the Schmidt coefficients of the bond in a vector connected to the bond hyperedge between the two sites and the vector.

  • If the bond contains no Schmidt coefficients, this method will throw a MissingSchmidtCoefficientsException.

source

Tenet.truncate! Method
julia
truncate!(::Canonical, tn::AbstractAnsatz, bond; canonize=true, kwargs...)

Truncate the dimension of the virtual bond of a Canonical Tensor Network by keeping the maxdim largest Schmidt coefficients or those larger than threshold, and then canonizes the Tensor Network if canonize is true.

source

Tenet.truncate! Method
julia
truncate!(::NonCanonical, tn::AbstractAnsatz, bond; threshold, maxdim, compute_local_svd=true)

Truncate the dimension of the virtual bond of a NonCanonical Tensor Network by contracting the bond, performing an SVD and keeping the maxdim largest singular values or those larger than threshold.

Arguments

Keyword Arguments

  • threshold: The threshold to truncate the bond dimension.

  • maxdim: The maximum bond dimension to keep.

  • compute_local_svd: Whether to compute the local SVD of the bond. If true, it will contract the bond and perform a SVD to get the local singular values. Defaults to true.

  • normalize: Whether to normalize the state at the bond after truncation. Defaults to false.

source

Tenet.truncate! Method
julia
truncate!(tn::AbstractAnsatz, bond; threshold = nothing, maxdim = nothing)

Truncate the dimension of the virtual bond``of an [Ansatz](@ref) Tensor Network. Dispatches to the appropriate method based on the [form`](@ref) of the Tensor Network:

  • If the Tensor Network is in the MixedCanonical form, the bond is truncated by moving the orthogonality center to the bond and keeping the maxdim largest Schmidt coefficients or those larger than threshold.

  • If the Tensor Network is in the Canonical form, the bond is truncated by keeping the maxdim largest Schmidt coefficients or those larger than threshold, and then recanonizing the Tensor Network.

  • If the Tensor Network is in the NonCanonical form, the bond is truncated by contracting the bond, performing an SVD and keeping the maxdim largest singular values or those larger than threshold.

Notes

  • Either threshold or maxdim must be provided. If both are provided, maxdim is used.

source

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/api/mps.html b/dev/api/mps.html index 8cec5280d..eea356948 100644 --- a/dev/api/mps.html +++ b/dev/api/mps.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

MPS

Tenet.MPO Type
julia
MPO <: AbstractAnsatz

A Matrix Product Operator (MPO) Ansatz Tensor Network.

source

Tenet.MPO Method
julia
MPO(arrays::Vector{<:AbstractArray}; order=defaultorder(MPO))

Create a NonCanonical MPO from a vector of arrays.

Keyword Arguments

  • order The order of the indices in the arrays. Defaults to (:o, :i, :l, :r).

source

Tenet.MPS Type
julia
MPS <: AbstractAnsatz

A Matrix Product State Ansatz Tensor Network.

source

Tenet.MPS Method
julia
MPS(arrays::Vector{<:AbstractArray}; order=defaultorder(MPS))

Create a NonCanonical MPS from a vector of arrays.

Keyword Arguments

  • order The order of the indices in the arrays. Defaults to (:o, :l, :r).

source

Tenet.MPS Method
julia
MPS(::typeof(identity), n::Integer; physdim=2, maxdim=physdim^(n ÷ 2))

Returns an MPS of n sites whose tensors are initialized to COPY-tensors.

Keyword Arguments

  • physdim The physical or output dimension of each site. Defaults to 2.

  • maxdim The maximum bond dimension. Defaults to physdim^(n ÷ 2).

source

Base.rand Method
julia
Base.rand(rng::Random.AbstractRNG, ::Type{MPO}; n, maxdim, eltype=Float64, physdim=2)

Create a random MPO Tensor Network. In order to avoid norm explosion issues, the tensors are orthogonalized by QR factorization so its normalized and mixed canonized to the last site.

Keyword Arguments

  • n The number of sites.

  • maxdim The maximum bond dimension. If it is nothing, the maximum bond dimension increases exponentially with the number of sites up to (physdim^2)^(n ÷ 2).

  • eltype The element type of the tensors. Defaults to Float64.

  • physdim The physical or output dimension of each site. Defaults to 2.

source

Base.rand Method
julia
Base.rand(rng::Random.AbstractRNG, ::Type{MPS}; n, maxdim, eltype=Float64, physdim=2)

Create a random MPS Tensor Network in the MixedCanonical form where all tensors are right-canonical (ortogonality center at the first site). In order to avoid norm explosion issues, the tensors are orthogonalized by LQ factorization.

Keyword Arguments

  • n The number of sites.

  • maxdim The maximum bond dimension. If it is nothing, the maximum bond dimension increases exponentially with the number of sites up to physdim^(n ÷ 2).

  • eltype The element type of the tensors. Defaults to Float64.

  • physdim The physical or output dimension of each site. Defaults to 2.

source

Tenet.check_form Method
julia
check_form(mps::AbstractMPO)

Check if the tensors in the mps are in the proper Form.

source

Tenet.contract Method
julia
Tenet.contract!(tn::AbstractMPO; between=(site1, site2), direction::Symbol = :left, delete_Λ = true)

For a given AbstractMPO Tensor Network, contract the singular values Λ between two sites site1 and site2. The direction keyword argument specifies the direction of the contraction, and the delete_Λ keyword argument specifies whether to delete the singular values tensor after the contraction.

source

Tenet.evolve! Method
julia
evolve!::AbstractAnsatz, mpo::AbstractMPO; threshold=nothing, maxdim=nothing, normalize=true, reset_index=true)

Evolve the AbstractAnsatz ψ with the AbstractMPO mpo along the output indices of ψ. If threshold or maxdim are not nothing, the tensors are truncated after each sweep at the proper value, and the bond is normalized if normalize=true. If reset_index=true, the indices of the ψ are reset to the original ones.

source

Tenet.truncate_sweep! Method
julia
truncate_sweep!

Do a right-to-left QR sweep on the AbstractMPO ψ and then left-to-right SVD sweep and truncate the tensors according to the threshold or maxdim values. The bond is normalized if normalize=true.

source

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/api/product.html b/dev/api/product.html index 765ff926a..79eabe659 100644 --- a/dev/api/product.html +++ b/dev/api/product.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

Product

Tenet.Product Type
julia
Product <: AbstractAnsatz

An Ansatz represented as a tensor product.

Constructors

If you pass an Abstract{<:AbstractVector} to the constructor, it will create a State. If you pass an Abstract{<:AbstractMatrix} to the constructor, it will create an Operator.

source

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/api/quantum.html b/dev/api/quantum.html index e9e63be8e..a7b670c83 100644 --- a/dev/api/quantum.html +++ b/dev/api/quantum.html @@ -9,9 +9,9 @@ - + - + @@ -26,7 +26,7 @@ lane"i,j,..."

Represents the location of a physical index.

See also: Site, lanes

source

Tenet.Site Type
julia
Site(id[; dual = false])
 Site(i, j, ...[; dual = false])
 site"i,j,...[']"

Represents a Lane with an annotation of input or output. Site objects are used to label the indices of tensors in a Quantum Tensor Network.

See also: Lane, sites, isdual

source

Base.adjoint Method
julia
adjoint(site::Site)

Returns the adjoint of site, i.e. a new Site object with the same coordinates as site but with the dual flag flipped (so an input site becomes an output site and vice versa).

source

Tenet.id Function
julia
id(lane::AbstractLane)

Returns the coordinate location of the lane.

See also: lanes

source

Tenet.isdual Method
julia
isdual(site::Site)

Returns true if site is a dual site (i.e. is a "input"), false otherwise (i.e. is an "output").

See also: adjoint(::Site)

source

Tenet.@lane_str Macro
julia
lane"i,j,..."

Constructs a Lane object with the given coordinates. The coordinates are given as a comma-separated list of integers.

See also: Lane, @site_str

source

Tenet.@site_str Macro
julia
site"i,j,...[']"

Constructs a Site object with the given coordinates. The coordinates are given as a comma-separated list of integers. Optionally, a trailing ' can be added to indicate that the site is a dual site (i.e. an "input").

See also: Site, @lane_str

source

Tenet.AbstractQuantum Type
julia
AbstractQuantum

Abstract type for Quantum-derived types. Its subtypes must implement conversion or extraction of the underlying Quantum by overloading the Quantum constructor.

source

Tenet.Operator Type
julia
Operator <: Socket

Socket representing an operator; i.e. a Tensor Network with both input and output sites.

source

Tenet.Quantum Type
julia
Quantum

Tensor Network with a notion of "causality". This leads to the concept of sites and directionality (input/output).

Notes

source

Tenet.Scalar Type
julia
Scalar <: Socket

Socket representing a scalar; i.e. a Tensor Network with no open sites.

source

Tenet.Socket Type
julia
Socket

Abstract type representing the socket trait of a AbstractQuantum Tensor Network.

source

Tenet.State Type
julia
State <: Socket

Socket representing a state; i.e. a Tensor Network with only input sites (or only output sites if dual = true).

source

Tenet.TensorNetwork Method
julia
TensorNetwork(q::AbstractQuantum)

Return the underlying TensorNetwork of an AbstractQuantum.

source

Base.adjoint Method
julia
Base.adjoint(::AbstractQuantum)

Return the adjoint of a Quantum Tensor Network; i.e. the conjugate Tensor Network with the inputs and outputs swapped.

source

Base.merge! Method
julia
Base.merge!(::AbstractQuantum...; reset=true)

Merge in-place multiple AbstractQuantum Tensor Networks. If reset=true, then all indices are renamed. If reset=false, then only the indices of the input/output sites are renamed.

See also: merge, @reindex!.

source

Base.merge Method
julia
Base.merge(a::AbstractQuantum, b::AbstractQuantum; reset=true)

Merge multiple AbstractQuantum Tensor Networks. If reset=true, then all indices are renamed. If reset=false, then only the indices of the input/output sites are renamed.

See also: merge!, @reindex!.

source

LinearAlgebra.adjoint! Method
julia
LinearAlgebra.adjoint!(::AbstractQuantum)

Like adjoint, but in-place.

source

LinearAlgebra.norm Function
julia
LinearAlgebra.norm(::AbstractQuantum, p=2; kwargs...)

Return the Lp-norm of a AbstractQuantum Tensor Network.

Warning

Only L2-norm is implemented yet.

source

Tenet.isconnectable Method
julia
isconnectable(a::AbstractQuantum, b::AbstractQuantum)

Return true if two AbstractQuantum Tensor Networks can be connected. This means:

  1. The outputs of a are a superset of the inputs of b.

  2. The outputs of a and b are disjoint except for the sites that are connected.

source

Tenet.lanes Method
julia
lanes(q::AbstractQuantum)

Return the lanes of a AbstractQuantum Tensor Network.

source

Tenet.nlanes Method
julia
nlanes(q::AbstractQuantum)

Return the number of lanes of a AbstractQuantum Tensor Network.

source

Tenet.nsites Method
julia
nsites(q::AbstractQuantum)

Return the number of sites of a AbstractQuantum Tensor Network.

source

Tenet.sites Function
julia
sites(q::AbstractQuantum)

Return the sites of a AbstractQuantum Tensor Network.

source

Tenet.socket Method
julia
socket(q::AbstractQuantum)

Return the socket of a Quantum Tensor Network; i.e. whether it is a Scalar, State or Operator.

source

Tenet.@reindex! Macro
julia
@reindex! a => b reset=true

Rename in-place the indices of the input/output sites of two Quantum Tensor Networks to be able to connect between them. If reset=true, then all indices are renamed. If reset=false, then only the indices of the input/output sites are renamed.

source

- + \ No newline at end of file diff --git a/dev/api/tensor.html b/dev/api/tensor.html index 589488573..3f191aeb9 100644 --- a/dev/api/tensor.html +++ b/dev/api/tensor.html @@ -9,9 +9,9 @@ - + - + @@ -35,7 +35,7 @@ *(::Number, ::Tensor)

Alias for contract.

source

Base.:+ Method
julia
+(::Tensor, ::Tensor)

Add two tensors element-wise. The tensors must have the same indices, alghough the order of the indices can be different.

source

Base.:- Method
julia
-(::Tensor, ::Tensor)

Subtract two tensors element-wise. The tensors must have the same indices, alghough the order of the indices can be different.

source

LinearAlgebra.lu Method
julia
LinearAlgebra.lu(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform LU factorization on a tensor. Either left_inds or right_inds must be specified, unless ndims(tensor) == 2 in which case no indices need to be specified.

Keyword arguments

source

LinearAlgebra.qr Method
julia
LinearAlgebra.qr(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform QR factorization on a tensor. Either left_inds or right_inds must be specified, unless ndims(tensor) == 2 in which case no indices need to be specified.

Keyword arguments

source

LinearAlgebra.svd Method
julia
LinearAlgebra.svd(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform SVD factorization on a tensor. Either left_inds or right_inds must be specified, unless ndims(tensor) == 2 in which case no indices need to be specified.

Keyword arguments

source

Tenet.contract! Method
julia
contract!(c::Tensor, a::Tensor, b::Tensor)

Perform a binary tensor contraction operation between a and b and store the result in c.

source

Tenet.contract! Method
julia
contract!(c::Tensor, a::Tensor)

Perform a unary tensor contraction operation on a and store the result in c.

source

Tenet.contract Method
julia
contract(a::Tensor, b::Tensor; dims=∩(inds(a), inds(b)), out=nothing)

Perform a binary tensor contraction operation.

Keyword arguments

- `dims`: indices to contract over. Defaults to the set intersection of the indices of `a` and `b`.
 - `out`: indices of the output tensor. Defaults to the set difference of the indices of `a` and `b`.

source

Tenet.contract Method
julia
contract(a::Tensor; dims=∩(inds(a), inds(b)), out=nothing)

Perform a unary tensor contraction operation.

Keyword arguments

- `dims`: indices to contract over. Defaults to the repeated indices.
 - `out`: indices of the output tensor. Defaults to the unique indices.

source

- + \ No newline at end of file diff --git a/dev/api/tensornetwork.html b/dev/api/tensornetwork.html index ad7bd2fe1..a6c2d44db 100644 --- a/dev/api/tensornetwork.html +++ b/dev/api/tensornetwork.html @@ -9,9 +9,9 @@ - + - + @@ -27,7 +27,7 @@ pop!(tn::TensorNetwork, i::Union{Symbol,AbstractVecOrTuple{Symbol}})

Remove a tensor from the Tensor Network and returns it. If a Tensor is passed, then the first tensor satisfies egality (i.e. or ===) will be removed. If a Symbol or a list of Symbols is passed, then remove and return the tensors that contain all the indices.

See also: push!, delete!.

source

Base.push! Method
julia
push!(tn::AbstractTensorNetwork, tensor::Tensor)

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

Base.rand Method
julia
rand(TensorNetwork, n::Integer, regularity::Integer; out = 0, dim = 2:9, seed = nothing, globalind = false)

Generate a random tensor network.

Arguments

source

Base.replace! Method
julia
replace!(tn::AbstractTensorNetwork, old => new...)
 replace(tn::AbstractTensorNetwork, old => new...)

Replace the element in old with the one in new. Depending on the types of old and new, the following behaviour is expected:

source

Base.selectdim Method
julia
selectdim(tn::AbstractTensorNetwork, index::Symbol, i)

Return a copy of the AbstractTensorNetwork where index has been projected to dimension i.

See also: view, slice!.

source

Base.size Method
julia
size(tn::AbstractTensorNetwork)
 size(tn::AbstractTensorNetwork, index)

Return a mapping from indices to their dimensionalities.

If index is set, return the dimensionality of index. This is equivalent to size(tn)[index].

source

Base.view Method
julia
view(tn::AbstractTensorNetwork, index => i...)

Return a copy of the AbstractTensorNetwork where each index has been projected to dimension i. It is equivalent to a recursive call of selectdim.

See also: selectdim, slice!.

source

EinExprs.einexpr Method
julia
einexpr(tn::AbstractTensorNetwork; optimizer = EinExprs.Greedy, output = inds(tn, :open), kwargs...)

Search a contraction path for the given AbstractTensorNetwork and return it as a EinExpr.

Keyword Arguments

See also: contract.

source

EinExprs.inds Function
julia
inds(tn::AbstractTensorNetwork, set = :all)

Return the names of the indices in the AbstractTensorNetwork.

Keyword Arguments

source

Tenet.arrays Method
julia
arrays(tn::AbstractTensorNetwork; kwargs...)

Return a list of the arrays of in the TensorNetwork. It is equivalent to parent.(tensors(tn; kwargs...)).

source

Tenet.contract! Method
julia
contract!(tn::AbstractTensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

Tenet.contract! Method
julia
contract!(tn::AbstractTensorNetwork; path=einexpr(tn))

Same as contract but in-place.

See also: einexpr.

source

Tenet.contract Method
julia
contract(tn::AbstractTensorNetwork; path=einexpr(tn))

Contract a AbstractTensorNetwork. If path is not specified, the contraction order will be computed by einexpr.

See also: einexpr, contract!.

source

Tenet.groupinds! Method
julia
groupinds!(tn::AbstractTensorNetwork, i::Symbol)

Group indices parallel to i and reshape the tensors accordingly.

source

Tenet.ninds Method
julia
ninds(tn::TensorNetwork; kwargs...)

Return the number of indices in the TensorNetwork. It accepts the same keyword arguments as inds.

See also: ntensors

source

Tenet.ntensors Method
julia
ntensors(tn::AbstractTensorNetwork)

Return the number of tensors in the TensorNetwork. It accepts the same keyword arguments as tensors.

See also: ninds

source

Tenet.resetinds! Method
julia
resetinds!(tn::AbstractTensorNetwork; init::Int=1)

Rename all indices in the TensorNetwork to a new set of indices starting from initth Unicode character.

source

Tenet.slice! Method
julia
slice!(tn::AbstractTensorNetwork, index::Symbol, i)

In-place projection of index on dimension i.

See also: selectdim, view.

source

Tenet.tensors Function
julia
tensors(tn::AbstractTensorNetwork)

Return a list of the Tensors in the AbstractTensorNetwork.

Implementation details

source

- + \ No newline at end of file diff --git a/dev/api/transformations.html b/dev/api/transformations.html index 4e6ddc7d5..23123d4f2 100644 --- a/dev/api/transformations.html +++ b/dev/api/transformations.html @@ -9,9 +9,9 @@ - + - + @@ -24,7 +24,7 @@
Skip to content

Transformations

Tenet.transform! Function
julia
transform!(tn::TensorNetwork, config::Transformation)
 transform!(tn::TensorNetwork, configs)

In-place version of transform.

source

Tenet.transform Method
julia
transform(tn::TensorNetwork, config::Transformation)
 transform(tn::TensorNetwork, configs)

Return a new TensorNetwork where some Transformation has been performed into it.

See also: transform!.

source

Tenet.AntiDiagonalGauging Type
julia
AntiDiagonalGauging <: Transformation

Reverse the order of tensor indices that fulfill the anti-diagonal condition. While this transformation doesn't directly enhance computational efficiency, it sets up the TensorNetwork for other operations that do.

Keyword Arguments

  • atol Absolute tolerance. Defaults to 1e-12.

  • skip List of indices to skip. Defaults to [].

source

Tenet.ContractSimplification Type
julia
ContractSimplification <: Transformation

Preemptively contract tensors whose result doesn't increase in size.

source

Tenet.DiagonalReduction Type
julia
DiagonalReduction <: Transformation

Reduce the dimension of a Tensor in a TensorNetwork when it has a pair of indices that fulfil a diagonal structure.

Keyword Arguments

  • atol Absolute tolerance. Defaults to 1e-12.

source

Tenet.HyperFlatten Type
julia
HyperFlatten <: Transformation

Convert hyperindices to COPY-tensors, represented by DeltaArrays. This transformation is always used by default when visualizing a TensorNetwork with plot.

See also: HyperGroup.

source

Tenet.HyperGroup Type
julia
HyperGroup <: Transformation

Convert COPY-tensors, represented by DeltaArrays, to hyperindices.

See also: HyperFlatten.

source

Tenet.SplitSimplification Type
julia
SplitSimplification <: Transformation

Reduce the rank of tensors in the TensorNetwork by decomposing them using the Singular Value Decomposition (SVD). Tensors whose factorization do not increase the maximum rank of the network are left decomposed.

Keyword Arguments

  • atol Absolute tolerance. Defaults to 1e-10.

source

Tenet.Truncate Type
julia
Truncate <: Transformation

Truncate the dimension of a Tensor in a TensorNetwork when it contains columns with all elements smaller than atol.

Keyword Arguments

  • atol Absolute tolerance. Defaults to 1e-12.

  • skip List of indices to skip. Defaults to [].

source

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/assets/app.BjY0cXzg.js b/dev/assets/app.DfVn7wTA.js similarity index 95% rename from dev/assets/app.BjY0cXzg.js rename to dev/assets/app.DfVn7wTA.js index 0d74b3e9a..50fa74078 100644 --- a/dev/assets/app.BjY0cXzg.js +++ b/dev/assets/app.DfVn7wTA.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.Cx9ooDF0.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.B1oJu5R7.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{R as p}from"./chunks/theme.nTp9SXyW.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a4 as S}from"./chunks/framework.B1oJu5R7.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/dev/assets/chunks/@localSearchIndexroot.-jLok-8K.js b/dev/assets/chunks/@localSearchIndexroot.-jLok-8K.js deleted file mode 100644 index 84bb8e8fe..000000000 --- a/dev/assets/chunks/@localSearchIndexroot.-jLok-8K.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":43,"nextId":43,"documentIds":{"0":"/Tenet.jl/dev/api/ansatz#ansatz","1":"/Tenet.jl/dev/api/mps#mps","2":"/Tenet.jl/dev/api/product#product","3":"/Tenet.jl/dev/api/quantum#quantum","4":"/Tenet.jl/dev/api/tensor#tensor","5":"/Tenet.jl/dev/api/tensornetwork#tensornetwork","6":"/Tenet.jl/dev/api/transformations#transformations","7":"/Tenet.jl/dev/developer/cached-field#Cached-field","8":"/Tenet.jl/dev/developer/hypergraph#Hypergraph-representation","9":"/Tenet.jl/dev/developer/keyword-dispatch#Keyword-dispatch","10":"/Tenet.jl/dev/developer/type-hierarchy#Inheritance-and-Traits","11":"/Tenet.jl/dev/developer/unsafe-region#Unsafe-regions","12":"/Tenet.jl/dev/manual/ansatz/#ansatz","13":"/Tenet.jl/dev/manual/ansatz/#The-Lattice-type","14":"/Tenet.jl/dev/manual/ansatz/#The-Ansatz-type","15":"/Tenet.jl/dev/manual/ansatz/#canonization","16":"/Tenet.jl/dev/manual/ansatz/#The-Form-trait","17":"/Tenet.jl/dev/manual/ansatz/#Time-Evolution","18":"/Tenet.jl/dev/manual/ansatz/mps#Matrix-Product-States-(MPS)","19":"/Tenet.jl/dev/manual/ansatz/mps#Matrix-Product-Operators-(MPO)","20":"/Tenet.jl/dev/#features","21":"/Tenet.jl/dev/manual/ansatz/product#Product-ansatz","22":"/Tenet.jl/dev/manual/interop#interoperation","23":"/Tenet.jl/dev/manual/quantum#Quantum-Tensor-Networks","24":"/Tenet.jl/dev/manual/quantum#The-Site-type","25":"/Tenet.jl/dev/manual/quantum#The-Quantum-type","26":"/Tenet.jl/dev/manual/quantum#connectivity","27":"/Tenet.jl/dev/manual/quantum#The-Socket-trait","28":"/Tenet.jl/dev/manual/tensor-network#Tensor-Networks","29":"/Tenet.jl/dev/manual/tensor-network#The-TensorNetwork-type","30":"/Tenet.jl/dev/manual/tensor-network#The-AbstractTensorNetwork-interface","31":"/Tenet.jl/dev/manual/tensor-network#contraction","32":"/Tenet.jl/dev/manual/tensor-network#visualization","33":"/Tenet.jl/dev/manual/tensor-network#transformations","34":"/Tenet.jl/dev/manual/tensor-network#hyperflatten","35":"/Tenet.jl/dev/manual/tensor-network#Contraction-simplification","36":"/Tenet.jl/dev/manual/tensor-network#Diagonal-reduction","37":"/Tenet.jl/dev/manual/tensor-network#truncation","38":"/Tenet.jl/dev/manual/tensor-network#Split-simplification","39":"/Tenet.jl/dev/manual/tensors#tensors","40":"/Tenet.jl/dev/manual/tensors#The-Tensor-type","41":"/Tenet.jl/dev/manual/tensors#contraction","42":"/Tenet.jl/dev/manual/tensors#indexing"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,304],"1":[1,1,177],"2":[1,1,31],"3":[1,1,194],"4":[1,1,221],"5":[1,1,305],"6":[1,1,130],"7":[2,1,138],"8":[2,1,3],"9":[2,1,3],"10":[3,1,123],"11":[2,1,98],"12":[1,1,1],"13":[3,1,17],"14":[3,1,16],"15":[1,1,3],"16":[3,2,21],"17":[2,1,44],"18":[5,1,44],"19":[5,5,57],"20":[1,1,21],"21":[2,1,1],"22":[1,1,67],"23":[3,1,62],"24":[3,3,88],"25":[3,3,127],"26":[1,3,100],"27":[3,4,114],"28":[2,1,138],"29":[3,2,122],"30":[3,2,129],"31":[1,2,189],"32":[1,2,20],"33":[1,2,94],"34":[1,3,59],"35":[2,3,59],"36":[2,3,63],"37":[1,3,43],"38":[2,3,87],"39":[1,1,108],"40":[3,1,144],"41":[1,1,143],"42":[1,1,123]},"averageFieldLength":[1.930232558139535,1.6744186046511629,93.74418604651163],"storedFields":{"0":{"title":"Ansatz","titles":[]},"1":{"title":"MPS","titles":[]},"2":{"title":"Product","titles":[]},"3":{"title":"Quantum","titles":[]},"4":{"title":"Tensor","titles":[]},"5":{"title":"TensorNetwork","titles":[]},"6":{"title":"Transformations","titles":[]},"7":{"title":"Cached field","titles":[]},"8":{"title":"Hypergraph representation","titles":[]},"9":{"title":"Keyword dispatch","titles":[]},"10":{"title":"Inheritance and Traits","titles":[]},"11":{"title":"Unsafe regions","titles":[]},"12":{"title":"Ansatz","titles":[]},"13":{"title":"The Lattice type","titles":["Ansatz"]},"14":{"title":"The Ansatz type","titles":["Ansatz"]},"15":{"title":"Canonization","titles":["Ansatz"]},"16":{"title":"The Form trait","titles":["Ansatz","Canonization"]},"17":{"title":"Time Evolution","titles":["Ansatz"]},"18":{"title":"Matrix Product States (MPS)","titles":[]},"19":{"title":"Matrix Product Operators (MPO)","titles":["Matrix Product States (MPS)"]},"20":{"title":"Features","titles":[]},"21":{"title":"Product ansatz","titles":[]},"22":{"title":"Interoperation","titles":[]},"23":{"title":"Quantum Tensor Networks","titles":[]},"24":{"title":"The Site type","titles":["Quantum Tensor Networks"]},"25":{"title":"The Quantum type","titles":["Quantum Tensor Networks"]},"26":{"title":"Connectivity","titles":["Quantum Tensor Networks"]},"27":{"title":"The Socket trait","titles":["Quantum Tensor Networks","Connectivity"]},"28":{"title":"Tensor Networks","titles":[]},"29":{"title":"The TensorNetwork type","titles":["Tensor Networks"]},"30":{"title":"The AbstractTensorNetwork interface","titles":["Tensor Networks"]},"31":{"title":"Contraction","titles":["Tensor Networks"]},"32":{"title":"Visualization","titles":["Tensor Networks"]},"33":{"title":"Transformations","titles":["Tensor Networks"]},"34":{"title":"HyperFlatten","titles":["Tensor Networks","Transformations"]},"35":{"title":"Contraction simplification","titles":["Tensor Networks","Transformations"]},"36":{"title":"Diagonal reduction","titles":["Tensor Networks","Transformations"]},"37":{"title":"Truncation","titles":["Tensor Networks","Transformations"]},"38":{"title":"Split simplification","titles":["Tensor Networks","Transformations"]},"39":{"title":"Tensors","titles":[]},"40":{"title":"The Tensor type","titles":["Tensors"]},"41":{"title":"Contraction","titles":["Tensors"]},"42":{"title":"Indexing","titles":["Tensors"]}},"dirtCount":0,"index":[["≈",{"2":{"40":1}}],["77294",{"2":{"40":2}}],["787702",{"2":{"40":2}}],["781754",{"2":{"40":2}}],["725101",{"2":{"40":2}}],["711646",{"2":{"40":2}}],["7426230548599317",{"2":{"7":1}}],["↦fin",{"2":{"39":1}}],["×⋯×fdim⁡",{"2":{"39":1}}],["δαijin",{"2":{"36":1}}],["│",{"2":{"31":2}}],["└─",{"2":{"31":5}}],["├─",{"2":{"31":5}}],["🧭",{"2":{"30":1}}],["845283",{"2":{"40":2}}],["869066",{"2":{"40":2}}],["8",{"2":{"30":1,"31":6}}],["642123",{"2":{"40":2}}],["6",{"2":{"30":1,"38":1}}],["6639498557198327",{"2":{"7":1}}],["∑ijklmnopaimbijpcnjkdpklemnofol",{"2":{"28":1}}],["↩︎",{"2":{"27":2,"38":2,"42":3}}],["≠",{"2":{"25":1}}],["4im",{"2":{"40":3}}],["421327",{"2":{"40":2}}],["490043",{"2":{"40":2}}],["403171",{"2":{"40":2}}],["40",{"2":{"31":1}}],["4",{"2":{"24":4,"31":4,"38":1}}],["4311975915690427",{"2":{"7":1}}],[">|contains|",{"2":{"10":5}}],[">|inherits|",{"2":{"10":10}}],["⚠️",{"2":{"8":1,"9":1,"15":1,"17":1,"23":1}}],["568343",{"2":{"40":2}}],["565556",{"2":{"40":2}}],["553484",{"2":{"40":2}}],["553552238090315",{"2":{"7":1}}],["532181",{"2":{"40":2}}],["537256508739335",{"2":{"7":1}}],["526846",{"2":{"40":2}}],["5",{"2":{"10":10,"17":1,"24":8,"38":1,"40":3}}],["5138008417135007",{"2":{"7":1}}],["3im",{"2":{"40":3}}],["30",{"2":{"40":1}}],["368839",{"2":{"40":2}}],["352958",{"2":{"40":2}}],["332957",{"2":{"40":2}}],["3×5×2",{"2":{"40":2}}],["32",{"2":{"31":2}}],["3d",{"2":{"20":1}}],["3",{"2":{"7":1,"24":4,"25":10,"30":1,"37":7,"38":9,"39":1,"40":5,"42":9}}],["39",{"2":{"4":3,"5":5,"6":2,"7":1,"10":2,"17":1,"22":2,"27":1,"28":3,"29":1,"30":2,"31":2,"33":2,"35":2,"39":1,"40":1,"41":5}}],["|>",{"2":{"7":1,"25":1}}],["933661",{"2":{"40":2}}],["977913",{"2":{"40":2}}],["96007",{"2":{"40":2}}],["9474236865107496",{"2":{"7":1}}],["9088379345081677",{"2":{"7":1}}],["9",{"2":{"5":1}}],["≡",{"2":{"5":2}}],["∈fdim⁡",{"2":{"39":1}}],["∈",{"2":{"5":1,"25":1,"29":3}}],["xj=∑iaijcontract",{"2":{"41":1}}],["x",{"2":{"5":1}}],["x3c",{"2":{"1":4,"2":1,"3":3,"4":3,"5":1,"6":7}}],["`out`",{"2":{"4":2}}],["`b`",{"2":{"4":2}}],["`a`",{"2":{"4":2}}],["`dims`",{"2":{"4":2}}],["+",{"2":{"4":1,"40":2}}],["zeros",{"2":{"4":3,"25":3,"29":6,"36":1}}],["zero",{"2":{"4":2}}],["0+4im",{"2":{"40":1}}],["0+3im",{"2":{"40":1}}],["0+2im",{"2":{"40":1}}],["0+1im",{"2":{"40":1}}],["0705776",{"2":{"40":2}}],["09403",{"2":{"40":2}}],["0510473",{"2":{"40":2}}],["032284",{"2":{"40":2}}],["0",{"2":{"4":1,"5":1,"7":10,"25":16,"29":8,"30":128,"31":16,"37":1,"39":1,"40":79,"41":11,"42":7}}],["yj=∑iaijbjithen",{"2":{"41":1}}],["years",{"2":{"10":1}}],["yet",{"2":{"3":1,"24":1}}],["your",{"2":{"22":1,"27":1,"33":1}}],["you",{"2":{"2":2,"11":3,"16":1,"24":3,"26":1,"27":5,"29":3,"30":1,"31":7,"33":1,"39":3,"40":1,"41":3,"42":1}}],["j=",{"2":{"42":1}}],["j=1",{"2":{"42":1}}],["jokes",{"2":{"39":1}}],["jl",{"2":{"22":2}}],["java",{"2":{"10":1}}],["just",{"2":{"7":1,"24":1,"25":2,"26":1,"31":1,"39":2,"40":1,"41":1}}],["julia>",{"2":{"24":5,"25":9,"27":3,"29":5,"30":2,"31":1,"40":8,"41":4,"42":4}}],["juliajulia>",{"2":{"17":1,"24":3,"25":5,"27":1,"29":3,"30":3,"31":3,"40":6,"41":3,"42":4}}],["juliahypergroup",{"2":{"6":1}}],["juliahyperflatten",{"2":{"6":1}}],["juliahas",{"2":{"0":1}}],["juliagraphplot",{"2":{"32":1}}],["juliagraphs",{"2":{"0":7}}],["juliagroupinds",{"2":{"5":1}}],["juliaview",{"2":{"5":1}}],["juliaresetinds",{"2":{"5":1}}],["juliareplace",{"2":{"5":1}}],["juliarand",{"2":{"5":1}}],["juliadata",{"2":{"36":1,"37":1}}],["juliadiagonalreduction",{"2":{"6":1}}],["juliadim",{"2":{"4":1}}],["juliadelete",{"2":{"5":1,"7":1}}],["julia+",{"2":{"4":1}}],["julia",{"2":{"3":1,"4":2,"10":4,"11":1,"22":1,"26":1,"38":1}}],["julialinearalgebra",{"2":{"3":2,"4":3}}],["julialanes",{"2":{"3":1}}],["julialane",{"2":{"3":2}}],["julialattice",{"2":{"0":5}}],["juliasplitsimplification",{"2":{"6":1}}],["juliaslice",{"2":{"5":1}}],["juliaselectdim",{"2":{"5":1}}],["juliastate",{"2":{"3":1}}],["juliasocket",{"2":{"3":2}}],["juliascalar",{"2":{"3":1}}],["juliasize",{"2":{"5":1}}],["juliasites",{"2":{"3":1}}],["juliasite",{"2":{"3":2}}],["juliasimple",{"2":{"0":1}}],["juliapush",{"2":{"5":1}}],["juliapop",{"2":{"5":1}}],["juliaproduct",{"2":{"2":1}}],["juliaperiodic",{"2":{"0":1}}],["juliabase",{"2":{"1":2,"3":3,"4":14,"5":1}}],["juliaboundary",{"2":{"0":1}}],["juliamermaid",{"2":{"10":1}}],["juliamerge",{"2":{"5":1}}],["juliamps",{"2":{"1":3}}],["juliampo",{"2":{"1":2}}],["juliamixed",{"2":{"0":2}}],["juliamixedcanonical",{"2":{"0":1}}],["juliatn",{"2":{"7":1}}],["juliatransform",{"2":{"6":2}}],["juliatruncate",{"2":{"0":4,"1":1,"6":1}}],["juliatensor",{"2":{"4":2}}],["juliatensornetwork",{"2":{"3":1,"5":1}}],["juliatensors",{"2":{"0":1,"5":1}}],["juliatenet",{"2":{"1":1}}],["juliaoperator",{"2":{"3":1}}],["juliaopen",{"2":{"0":1}}],["juliaoverlap",{"2":{"0":1}}],["juliain",{"2":{"5":1}}],["juliainds",{"2":{"0":1,"4":1,"5":1}}],["juliaisconnectable",{"2":{"3":1}}],["juliaisdual",{"2":{"3":1}}],["juliaisisometry",{"2":{"0":1}}],["juliaid",{"2":{"3":1}}],["juliaeinexpr",{"2":{"5":1}}],["juliaexp",{"2":{"26":1}}],["juliaexpand",{"2":{"4":1}}],["juliaexpect",{"2":{"0":1}}],["juliaevolve",{"2":{"0":1,"1":1}}],["juliacopy",{"2":{"5":1}}],["juliaconj",{"2":{"5":1}}],["juliacontractsimplification",{"2":{"6":1}}],["juliacontract",{"2":{"0":1,"4":4,"5":3}}],["juliacheck",{"2":{"1":1}}],["juliacanonize",{"2":{"0":2}}],["juliacanonical",{"2":{"0":1}}],["juliantensors",{"2":{"5":1}}],["julianinds",{"2":{"5":1}}],["juliansites",{"2":{"3":1}}],["julianlanes",{"2":{"3":1}}],["julianormalize",{"2":{"0":1}}],["julianoncanonical",{"2":{"0":1}}],["julianeighbors",{"2":{"0":1}}],["juliaquantum",{"2":{"0":1,"3":1}}],["juliaform",{"2":{"0":2}}],["juliaa",{"2":{"7":1,"35":1}}],["juliaantidiagonalgauging",{"2":{"6":1}}],["juliaansatz",{"2":{"0":1}}],["juliaarrays",{"2":{"5":1}}],["juliaappend",{"2":{"5":1}}],["juliaabstracttensornetwork",{"2":{"5":1}}],["juliaabstractquantum",{"2":{"3":1}}],["juliaabstractansatz",{"2":{"0":1}}],["juliaadjoint",{"2":{"3":1}}],["j",{"2":{"3":6,"7":4,"25":3,"29":2,"30":1,"31":2,"34":1,"35":2,"36":3,"37":2,"38":1,"40":6,"41":3,"42":1}}],["λ",{"2":{"1":3}}],["λᵢ",{"2":{"0":1}}],["^",{"2":{"1":1}}],["qtn",{"2":{"25":13}}],["q",{"2":{"3":6}}],["qr",{"2":{"1":2,"4":5}}],["quasi",{"2":{"31":1}}],["quantum",{"0":{"3":1,"23":1,"25":1},"1":{"24":1,"25":1,"26":1,"27":1},"2":{"0":2,"3":8,"10":2,"14":1,"18":1,"23":3,"25":9,"26":4,"27":5}}],["query",{"2":{"30":1}}],["quimb",{"2":{"22":1,"33":1}}],["quot",{"2":{"0":6,"3":8,"10":2,"17":2,"24":2,"27":2}}],["÷",{"2":{"1":4}}],["heard",{"2":{"39":1}}],["here",{"2":{"39":1}}],["helper",{"2":{"24":1}}],["however",{"2":{"41":1,"42":1}}],["how",{"2":{"28":1}}],["history",{"2":{"38":1}}],["hide",{"2":{"34":6}}],["high",{"2":{"17":1}}],["hierarchy",{"2":{"10":1}}],["hypergroup",{"2":{"6":2,"34":1}}],["hypergraph",{"0":{"8":1},"2":{"5":1,"29":1,"34":1,"38":1}}],["hyperindices",{"2":{"6":2,"34":1}}],["hyperflatten",{"0":{"34":1},"2":{"6":2,"34":2}}],["hyper",{"2":{"5":1,"33":1}}],["hyperedge",{"2":{"0":1}}],["hadamard",{"2":{"41":1}}],["hardcode",{"2":{"24":1}}],["hard",{"2":{"11":1}}],["have",{"2":{"0":1,"4":2,"10":2,"19":2,"27":1,"29":1,"31":1,"36":1,"39":2}}],["hasn",{"2":{"7":1}}],["hash",{"2":{"5":1}}],["has",{"2":{"0":8,"5":2,"6":2,"10":2,"17":1,"25":1,"27":1,"28":1,"31":1,"38":1,"41":1,"42":1}}],["know",{"2":{"39":1}}],["known",{"2":{"18":1,"31":2,"39":1,"42":1}}],["kronecker",{"2":{"34":1}}],["kourtis",{"2":{"33":1}}],["kind",{"2":{"10":1}}],["k",{"2":{"7":2,"25":4,"29":2,"30":1,"31":3,"34":1,"35":1,"36":4,"37":1,"38":2,"40":2}}],["kwarg",{"2":{"7":1,"24":1,"25":2}}],["kwargs",{"2":{"0":4,"3":1,"4":5,"5":5}}],["key",{"2":{"40":1}}],["keys",{"2":{"5":1}}],["keywords",{"2":{"30":2}}],["keyword",{"0":{"9":1},"2":{"0":5,"1":7,"4":5,"5":4,"6":4,"30":4,"41":1}}],["keeping",{"2":{"0":5}}],["keep",{"2":{"0":3,"26":1,"41":1}}],["2im",{"2":{"40":3}}],["275976",{"2":{"40":2}}],["274",{"2":{"24":1}}],["2021",{"2":{"33":1}}],["2×2",{"2":{"29":1,"40":7,"41":2,"42":1}}],["2×2×2",{"2":{"25":1}}],["22802219992745554",{"2":{"7":1}}],["2",{"2":{"0":2,"1":7,"4":3,"5":1,"7":5,"19":1,"23":1,"25":14,"29":18,"34":8,"35":12,"36":7,"37":1,"38":2,"39":2,"40":13,"41":11,"42":6}}],["1im",{"2":{"40":3}}],["180907",{"2":{"40":2}}],["157816",{"2":{"40":2}}],["163714",{"2":{"40":2}}],["16",{"2":{"31":3}}],["1d",{"2":{"18":1}}],["19175585557059793",{"2":{"7":1}}],["1000s",{"2":{"7":1}}],["100",{"2":{"7":1}}],["10",{"2":{"6":1}}],["12",{"2":{"6":3}}],["1e",{"2":{"6":4}}],["1",{"2":{"0":2,"4":1,"19":3,"23":2,"24":4,"25":7,"28":1,"30":1,"31":1,"34":6,"36":3,"37":1,"38":1,"39":4,"40":12,"41":8,"42":9}}],["d",{"2":{"29":1,"40":3}}],["drastically",{"2":{"33":1}}],["drawn",{"2":{"26":1}}],["dropdims",{"2":{"4":2}}],["due",{"2":{"18":1}}],["dual=true",{"2":{"24":2}}],["dual",{"2":{"3":6,"24":1,"26":1,"27":2}}],["dynamic",{"2":{"16":1,"27":1}}],["dangerous",{"2":{"11":1}}],["dasharray",{"2":{"10":5}}],["data",{"2":{"4":5,"36":2,"37":2}}],["don",{"2":{"30":1,"31":1,"35":1}}],["down",{"2":{"26":2}}],["documentation",{"2":{"5":1}}],["does",{"2":{"4":1}}],["doesn",{"2":{"4":3,"6":2,"22":1,"30":1,"31":1,"33":1,"40":1}}],["do",{"2":{"1":1,"6":2,"10":1,"42":1}}],["diagrammatically",{"2":{"31":1}}],["diagonalreduction",{"2":{"6":1,"36":2}}],["diagonal",{"0":{"36":1},"2":{"6":2,"36":2}}],["dict",{"2":{"25":1}}],["dictionary",{"2":{"5":1}}],["difference",{"2":{"4":1,"19":1}}],["differentiation",{"2":{"20":1}}],["different",{"2":{"4":2,"17":1,"39":1,"41":1}}],["dim",{"2":{"4":5,"5":2}}],["dims=symbol",{"2":{"41":1}}],["dims=",{"2":{"41":2}}],["dims=∩",{"2":{"4":2}}],["dims",{"2":{"4":7,"41":4}}],["dimensional",{"2":{"24":1,"31":2,"39":1,"41":1}}],["dimensionality",{"2":{"5":1,"40":1,"42":2}}],["dimensionalities",{"2":{"5":1}}],["dimensions",{"2":{"4":4,"39":2,"40":3,"42":1}}],["dimension",{"2":{"0":9,"1":8,"4":6,"5":5,"6":2,"37":1,"41":1}}],["distribution",{"2":{"23":2}}],["disables",{"2":{"11":1}}],["disable",{"2":{"11":1}}],["dispatching",{"2":{"30":2}}],["dispatched",{"2":{"25":1,"40":1}}],["dispatches",{"2":{"0":1}}],["dispatch",{"0":{"9":1},"2":{"27":1,"30":1}}],["disjoint",{"2":{"3":1}}],["direct",{"2":{"42":1}}],["directly",{"2":{"6":1}}],["directionality",{"2":{"3":1}}],["direction",{"2":{"0":1,"1":3}}],["dir",{"2":{"0":2}}],["described",{"2":{"39":1}}],["design",{"2":{"10":1,"22":1,"28":1}}],["developments",{"2":{"38":1}}],["developed",{"2":{"11":1,"28":1}}],["depends",{"2":{"30":1,"31":1}}],["depending",{"2":{"5":1,"18":1,"27":2}}],["deciding",{"2":{"29":1}}],["decomposes",{"2":{"38":1}}],["decomposed",{"2":{"6":1}}],["decomposition",{"2":{"6":1,"38":2}}],["decomposing",{"2":{"6":1}}],["democritus",{"2":{"27":1}}],["deal",{"2":{"26":1}}],["deltas",{"2":{"34":1}}],["deltaarrays",{"2":{"6":2}}],["delegated",{"2":{"31":1}}],["delete",{"2":{"1":3,"5":2,"29":1}}],["details",{"2":{"5":1,"28":1}}],["definitions",{"2":{"42":1}}],["defines",{"2":{"28":1}}],["define",{"2":{"5":1,"40":1,"41":3}}],["default",{"2":{"5":1,"6":1,"24":1,"41":1}}],["defaults",{"2":{"0":3,"1":8,"4":13,"5":1,"6":6,"41":2}}],["derived",{"2":{"0":1,"3":1,"5":1}}],["γᵢ",{"2":{"0":1}}],["γᵢ₋₁",{"2":{"0":1}}],["ψ∣o∣ψ",{"2":{"26":1}}],["ψ",{"2":{"0":8,"1":5,"26":2,"27":2}}],["=∑iaii",{"2":{"39":1}}],["=c∈f∀i",{"2":{"39":1}}],["===",{"2":{"5":2}}],["==",{"2":{"4":4,"5":1}}],["=>",{"2":{"3":1,"5":3,"25":3,"29":1}}],["=",{"2":{"0":10,"1":2,"3":3,"4":1,"5":7,"7":4,"25":4,"26":1,"29":2,"30":1,"31":1,"34":6,"35":6,"36":5,"37":7,"38":7,"40":9,"42":1}}],["m1",{"2":{"38":2}}],["my",{"2":{"29":2}}],["m",{"2":{"27":1,"29":3,"30":3,"31":2,"35":2,"37":1,"38":1}}],["meaning",{"2":{"42":1}}],["means",{"2":{"3":1}}],["measurements",{"2":{"27":1}}],["me",{"2":{"27":1}}],["mechanics",{"2":{"23":1}}],["mechanism",{"2":{"7":1}}],["mentioned",{"2":{"5":3}}],["merge",{"2":{"3":8,"5":3,"26":3}}],["methods",{"2":{"4":1,"5":1,"10":1,"17":2,"25":2,"27":2,"29":1,"30":1,"33":1,"42":2}}],["method=",{"2":{"4":1}}],["method",{"2":{"0":3,"4":4,"5":1,"7":2,"27":2,"30":1,"31":1,"34":1}}],["mpos",{"2":{"19":1}}],["mpo",{"0":{"19":1},"2":{"1":9,"10":2,"19":1}}],["mpss",{"2":{"19":1}}],["mps",{"0":{"1":1,"18":1},"1":{"19":1},"2":{"1":10,"10":2,"18":1,"19":1,"28":1}}],["most",{"2":{"28":2}}],["motivation",{"2":{"27":1}}],["modern",{"2":{"10":1}}],["modification",{"2":{"28":1}}],["modified",{"2":{"7":1,"31":1}}],["modify",{"2":{"7":1,"11":1,"33":1}}],["modifying",{"2":{"0":3}}],["more",{"2":{"5":1,"24":1,"27":3,"28":3,"29":1,"30":1,"33":1}}],["moving",{"2":{"0":1}}],["missleading",{"2":{"42":1}}],["missingschmidtcoefficientsexception",{"2":{"0":1}}],["mind",{"2":{"41":1}}],["might",{"2":{"41":1}}],["mixed",{"2":{"0":5,"1":1}}],["mixedcanonical",{"2":{"0":2,"1":1}}],["mutated",{"2":{"31":1}}],["mutating",{"2":{"11":1}}],["much",{"2":{"28":1}}],["multiplication",{"2":{"31":1,"39":1,"41":2}}],["multiple",{"2":{"3":2,"11":1,"30":1}}],["multilinear",{"2":{"5":1,"39":1}}],["multi",{"2":{"0":1,"24":1}}],["must",{"2":{"0":5,"3":1,"4":5,"5":2,"29":1}}],["maps",{"2":{"39":1}}],["mapping",{"2":{"5":1,"25":1}}],["many",{"2":{"39":1,"40":1,"42":1}}],["manual",{"2":{"38":1}}],["manually",{"2":{"26":1,"31":1}}],["marked",{"2":{"25":2}}],["main",{"2":{"22":1}}],["makie",{"2":{"20":1,"32":1}}],["majority",{"2":{"28":1}}],["major",{"2":{"19":1}}],["matrices",{"2":{"39":2}}],["matrixproduct",{"2":{"19":1}}],["matrix",{"0":{"18":1,"19":1},"1":{"19":1},"2":{"0":1,"1":2,"18":1,"19":2,"23":1,"29":1,"31":1,"39":1,"40":7,"41":3,"42":3}}],["matter",{"2":{"31":1}}],["matching",{"2":{"26":1}}],["match",{"2":{"26":1}}],["mature",{"2":{"22":1}}],["mathematically",{"2":{"31":1}}],["mathematical",{"2":{"18":1,"28":1}}],["macro",{"2":{"11":1,"24":1}}],["may",{"2":{"11":1,"42":1}}],["maximum",{"2":{"0":3,"1":5,"6":1,"33":1}}],["maxdim=nothing",{"2":{"1":1}}],["maxdim=physdim^",{"2":{"1":1}}],["maxdim",{"2":{"0":17,"1":7}}],["ultimate",{"2":{"31":1}}],["underneath",{"2":{"42":1}}],["underlying",{"2":{"0":2,"3":2,"4":3,"5":1,"40":1}}],["until",{"2":{"31":1}}],["unrelated",{"2":{"30":1}}],["unusual",{"2":{"29":1}}],["unlike",{"2":{"26":1,"41":1}}],["unless",{"2":{"4":3}}],["unsafe",{"0":{"11":1},"2":{"11":4}}],["unicode",{"2":{"5":1}}],["union",{"2":{"5":1}}],["unique",{"2":{"4":1,"41":2}}],["uninitialize",{"2":{"4":1}}],["unary",{"2":{"4":2,"41":1}}],["up",{"2":{"1":2,"6":1,"26":2,"28":1,"31":1,"36":1}}],["update",{"2":{"0":7,"17":2}}],["usually",{"2":{"39":1}}],["useful",{"2":{"34":1}}],["user",{"2":{"26":1,"28":1,"41":3}}],["use",{"2":{"16":1,"24":2,"27":2,"29":1,"40":1,"42":1}}],["uses",{"2":{"5":1}}],["used",{"2":{"0":4,"3":1,"4":6,"6":1,"17":1,"19":1,"25":2,"31":1,"39":1}}],["using",{"2":{"0":1,"6":1,"29":1,"30":1,"31":1,"33":1,"38":1,"40":1,"42":1}}],["our",{"2":{"33":1}}],["out=",{"2":{"41":3}}],["out=nothing",{"2":{"4":2}}],["outer",{"2":{"38":1}}],["out",{"2":{"5":2,"18":1,"24":1,"27":1,"31":2,"41":4,"42":1}}],["output",{"2":{"1":4,"3":10,"4":2,"5":1,"19":2,"24":1,"26":2,"41":1,"42":1}}],["outputs=3",{"2":{"25":1}}],["outputs",{"2":{"0":1,"3":3,"5":1,"25":2,"27":1}}],["oop",{"2":{"10":2}}],["other",{"2":{"6":1,"7":1,"18":1,"22":1,"25":2,"40":1,"41":1,"42":2}}],["others",{"2":{"5":2}}],["otherwise",{"2":{"3":1}}],["overhead",{"2":{"7":2}}],["over",{"2":{"4":2,"39":1,"41":1}}],["overloading",{"2":{"3":1,"5":1}}],["overlap",{"2":{"0":2}}],["old",{"2":{"4":2,"5":4}}],["opposite",{"2":{"34":1}}],["optimization",{"2":{"31":1}}],["optimized",{"2":{"20":1,"27":2}}],["optimizer=exhaustive",{"2":{"31":1}}],["optimizer",{"2":{"5":4,"31":1}}],["optimal",{"2":{"31":3}}],["options",{"2":{"5":1}}],["optionally",{"2":{"3":1}}],["operations",{"2":{"6":1,"33":1,"39":1,"40":1,"41":1}}],["operation",{"2":{"4":4,"39":1,"41":2}}],["operators",{"0":{"19":1},"2":{"19":1,"23":1,"25":1}}],["operator",{"2":{"0":5,"1":1,"2":1,"3":3,"17":1,"19":2,"23":1,"27":4}}],["open",{"2":{"0":2,"3":1,"5":4,"18":1,"19":1,"25":2,"27":1,"29":1,"30":2}}],["obtaining",{"2":{"31":1}}],["objectid",{"2":{"5":1}}],["object",{"2":{"3":3,"4":1,"10":1,"23":2,"27":4,"30":1}}],["objects",{"2":{"3":1,"23":1,"29":1,"41":1}}],["observables",{"2":{"0":1}}],["observable",{"2":{"0":4}}],["o",{"2":{"1":2,"26":1,"27":1,"29":2,"30":1,"31":4,"35":2,"38":1}}],["once",{"2":{"31":1}}],["on",{"2":{"0":3,"1":1,"4":5,"5":3,"7":1,"10":1,"11":2,"18":1,"22":2,"24":1,"27":2,"28":2,"30":2,"31":2,"32":1,"41":2,"42":2}}],["only",{"2":{"0":3,"3":6,"5":2,"11":1,"17":1,"19":1,"24":2,"25":1,"28":1,"29":1}}],["oneto",{"2":{"42":2}}],["ones",{"2":{"1":1,"25":2,"40":1}}],["one",{"2":{"0":3,"5":4,"11":1,"26":1,"29":1,"36":1,"41":2}}],["oriented",{"2":{"10":1}}],["original",{"2":{"0":3,"1":1,"5":1,"34":1,"38":1}}],["ortogonality",{"2":{"1":1}}],["orthogonalized",{"2":{"1":2}}],["orthogonality",{"2":{"0":3}}],["orthog",{"2":{"0":5}}],["order",{"2":{"1":6,"4":3,"5":2,"6":1,"7":3,"11":1,"29":1,"31":3,"33":1,"39":2,"40":1,"42":2}}],["order=defaultorder",{"2":{"1":2}}],["or",{"2":{"0":12,"1":5,"3":4,"4":4,"5":4,"7":2,"10":2,"11":1,"18":1,"19":2,"24":4,"25":1,"27":3,"28":1,"29":1,"30":3,"33":1,"35":1,"39":2,"40":2,"41":2,"42":2}}],["offer",{"2":{"28":1}}],["offered",{"2":{"28":1}}],["of",{"2":{"0":38,"1":17,"3":30,"4":39,"5":29,"6":9,"7":9,"10":4,"11":3,"19":1,"20":2,"22":4,"23":4,"24":2,"25":3,"26":2,"27":3,"28":10,"29":4,"30":4,"31":7,"33":5,"35":2,"36":3,"37":2,"38":3,"39":7,"40":5,"41":4,"42":5}}],["give",{"2":{"39":1}}],["given",{"2":{"0":6,"1":1,"3":4,"4":9,"5":1,"37":1}}],["gonna",{"2":{"39":1}}],["good",{"2":{"33":1}}],["goal",{"2":{"31":1}}],["goes",{"2":{"26":2}}],["go",{"2":{"10":1,"26":1}}],["g",{"2":{"7":1,"25":1}}],["greedily",{"2":{"35":1}}],["greedy",{"2":{"5":1}}],["gray",{"2":{"33":1}}],["graphplot",{"2":{"32":1,"34":2}}],["graphmakie",{"2":{"32":2}}],["graphical",{"2":{"28":1}}],["graphs",{"2":{"0":10}}],["graph",{"2":{"0":1,"5":1,"10":1,"13":1,"28":2,"33":1,"34":1,"38":1}}],["grow",{"2":{"28":1}}],["group",{"2":{"5":1}}],["groupinds",{"2":{"5":1}}],["global",{"2":{"5":1}}],["globalind",{"2":{"5":2}}],["generic",{"2":{"17":1,"19":1}}],["generalization",{"2":{"23":1,"38":1}}],["general",{"2":{"10":1,"31":1}}],["generator",{"2":{"5":1}}],["generate",{"2":{"5":1}}],["getindex",{"2":{"4":3,"42":1}}],["get",{"2":{"0":1,"30":2,"31":2}}],["gt",{"2":{"0":1}}],["game",{"2":{"22":1}}],["gates",{"2":{"0":1}}],["gate",{"2":{"0":12}}],["gauge",{"2":{"0":2}}],["build",{"2":{"28":1}}],["built",{"2":{"22":1}}],["but",{"2":{"0":3,"3":2,"4":3,"5":4,"7":1,"10":2,"11":2,"17":1,"24":1,"27":1,"28":2,"29":1,"31":3,"33":1,"35":1,"38":3,"41":3,"42":1}}],["back",{"2":{"38":1}}],["backend",{"2":{"32":1}}],["bad",{"2":{"10":1}}],["based",{"2":{"0":1,"30":1,"31":1,"33":1}}],["base",{"2":{"0":1,"1":2,"3":4,"4":22,"5":14,"10":1,"42":4}}],["bit",{"2":{"29":1}}],["big",{"2":{"7":1,"26":1}}],["binary",{"2":{"4":2,"41":1}}],["brief",{"2":{"39":1}}],["broadcast",{"2":{"5":1}}],["bra",{"2":{"0":2}}],["by",{"2":{"0":5,"1":2,"3":2,"4":4,"5":2,"6":4,"7":1,"20":3,"24":1,"27":1,"28":3,"29":1,"30":1,"31":2,"33":1,"36":1,"39":1,"40":2,"41":1,"42":1}}],["before",{"2":{"33":1}}],["believe",{"2":{"27":1}}],["being",{"2":{"27":1,"28":1}}],["begin",{"2":{"11":1}}],["because",{"2":{"7":1,"29":1}}],["becomes",{"2":{"3":1}}],["been",{"2":{"5":2,"6":1,"7":1,"10":1,"31":2}}],["behaviour",{"2":{"5":1}}],["be",{"2":{"0":2,"3":3,"4":17,"5":5,"10":4,"11":1,"18":1,"23":2,"25":1,"26":2,"27":1,"28":4,"29":5,"31":4,"33":1,"34":1,"36":1,"38":1,"39":3,"40":1,"41":3,"42":2}}],["between=",{"2":{"1":1}}],["between",{"2":{"0":8,"1":1,"3":1,"4":1,"13":1,"19":1,"25":1,"36":2,"39":1,"42":2}}],["bottom",{"2":{"34":2}}],["both",{"2":{"0":2,"3":1,"41":1}}],["book",{"2":{"27":1}}],["bond``of",{"2":{"0":1}}],["bond",{"2":{"0":33,"1":7,"4":3}}],["bonds",{"2":{"0":1}}],["boundary",{"2":{"0":6,"18":2,"19":1}}],["b",{"2":{"0":3,"3":5,"4":5,"7":2,"29":1,"30":1,"34":2,"35":2,"37":2,"40":4,"41":5}}],["p",{"2":{"29":2,"30":1,"31":4,"35":1}}],["philosophy",{"2":{"28":1}}],["physicists",{"2":{"28":1}}],["physics",{"2":{"22":1,"28":2}}],["physical",{"2":{"1":3,"3":1,"24":2,"25":4,"27":1}}],["physdim^2",{"2":{"1":1}}],["physdim^",{"2":{"1":2}}],["physdim",{"2":{"1":3}}],["physdim=2",{"2":{"1":3}}],["penrose",{"2":{"38":1}}],["peps",{"2":{"28":1}}],["perspective",{"2":{"27":1}}],["per",{"2":{"5":1,"19":2}}],["permuting",{"2":{"33":1}}],["permutation",{"2":{"4":1}}],["permuted",{"2":{"4":1}}],["permutedims",{"2":{"4":2,"42":2}}],["permute",{"2":{"4":1,"40":1}}],["perm",{"2":{"4":2}}],["performance",{"2":{"11":1}}],["performed",{"2":{"6":1,"41":1}}],["perform",{"2":{"0":1,"4":7,"31":2,"41":2}}],["performing",{"2":{"0":2}}],["periodic",{"2":{"0":2,"18":1,"19":1}}],["periodic=false",{"2":{"0":2}}],["pictures",{"2":{"26":1}}],["purification",{"2":{"25":1}}],["push",{"2":{"5":3,"7":2,"11":2,"29":2}}],["p3",{"2":{"25":4}}],["p2",{"2":{"25":5}}],["p1",{"2":{"25":7}}],["pdes",{"2":{"22":1}}],["pytorch",{"2":{"22":1}}],["python",{"2":{"10":1,"22":2}}],["posible",{"2":{"29":1}}],["point",{"2":{"26":1,"28":1}}],["powered",{"2":{"20":3}}],["polymorphic",{"2":{"10":1}}],["popular",{"2":{"10":1}}],["pop",{"2":{"5":4,"7":2,"29":2}}],["plot",{"2":{"6":1}}],["place",{"2":{"3":3,"5":3,"6":1,"31":1,"38":1}}],["practice",{"2":{"10":1,"33":1}}],["prefer",{"2":{"42":1}}],["preemptive",{"2":{"35":1}}],["preemptively",{"2":{"6":1}}],["predefined",{"2":{"33":1}}],["prepare",{"2":{"33":1}}],["preserves",{"2":{"23":1}}],["present",{"2":{"7":1}}],["prone",{"2":{"28":1}}],["provides",{"2":{"25":1,"32":1,"33":1}}],["provided",{"2":{"0":4,"4":4,"31":1}}],["probably",{"2":{"39":2}}],["probabilities",{"2":{"23":2}}],["probability",{"2":{"23":3}}],["problems",{"2":{"29":1}}],["problem",{"2":{"22":1,"27":1,"31":1,"33":1}}],["programming",{"2":{"10":1}}],["projection",{"2":{"5":1}}],["projected",{"2":{"5":2}}],["property",{"2":{"23":1,"27":1}}],["proper",{"2":{"1":2}}],["product",{"0":{"2":1,"18":1,"19":1,"21":1},"1":{"19":1},"2":{"1":2,"2":2,"10":2,"18":1,"19":2,"38":1,"41":1}}],["p=2",{"2":{"3":1}}],["pattern",{"2":{"41":1}}],["path=path",{"2":{"31":1}}],["path=einexpr",{"2":{"5":2}}],["paths",{"2":{"31":2}}],["path",{"2":{"5":3,"31":9,"33":1,"35":1}}],["particular",{"2":{"10":1}}],["parts",{"2":{"7":1}}],["parallel",{"2":{"5":2}}],["parallelto",{"2":{"5":1}}],["parent",{"2":{"4":2,"5":1,"10":1,"28":2,"40":4}}],["pair",{"2":{"4":4,"6":1}}],["pairs",{"2":{"0":1,"4":1,"36":1}}],["passing",{"2":{"31":1,"40":1}}],["pass",{"2":{"2":2,"24":1,"29":1,"31":1}}],["passed",{"2":{"0":1,"5":3}}],["efficiently",{"2":{"23":1}}],["efficiency",{"2":{"6":1}}],["enough",{"2":{"41":2}}],["entities",{"2":{"23":1}}],["ends",{"2":{"11":1}}],["end",{"2":{"11":1,"36":3}}],["enhance",{"2":{"6":1}}],["errors",{"2":{"11":1,"28":1}}],["ergonomy",{"2":{"11":1}}],["ed",{"2":{"11":1}}],["edge",{"2":{"0":8}}],["edges",{"2":{"0":5,"5":1,"13":1,"28":1,"38":1}}],["essential",{"2":{"28":2}}],["es",{"2":{"10":1}}],["egality",{"2":{"5":2}}],["evolution",{"0":{"17":1},"2":{"17":1,"26":1}}],["evolved",{"2":{"17":1}}],["evolve",{"2":{"0":3,"1":2,"17":3}}],["evaluations",{"2":{"5":1}}],["evaluates",{"2":{"5":1}}],["every",{"2":{"5":1,"31":1}}],["equation",{"2":{"5":1,"28":1}}],["equals",{"2":{"4":1}}],["equivalent",{"2":{"4":3,"5":5,"31":1,"42":1}}],["elems",{"2":{"31":11}}],["elements",{"2":{"6":1,"35":1,"37":1}}],["element",{"2":{"1":2,"4":4,"5":2,"7":1,"25":6,"30":4,"41":5,"42":5}}],["eltype",{"2":{"1":2,"4":3}}],["eltype=float64",{"2":{"1":2}}],["einstein",{"2":{"31":1}}],["einsum",{"2":{"28":2,"31":1,"41":3}}],["einexpr",{"2":{"5":5,"31":4}}],["einexprs",{"2":{"0":1,"4":1,"5":4,"20":2,"31":1}}],["either",{"2":{"0":1,"4":3}}],["exact",{"2":{"29":1,"33":1}}],["examplefig",{"2":{"34":1}}],["example",{"2":{"26":1,"28":2,"29":2,"30":1,"39":1,"41":1,"42":1}}],["existing",{"2":{"29":1}}],["exchange",{"2":{"30":1}}],["exclusively",{"2":{"28":1}}],["excepting",{"2":{"27":1}}],["except",{"2":{"3":1,"4":6}}],["extra",{"2":{"41":1}}],["extracted",{"2":{"36":1}}],["extraction",{"2":{"0":1,"3":1,"5":1}}],["extends",{"2":{"25":1}}],["expr",{"2":{"31":1}}],["expressed",{"2":{"26":1}}],["expression",{"2":{"24":1,"28":1,"31":2,"39":1}}],["explicitly",{"2":{"41":1}}],["explained",{"2":{"30":1,"42":1}}],["explosion",{"2":{"1":2}}],["exp",{"2":{"27":1}}],["expand",{"2":{"4":2}}],["exponentially",{"2":{"1":2,"23":1}}],["expected",{"2":{"5":1,"28":1}}],["expectation",{"2":{"0":3,"26":1}}],["expect",{"2":{"0":1}}],["each",{"2":{"0":1,"1":4,"4":1,"5":1,"28":1,"30":1,"40":1}}],["e",{"2":{"0":4,"3":9,"5":2,"7":1,"10":1,"18":1,"19":1,"24":1,"25":1,"27":1,"29":1,"30":1,"31":2,"34":1,"35":2,"38":1,"41":1}}],["rule",{"2":{"41":1}}],["run",{"2":{"11":1}}],["rust",{"2":{"10":1}}],["rather",{"2":{"10":1}}],["rank=1",{"2":{"38":1}}],["rank",{"2":{"6":2,"33":1,"35":1,"36":1,"38":1,"42":2}}],["range",{"2":{"5":1}}],["random",{"2":{"1":4,"4":3,"5":2}}],["rand",{"2":{"1":4,"5":1,"7":3,"34":3,"35":4,"37":3,"38":3,"40":1}}],["rng",{"2":{"1":2}}],["r",{"2":{"1":2}}],["right",{"2":{"0":3,"1":3,"4":15,"16":1,"26":3}}],["relationships",{"2":{"42":1}}],["relies",{"2":{"7":1}}],["re",{"2":{"41":1}}],["remain",{"2":{"41":1}}],["remainder",{"2":{"39":1}}],["remove",{"2":{"5":2}}],["removed",{"2":{"4":1,"5":1,"29":1}}],["reduction",{"0":{"36":1}}],["reducing",{"2":{"33":1}}],["reduces",{"2":{"33":1}}],["reduce",{"2":{"6":2,"33":1,"35":1,"36":1}}],["really",{"2":{"40":1}}],["reached",{"2":{"39":1}}],["reactant",{"2":{"7":1}}],["reason",{"2":{"33":1}}],["read",{"2":{"27":2}}],["requiring",{"2":{"26":1}}],["requires",{"2":{"34":1}}],["required",{"2":{"30":1}}],["requirement",{"2":{"7":1}}],["require",{"2":{"7":1,"41":1}}],["region",{"2":{"11":3}}],["regions",{"0":{"11":1},"2":{"11":1}}],["regularity",{"2":{"5":2}}],["reverse",{"2":{"6":1}}],["renaming",{"2":{"5":1,"26":1}}],["rename",{"2":{"3":1,"5":1}}],["renamed",{"2":{"3":6}}],["respectively",{"2":{"39":1,"40":1}}],["research",{"2":{"28":1}}],["resetinds",{"2":{"5":1}}],["reset=false",{"2":{"3":3}}],["reset=true",{"2":{"3":6}}],["reset",{"2":{"1":3}}],["resolution",{"2":{"22":1}}],["restricted",{"2":{"10":1,"38":1}}],["reshape",{"2":{"5":1}}],["resulting",{"2":{"35":1,"41":1}}],["results",{"2":{"7":1}}],["result",{"2":{"4":2,"6":1,"7":2,"31":1,"35":1}}],["repl",{"2":{"24":1}}],["replaced",{"2":{"4":1,"5":1,"29":1}}],["replacements",{"2":{"4":1}}],["replace",{"2":{"4":3,"5":3,"29":5}}],["repeatedly",{"2":{"7":2}}],["repeated",{"2":{"4":1,"5":1,"7":1,"41":2}}],["repeat",{"2":{"4":1}}],["representation",{"0":{"8":1}}],["represent",{"2":{"5":1,"13":2,"23":1,"39":1}}],["represents",{"2":{"3":2,"16":1,"23":2,"27":2,"31":2}}],["represented",{"2":{"2":1,"6":2,"28":2,"29":1,"34":1,"40":1}}],["representing",{"2":{"0":11,"3":4,"5":1,"24":1}}],["reindex",{"2":{"3":4}}],["recommended",{"2":{"41":1}}],["recommend",{"2":{"22":1,"24":1,"27":1}}],["reconstruct",{"2":{"7":1}}],["recent",{"2":{"10":1,"22":1}}],["recursive",{"2":{"5":1,"42":1}}],["recanonizing",{"2":{"0":1}}],["rectangular",{"2":{"0":2}}],["reference",{"2":{"30":1}}],["referenced",{"2":{"3":1}}],["refers",{"2":{"24":1}}],["refer",{"2":{"24":1,"42":1}}],["ref",{"2":{"0":2}}],["returned",{"2":{"0":1,"4":1,"31":1}}],["returns",{"2":{"0":3,"1":1,"3":3,"5":1,"7":1,"25":1,"27":1,"30":3}}],["return",{"2":{"0":13,"3":9,"4":15,"5":16,"6":1,"7":1}}],["rows",{"2":{"0":2}}],["lying",{"2":{"27":1}}],["lower",{"2":{"31":1}}],["lot",{"2":{"31":1,"39":1}}],["looking",{"2":{"36":1}}],["look",{"2":{"22":1}}],["looks",{"2":{"10":1}}],["location",{"2":{"3":2,"4":1}}],["locally",{"2":{"33":1}}],["local",{"2":{"0":4}}],["lu",{"2":{"4":5}}],["l2",{"2":{"3":1}}],["lp",{"2":{"3":1}}],["let",{"2":{"41":1}}],["legal",{"2":{"29":1}}],["level",{"2":{"17":1,"31":1}}],["lead",{"2":{"11":1}}],["leads",{"2":{"3":1}}],["leave",{"2":{"11":1}}],["least",{"2":{"5":2}}],["length",{"2":{"4":3,"40":1}}],["left",{"2":{"0":3,"1":3,"4":15,"6":1,"26":3,"31":1}}],["lq",{"2":{"1":1}}],["l",{"2":{"1":2,"29":2,"30":1,"31":4,"34":1,"35":1,"36":1,"37":2,"38":2}}],["lt",{"2":{"0":1,"2":2}}],["lies",{"2":{"33":1}}],["lieb",{"2":{"0":2}}],["literature",{"2":{"26":1}}],["living",{"2":{"23":1}}],["library",{"2":{"22":2,"31":1}}],["libraries",{"2":{"22":1,"28":2,"41":1}}],["linear",{"2":{"23":1,"26":1,"39":2,"42":2}}],["linearization",{"2":{"7":1}}],["linearalgebra",{"2":{"0":1,"3":2,"4":3}}],["like",{"2":{"0":3,"3":1,"4":1,"5":1,"10":3,"17":1,"23":2,"24":1,"25":2,"28":1,"39":1,"42":2}}],["lists",{"2":{"41":2}}],["list",{"2":{"0":1,"3":2,"5":5,"6":2,"30":2,"40":1}}],["layman",{"2":{"39":1}}],["layout=stress",{"2":{"32":1,"34":2}}],["layers",{"2":{"28":3}}],["layer",{"2":{"28":2,"30":2}}],["laptop",{"2":{"31":1}}],["later",{"2":{"25":1}}],["lattice",{"0":{"13":1},"2":{"0":32,"13":1,"14":1}}],["laid",{"2":{"18":1,"31":1}}],["languages",{"2":{"10":2}}],["lane",{"2":{"0":10,"3":11}}],["lanes",{"2":{"0":6,"3":5}}],["labels",{"2":{"39":1}}],["labels=true",{"2":{"32":1,"34":2}}],["label",{"2":{"3":1,"4":2,"34":2,"42":1}}],["last",{"2":{"1":1,"7":1}}],["large",{"2":{"5":1,"20":1,"23":1}}],["larger",{"2":{"0":5}}],["largest",{"2":{"0":5}}],["word",{"2":{"42":1}}],["work",{"2":{"30":1}}],["would",{"2":{"11":1,"41":1}}],["won",{"2":{"5":2,"29":1}}],["wraps",{"2":{"40":1}}],["wrapper",{"2":{"17":1}}],["wrapping",{"2":{"4":2}}],["write",{"2":{"41":1}}],["written",{"2":{"22":3,"28":2}}],["writing",{"2":{"10":1}}],["we",{"2":{"7":2,"11":1,"22":1,"24":1,"39":1,"41":2,"42":1}}],["ways",{"2":{"41":1}}],["want",{"2":{"11":2,"24":1,"27":1,"29":1,"31":1,"41":2}}],["was",{"2":{"7":1}}],["warning",{"2":{"0":1,"3":1,"4":1,"24":1,"26":1,"29":1}}],["why",{"2":{"33":1,"41":1}}],["whatever",{"2":{"42":1}}],["what",{"2":{"28":1,"30":1,"39":2,"41":1}}],["whole",{"2":{"26":1}}],["whose",{"2":{"1":1,"6":2,"13":1,"18":1,"27":1,"35":1}}],["while",{"2":{"6":1,"19":1,"41":1}}],["which",{"2":{"4":3,"5":1,"7":1,"10":2,"11":2,"16":1,"22":1,"25":2,"26":1,"27":2,"28":1,"29":1,"30":2,"31":7,"33":2,"38":1,"40":1,"41":2,"42":1}}],["whenever",{"2":{"11":1}}],["when",{"2":{"6":3,"7":1,"11":1,"28":1,"29":1,"31":1,"34":1}}],["whether",{"2":{"0":5,"1":1,"3":1,"27":1}}],["where",{"2":{"0":1,"1":1,"4":4,"5":2,"6":1,"11":1,"24":1,"26":1,"37":1,"38":1,"41":1}}],["wild",{"2":{"22":1}}],["will",{"2":{"0":2,"2":2,"4":3,"5":5,"7":1,"11":1,"31":4,"41":2}}],["wip",{"2":{"8":1,"9":1,"15":1,"17":1,"23":1}}],["wise",{"2":{"4":2,"41":1}}],["without",{"2":{"11":2,"26":1}}],["with",{"2":{"0":9,"1":3,"3":10,"4":5,"5":3,"6":2,"7":1,"10":1,"17":1,"22":2,"23":1,"25":5,"26":1,"27":1,"29":3,"30":2,"32":1,"36":1,"39":2,"40":1,"41":1,"42":3}}],["cik=∑jaijbjk",{"2":{"39":1}}],["circuits",{"2":{"26":1}}],["crucial",{"2":{"33":1}}],["create",{"2":{"0":3,"1":4,"2":2,"24":1,"40":1}}],["cuttings",{"2":{"20":1}}],["currently",{"2":{"0":3,"4":1,"5":1,"17":1}}],["closed",{"2":{"18":1}}],["class",{"2":{"10":1}}],["clear",{"2":{"10":1}}],["c++",{"2":{"10":1}}],["c",{"2":{"4":4,"7":3,"29":1,"34":2,"35":2,"37":2,"40":1}}],["cyclic",{"2":{"4":1}}],["care",{"2":{"26":1}}],["cartesian",{"2":{"24":1}}],["caveat",{"2":{"24":1}}],["cache",{"2":{"7":3}}],["cachedfield",{"2":{"7":4}}],["cached",{"0":{"7":1}}],["called",{"2":{"7":2,"28":1,"31":1}}],["call",{"2":{"5":1,"7":1,"24":1,"31":1,"32":1}}],["calling",{"2":{"4":2,"7":2,"31":1}}],["causality",{"2":{"3":1}}],["cannot",{"2":{"10":1,"24":1}}],["can",{"2":{"3":2,"4":2,"7":1,"10":3,"11":2,"16":1,"18":1,"23":3,"24":3,"25":2,"26":2,"27":4,"28":2,"29":4,"30":1,"31":4,"33":4,"36":1,"38":1,"39":4,"40":2,"41":3,"42":1}}],["canonization",{"0":{"15":1},"1":{"16":1}}],["canonized",{"2":{"1":1}}],["canonizes",{"2":{"0":1}}],["canonize=true",{"2":{"0":1}}],["canonize",{"2":{"0":9}}],["canonical",{"2":{"0":16,"1":1,"16":1}}],["cases",{"2":{"11":1,"24":1,"29":1,"36":1}}],["case",{"2":{"0":1,"4":3,"22":1,"27":1,"30":2,"33":1,"41":2}}],["choose",{"2":{"31":1}}],["characteristics",{"2":{"31":1}}],["character",{"2":{"5":1}}],["changes",{"2":{"5":2}}],["chainrules",{"2":{"20":1}}],["chains",{"2":{"18":1}}],["chain",{"2":{"0":2,"18":1}}],["checkout",{"2":{"30":1}}],["checks",{"2":{"11":6}}],["check",{"2":{"0":3,"1":2,"5":1,"11":1,"24":1,"30":1,"42":1}}],["certain",{"2":{"28":1}}],["center",{"2":{"0":8,"1":1}}],["cell",{"2":{"0":2}}],["coomplement",{"2":{"25":1}}],["coordinate",{"2":{"3":1}}],["coordinates",{"2":{"3":5}}],["covariant",{"2":{"24":1}}],["correct",{"2":{"11":1}}],["correctly",{"2":{"7":1}}],["correspond",{"2":{"5":1}}],["corresponding",{"2":{"4":2}}],["cost",{"2":{"7":1,"31":1}}],["code",{"2":{"5":1,"7":1,"11":1}}],["copied",{"2":{"5":1}}],["copy",{"2":{"0":1,"1":1,"5":5,"6":2,"29":1,"31":1,"34":1,"36":1}}],["collect",{"2":{"5":2}}],["columns",{"2":{"0":2,"6":1}}],["comes",{"2":{"28":1}}],["compose",{"2":{"31":1}}],["composed",{"2":{"30":2}}],["composing",{"2":{"28":1}}],["composition",{"2":{"10":1}}],["complete",{"2":{"31":2}}],["completely",{"2":{"10":1,"28":1,"29":1}}],["complex",{"2":{"23":2,"40":6}}],["compared",{"2":{"10":1}}],["computations",{"2":{"33":1}}],["computational",{"2":{"6":1,"31":1}}],["computing",{"2":{"27":1}}],["computed",{"2":{"5":1}}],["compute",{"2":{"0":6}}],["comma",{"2":{"3":2}}],["coefficients",{"2":{"0":6}}],["concrete",{"2":{"10":1,"28":3,"30":1}}],["concept",{"2":{"3":1}}],["consumed",{"2":{"28":1}}],["consulted",{"2":{"40":1}}],["consult",{"2":{"16":1}}],["consequences",{"2":{"28":1}}],["consists",{"2":{"28":1}}],["consistency",{"2":{"26":1}}],["consistent",{"2":{"11":1}}],["considered",{"2":{"10":1}}],["construction",{"2":{"29":1}}],["constructed",{"2":{"29":1}}],["construct",{"2":{"4":1}}],["constructs",{"2":{"3":2,"28":1}}],["constructor",{"2":{"2":2,"3":1,"5":1,"24":2}}],["constructors",{"2":{"2":1}}],["converts",{"2":{"34":1}}],["convert",{"2":{"6":2}}],["conversion",{"2":{"0":1,"3":1,"5":1}}],["configurable",{"2":{"35":1}}],["configs",{"2":{"6":2}}],["config",{"2":{"6":2}}],["conj",{"2":{"4":3,"5":1,"40":1}}],["conjugates",{"2":{"40":1}}],["conjugated",{"2":{"5":1}}],["conjugate",{"2":{"3":1,"4":1,"26":1}}],["contents",{"2":{"31":1}}],["contravariant",{"2":{"24":1}}],["contracts",{"2":{"35":1}}],["contractsimplification",{"2":{"6":1,"35":1}}],["contracted",{"2":{"5":1,"41":3}}],["contractio",{"2":{"31":1}}],["contractionsimplification",{"2":{"35":1}}],["contractions",{"2":{"31":3,"35":1}}],["contraction",{"0":{"31":1,"35":1,"41":1},"2":{"1":2,"4":4,"5":4,"20":2,"31":11,"33":2,"35":1,"41":3}}],["contracting",{"2":{"0":2,"31":1,"33":1,"41":1}}],["contract",{"2":{"0":3,"1":3,"4":7,"5":8,"6":1,"25":1,"30":1,"31":7,"38":2,"41":9}}],["contain",{"2":{"5":1,"30":1}}],["contains=",{"2":{"25":1,"30":1}}],["contains",{"2":{"0":1,"6":1,"11":1,"30":1}}],["connecting",{"2":{"26":1,"28":1}}],["connectivity",{"0":{"26":1},"1":{"27":1},"2":{"0":1,"13":1,"14":1}}],["connect",{"2":{"3":1,"25":1,"26":1,"38":1}}],["connected",{"2":{"0":1,"3":2,"5":1}}],["conditions",{"2":{"18":2,"19":1}}],["condition",{"2":{"0":3,"6":1}}],["np",{"2":{"31":1}}],["nice",{"2":{"22":1,"23":1}}],["ninds",{"2":{"5":2}}],["ntensors",{"2":{"5":2}}],["ntuple",{"2":{"4":1}}],["names",{"2":{"5":1,"30":1,"40":1}}],["name",{"2":{"4":3}}],["named",{"2":{"4":1}}],["ndims",{"2":{"4":3}}],["nsites",{"2":{"3":1}}],["nlanes",{"2":{"3":1}}],["nor",{"2":{"42":1}}],["normal",{"2":{"24":1,"26":1,"27":1}}],["normalize=true",{"2":{"1":3}}],["normalized",{"2":{"1":3}}],["normalize",{"2":{"0":9}}],["norm",{"2":{"1":2,"3":4}}],["node",{"2":{"31":1}}],["now",{"2":{"16":1,"24":1}}],["no",{"2":{"0":1,"3":1,"4":3,"7":1,"22":1,"27":1,"31":1,"38":1}}],["noticed",{"2":{"28":1}}],["notion",{"2":{"3":1}}],["notation",{"2":{"26":1,"28":2,"31":1,"42":1}}],["not",{"2":{"1":1,"4":1,"5":3,"6":1,"10":2,"25":1,"26":1,"27":1,"28":2,"34":1,"38":1,"40":1,"41":4,"42":1}}],["notes",{"2":{"0":4,"3":1}}],["note",{"2":{"0":1,"4":3,"11":1,"25":2,"26":1,"29":1,"30":1,"31":1,"40":1}}],["nothing",{"2":{"0":8,"1":3,"5":2,"42":1}}],["none",{"2":{"30":1}}],["non",{"2":{"0":1,"42":1}}],["noncanonical",{"2":{"0":4,"1":2}}],["nv",{"2":{"0":2}}],["numbers",{"2":{"39":1}}],["number",{"2":{"0":3,"1":4,"3":2,"4":3,"5":5,"7":1,"27":1,"28":1,"35":1,"38":1}}],["nevertheless",{"2":{"39":1}}],["necessarily",{"2":{"33":1}}],["nested",{"2":{"11":1}}],["next",{"2":{"7":1}}],["need",{"2":{"4":3,"41":1}}],["neighboring",{"2":{"0":2,"13":1}}],["neighbors",{"2":{"0":4}}],["new",{"2":{"0":3,"3":1,"4":3,"5":6,"6":1,"22":1,"25":2}}],["ne",{"2":{"0":2}}],["networks",{"0":{"23":1,"28":1},"1":{"24":1,"25":1,"26":1,"27":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"0":1,"3":4,"18":1,"20":1,"26":1,"28":3,"29":1,"31":2}}],["network",{"2":{"0":40,"1":5,"3":14,"5":4,"6":1,"14":1,"18":1,"20":2,"22":4,"23":1,"26":1,"27":1,"28":1,"31":6,"33":5,"34":1}}],["ncols",{"2":{"0":4}}],["nrows",{"2":{"0":4}}],["n",{"2":{"0":2,"1":10,"4":9,"5":2,"29":2,"30":1,"31":5,"35":1,"38":2,"39":5}}],["should",{"2":{"42":1}}],["shallow",{"2":{"5":1}}],["system",{"2":{"30":1}}],["symbolic",{"2":{"31":1}}],["symbols",{"2":{"5":2,"40":1}}],["symbol",{"2":{"1":1,"4":12,"5":7,"7":2,"25":7,"30":2,"31":1}}],["small",{"2":{"30":1,"31":1}}],["smaller",{"2":{"6":1,"35":1,"37":1,"38":1}}],["slicing",{"2":{"20":1}}],["slices",{"2":{"37":1}}],["slice",{"2":{"5":3,"42":2}}],["split",{"0":{"38":1}}],["splitsimplification",{"2":{"6":1,"38":2}}],["specifying",{"2":{"42":1}}],["specify",{"2":{"41":1}}],["specified",{"2":{"4":10,"5":1,"42":1}}],["specifies",{"2":{"0":1,"1":2}}],["specialized",{"2":{"27":1}}],["speaking",{"2":{"25":1}}],["spaces",{"2":{"39":1}}],["space",{"2":{"10":1,"23":1,"35":1,"42":1}}],["skip",{"2":{"6":4}}],["satisfies",{"2":{"5":2}}],["same",{"2":{"0":1,"3":1,"4":4,"5":3,"7":1,"29":1}}],["s",{"2":{"4":3,"5":1,"10":1,"17":1,"22":1,"28":3,"33":1,"35":1,"39":1,"41":4}}],["switch",{"2":{"26":1}}],["swapped",{"2":{"3":1}}],["sweep",{"2":{"1":5}}],["scott",{"2":{"27":1}}],["scope",{"2":{"11":1}}],["scripts",{"2":{"24":1}}],["scalars",{"2":{"39":1}}],["scalar",{"2":{"3":3,"27":2,"39":1}}],["schmidt",{"2":{"0":6}}],["several",{"2":{"31":1}}],["semantics",{"2":{"26":1}}],["second",{"2":{"11":1}}],["sense",{"2":{"10":1,"17":1}}],["search",{"2":{"5":1,"33":1,"35":1}}],["self",{"2":{"5":2}}],["selectdim",{"2":{"4":4,"5":4,"42":2}}],["set=",{"2":{"25":6}}],["sets",{"2":{"6":1}}],["set",{"2":{"4":3,"5":4,"30":1,"33":1,"39":1}}],["setindex",{"2":{"4":3,"42":1}}],["separated",{"2":{"3":2}}],["seemps",{"2":{"22":1}}],["seed",{"2":{"5":3}}],["see",{"2":{"3":8,"4":1,"5":13,"6":3}}],["sofistification",{"2":{"28":1}}],["sorted",{"2":{"7":2}}],["sort",{"2":{"7":1}}],["sorts",{"2":{"5":1}}],["some",{"2":{"6":1,"7":1,"10":1,"11":1,"17":1,"23":1,"25":1,"28":3,"34":1,"41":1}}],["socket",{"0":{"27":1},"2":{"3":10,"27":6}}],["so",{"2":{"1":1,"3":1,"5":1,"7":1,"23":1,"25":2,"28":1,"30":1,"31":1}}],["source",{"2":{"0":42,"1":11,"2":1,"3":26,"4":29,"5":28,"6":9,"22":1}}],["svd",{"2":{"0":5,"1":1,"4":5,"6":1,"38":1}}],["svd=true",{"2":{"0":1}}],["still",{"2":{"25":1,"27":1,"41":1}}],["style",{"2":{"10":5}}],["starts",{"2":{"28":2}}],["starting",{"2":{"5":1,"28":1}}],["stable",{"2":{"5":1}}],["stated",{"2":{"41":1}}],["states",{"0":{"18":1},"1":{"19":1},"2":{"18":1,"23":1,"25":1}}],["state",{"2":{"0":10,"1":1,"2":1,"3":3,"11":2,"17":1,"19":2,"23":1,"25":1,"27":7}}],["stored",{"2":{"5":1}}],["store",{"2":{"4":2}}],["stores",{"2":{"0":1,"7":1,"14":1}}],["strong",{"2":{"22":1}}],["stroke",{"2":{"10":5}}],["structural",{"2":{"10":2}}],["structured",{"2":{"28":1}}],["structure",{"2":{"6":1,"33":1,"36":2}}],["str",{"2":{"3":4,"24":1}}],["suggest",{"2":{"30":1}}],["such",{"2":{"7":2,"26":1,"36":1,"40":1}}],["subset",{"2":{"30":1}}],["subtype",{"2":{"25":1,"30":1,"42":1}}],["subtypes",{"2":{"0":1,"3":1,"5":1,"30":1,"40":1}}],["subtract",{"2":{"4":1}}],["subarray",{"2":{"4":4,"42":2}}],["superclass",{"2":{"10":1}}],["superset",{"2":{"3":1}}],["support",{"2":{"4":1,"22":1,"29":1,"32":1}}],["supported",{"2":{"0":1,"4":1,"42":1}}],["summation",{"2":{"31":1}}],["sum",{"2":{"0":1,"23":1,"41":1}}],["since",{"2":{"27":1,"42":1}}],["singular",{"2":{"0":4,"1":2,"6":1,"38":2}}],["simplification",{"0":{"35":1,"38":1}}],["simple",{"2":{"0":4,"17":2}}],["similar",{"2":{"4":2,"31":1}}],["sizes",{"2":{"5":1,"11":1}}],["size=1",{"2":{"4":1}}],["size",{"2":{"4":9,"5":4,"6":1,"11":1,"33":2,"40":4}}],["site2",{"2":{"1":2}}],["site1",{"2":{"1":2}}],["site",{"0":{"24":1},"2":{"0":6,"1":5,"3":23,"14":1,"19":2,"24":14,"25":6}}],["sites",{"2":{"0":5,"1":6,"3":15,"13":1,"24":2,"25":7,"26":2}}],["fdim⁡",{"2":{"39":1}}],["fear",{"2":{"31":1}}],["features",{"0":{"20":1},"2":{"25":1}}],["f",{"2":{"29":1,"39":1}}],["framework",{"2":{"22":1}}],["from",{"2":{"1":2,"5":3,"10":2,"26":4,"28":4,"41":1}}],["furthermore",{"2":{"39":1}}],["further",{"2":{"33":1}}],["fusing",{"2":{"31":1}}],["fused",{"2":{"36":1}}],["fuse",{"2":{"5":1}}],["functions",{"2":{"33":1}}],["functionality",{"2":{"19":1,"25":1}}],["function",{"2":{"16":1,"17":1,"25":1,"27":1,"39":2,"40":1}}],["full",{"2":{"11":1}}],["fulfil",{"2":{"6":1}}],["fulfilling",{"2":{"30":1}}],["fulfill",{"2":{"6":1,"7":1}}],["fulfills",{"2":{"0":1}}],["follows",{"2":{"29":1}}],["following",{"2":{"5":2,"26":1,"28":1,"41":3}}],["founds",{"2":{"37":1}}],["found",{"2":{"28":1,"31":2,"33":1}}],["fo",{"2":{"24":1}}],["focus",{"2":{"22":1}}],["forced",{"2":{"41":1}}],["forget",{"2":{"30":1}}],["forbiding",{"2":{"28":1}}],["forbid",{"2":{"10":1}}],["form`",{"2":{"0":1}}],["form",{"0":{"16":1},"2":{"0":16,"1":4,"10":1,"16":3,"31":1}}],["for",{"2":{"0":5,"1":1,"3":2,"4":3,"5":5,"6":1,"11":4,"17":2,"22":2,"24":3,"26":1,"27":3,"28":3,"29":2,"30":3,"31":3,"33":1,"36":4,"38":1,"39":1,"40":1,"41":2,"42":1}}],["fixing",{"2":{"39":1}}],["fig",{"2":{"34":5}}],["figure",{"2":{"34":1}}],["fine",{"2":{"28":1}}],["finding",{"2":{"31":2}}],["find",{"2":{"27":1}}],["finally",{"2":{"26":1}}],["final",{"2":{"11":1,"31":1}}],["fit",{"2":{"22":1,"29":1}}],["fields",{"2":{"10":3,"18":1,"28":1,"42":1}}],["field",{"0":{"7":1},"2":{"7":1,"39":1}}],["filled",{"2":{"4":1}}],["first",{"2":{"1":1,"5":2,"11":1,"38":1}}],["flexibility",{"2":{"41":1}}],["flexible",{"2":{"22":1}}],["flops",{"2":{"31":11}}],["float64",{"2":{"1":2,"25":2,"29":2,"31":4,"36":1,"40":3}}],["flipped",{"2":{"3":1}}],["flag",{"2":{"3":1,"7":1}}],["factoring",{"2":{"33":1}}],["factorization",{"2":{"1":2,"4":9,"6":1}}],["favouring",{"2":{"10":1}}],["faster",{"2":{"5":1}}],["false",{"2":{"0":2,"3":3,"5":1,"7":1,"27":1,"29":1}}],["i=>1",{"2":{"42":1}}],["i=1",{"2":{"42":3}}],["i=j0for",{"2":{"36":1}}],["i≠j↦aijkl=aαkl",{"2":{"36":1}}],["implicit",{"2":{"41":1}}],["implicitly",{"2":{"41":1}}],["implements",{"2":{"19":1,"25":2,"28":1,"29":1,"30":1}}],["implementing",{"2":{"10":1}}],["implementation",{"2":{"5":1}}],["implementor",{"2":{"5":1}}],["implementors",{"2":{"5":1}}],["implemented",{"2":{"0":1,"3":1,"17":1,"28":1}}],["implement",{"2":{"0":1,"3":1,"5":1,"10":1,"30":2}}],["importantly",{"2":{"33":1}}],["import",{"2":{"32":1}}],["imagine",{"2":{"26":1,"41":2}}],["identified",{"2":{"39":1}}],["identity",{"2":{"1":1}}],["id5",{"2":{"10":4}}],["id4",{"2":{"10":4}}],["id3",{"2":{"10":5}}],["id2",{"2":{"10":4}}],["id1",{"2":{"10":4}}],["id",{"2":{"3":3}}],["inference",{"2":{"41":1}}],["inferred",{"2":{"41":1}}],["info",{"2":{"5":1}}],["information",{"2":{"0":1,"14":1,"24":1,"27":1,"28":1,"30":1}}],["involve",{"2":{"33":1}}],["involved",{"2":{"31":1}}],["invalidated",{"2":{"7":1}}],["invalidates",{"2":{"7":1}}],["invalidation",{"2":{"7":1}}],["inadecuate",{"2":{"28":1}}],["inspiration",{"2":{"22":1}}],["instance",{"2":{"27":1}}],["instantiated",{"2":{"10":2}}],["instead",{"2":{"0":3,"5":1,"10":1,"11":1,"24":1,"28":1,"41":1}}],["inherits",{"2":{"25":1}}],["inherited",{"2":{"10":2}}],["inheriting",{"2":{"10":1,"28":1}}],["inheritance",{"0":{"10":1},"2":{"10":2,"28":1}}],["initth",{"2":{"5":1}}],["init",{"2":{"5":1}}],["initialized",{"2":{"1":1}}],["inconsistent",{"2":{"11":1}}],["inconsistency",{"2":{"11":1}}],["increasingly",{"2":{"10":1}}],["increase",{"2":{"6":2}}],["increases",{"2":{"1":2}}],["included",{"2":{"5":1}}],["inner",{"2":{"5":1}}],["input",{"2":{"3":11,"19":1,"24":1,"26":2}}],["inputs=0",{"2":{"25":1}}],["inputs",{"2":{"0":1,"3":2,"25":2,"27":1,"42":2}}],["int64",{"2":{"40":13,"41":14,"42":15}}],["introduced",{"2":{"7":1}}],["int=1",{"2":{"5":1}}],["intersects=",{"2":{"30":1}}],["intersects",{"2":{"30":1}}],["intersect",{"2":{"30":1}}],["intersection",{"2":{"4":1}}],["interesting",{"2":{"30":1}}],["interacting",{"2":{"40":1}}],["interact",{"2":{"25":1}}],["interpolate",{"2":{"24":1}}],["interoperation",{"0":{"22":1}}],["interconnected",{"2":{"5":1}}],["interfaces",{"2":{"27":1}}],["interface",{"0":{"30":1},"2":{"0":1,"5":2,"25":1,"28":3}}],["integers",{"2":{"3":2}}],["integer",{"2":{"1":1,"4":2,"5":2}}],["into",{"2":{"0":2,"5":1,"6":1,"26":1,"36":2}}],["indispensable",{"2":{"33":1}}],["indicate",{"2":{"3":1,"31":1}}],["indices",{"2":{"1":4,"3":9,"4":34,"5":17,"6":4,"11":1,"19":1,"24":1,"25":4,"26":2,"27":1,"28":1,"29":3,"30":3,"31":1,"36":3,"39":3,"40":2,"41":7,"42":2}}],["indexing",{"0":{"42":1},"2":{"42":1}}],["index=i",{"2":{"4":2}}],["index=true",{"2":{"1":2}}],["index",{"2":{"0":1,"3":1,"4":3,"5":14,"11":2,"19":1,"24":2,"25":2,"29":2,"31":2,"40":2,"41":1,"42":1}}],["inds=7",{"2":{"31":1}}],["inds=8",{"2":{"29":4}}],["inds=6",{"2":{"25":1}}],["inds",{"2":{"0":1,"4":36,"5":4,"7":2,"25":8,"30":4,"40":2}}],["in",{"2":{"0":21,"1":7,"3":4,"4":13,"5":18,"6":5,"7":5,"10":5,"11":3,"14":1,"16":1,"17":2,"18":2,"19":1,"22":4,"23":1,"24":2,"25":2,"26":3,"27":2,"28":4,"29":2,"30":3,"31":8,"33":6,"35":2,"36":3,"39":1,"40":1,"41":2,"42":2}}],["if",{"2":{"0":13,"1":7,"2":2,"3":9,"4":6,"5":8,"7":1,"22":1,"24":1,"27":1,"31":4,"37":1,"38":1,"39":1,"41":1}}],["i",{"2":{"0":6,"1":1,"3":15,"4":12,"5":13,"7":2,"10":1,"18":1,"19":1,"24":1,"25":5,"27":3,"29":6,"30":3,"31":8,"34":4,"35":2,"36":4,"37":1,"38":2,"39":2,"40":5,"41":5,"42":2}}],["itensornetworks",{"2":{"22":1}}],["itensors",{"2":{"22":1}}],["itself",{"2":{"33":1}}],["its",{"2":{"0":1,"1":1,"3":1,"5":1,"11":1,"23":1,"25":1}}],["it",{"2":{"0":4,"1":2,"2":2,"3":1,"4":3,"5":11,"6":4,"7":3,"11":4,"16":1,"17":1,"23":1,"24":3,"25":3,"27":3,"28":3,"29":2,"30":1,"31":3,"33":3,"34":1,"35":1,"37":2,"40":2,"41":1,"42":1}}],["issue",{"2":{"24":1}}],["issues",{"2":{"1":2,"11":1}}],["isvalid",{"2":{"7":1}}],["isconnectable",{"2":{"3":1}}],["isdual",{"2":{"3":2}}],["isometry",{"2":{"0":2}}],["isisometry",{"2":{"0":1}}],["is",{"2":{"0":21,"1":4,"3":6,"4":9,"5":12,"6":1,"7":5,"10":1,"11":5,"13":1,"14":1,"16":1,"17":2,"19":1,"23":2,"24":2,"25":1,"26":2,"27":4,"28":3,"29":1,"30":5,"31":12,"33":2,"34":2,"35":1,"38":3,"39":3,"40":2,"41":2,"42":2}}],["v2",{"2":{"38":2}}],["v1",{"2":{"38":2}}],["variables",{"2":{"19":1,"24":1}}],["various",{"2":{"5":1}}],["vararg",{"2":{"7":1}}],["valid",{"2":{"29":1}}],["value",{"2":{"0":2,"1":1,"4":1,"5":1,"6":1,"26":1,"27":1,"38":1}}],["values",{"2":{"0":5,"1":3,"38":1}}],["val",{"2":{"0":3,"26":1,"27":1}}],["v",{"2":{"4":2,"39":3}}],["very",{"2":{"23":1}}],["version",{"2":{"6":1,"19":1}}],["versa",{"2":{"3":1}}],["vertex",{"2":{"0":2}}],["vertices",{"2":{"0":5,"5":1,"13":1,"28":1,"31":1,"38":2}}],["vectors",{"2":{"23":1,"39":3}}],["vector",{"2":{"0":4,"1":4,"7":2,"23":2,"25":6,"30":4,"39":1,"40":1,"41":4,"42":4}}],["visually",{"2":{"28":1}}],["visualization",{"0":{"32":1},"2":{"20":1,"32":1}}],["visualizing",{"2":{"6":1}}],["viewed",{"2":{"23":2,"39":1}}],["view",{"2":{"4":7,"5":3,"28":1,"39":1,"42":2}}],["viceversa",{"2":{"26":1}}],["vice",{"2":{"3":1}}],["vidal",{"2":{"0":2}}],["virtualind",{"2":{"4":6}}],["virtual",{"2":{"0":7,"4":3,"25":2}}],["tᵢⱼₖ",{"2":{"40":6}}],["t1",{"2":{"38":2}}],["takes",{"2":{"26":1}}],["take",{"2":{"22":1}}],["terms",{"2":{"39":1}}],["temporarily",{"2":{"11":1}}],["tenpy",{"2":{"22":1}}],["tensorkrowch",{"2":{"22":1}}],["tensormap",{"2":{"5":1}}],["tensornetworks",{"2":{"5":1,"26":1}}],["tensornetwork",{"0":{"5":1,"29":1},"2":{"3":2,"5":27,"6":10,"7":3,"10":2,"11":3,"25":4,"28":1,"29":7,"30":2,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1}}],["tensors=5",{"2":{"29":1,"31":1}}],["tensors=6",{"2":{"29":3}}],["tensors=3",{"2":{"25":1}}],["tensors",{"0":{"39":1},"1":{"40":1,"41":1,"42":1},"2":{"0":5,"1":10,"3":1,"4":4,"5":23,"6":5,"7":12,"18":1,"25":4,"26":2,"28":3,"29":2,"30":7,"31":2,"33":1,"34":1,"35":1,"36":2,"39":3,"40":1}}],["tensor",{"0":{"4":1,"23":1,"28":1,"40":1},"1":{"24":1,"25":1,"26":1,"27":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"0":45,"1":6,"2":1,"3":18,"4":95,"5":21,"6":3,"7":5,"11":1,"14":1,"18":2,"20":2,"22":4,"23":1,"25":4,"26":2,"27":1,"28":5,"29":12,"30":3,"31":13,"33":3,"34":4,"35":5,"36":3,"37":4,"38":8,"39":5,"40":15,"41":11,"42":8}}],["tenet",{"2":{"0":31,"1":9,"2":1,"3":20,"4":8,"5":12,"6":9,"7":1,"10":1,"19":1,"22":2,"25":1,"26":1,"27":4,"28":3,"29":1,"31":2,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"40":1,"42":1}}],["td",{"2":{"10":1}}],["twice",{"2":{"5":1}}],["two",{"2":{"0":6,"1":1,"3":2,"4":2,"31":2,"36":1,"41":2}}],["t",{"2":{"4":19,"5":2,"6":2,"7":1,"10":1,"22":1,"29":1,"30":2,"31":2,"33":1,"35":1,"39":3,"40":1}}],["tuple",{"2":{"0":1,"7":1,"25":1,"40":1,"42":2}}],["time",{"0":{"17":1},"2":{"0":1,"7":1,"10":1,"17":1,"26":2}}],["thus",{"2":{"42":1}}],["than",{"2":{"0":5,"6":1,"29":1,"37":1,"38":1}}],["that",{"2":{"0":1,"3":2,"5":3,"6":3,"7":2,"11":2,"14":1,"19":1,"23":3,"25":1,"26":1,"27":1,"28":3,"29":2,"30":3,"31":1,"36":1,"39":1,"40":2,"41":4,"42":3}}],["those",{"2":{"0":5,"27":1}}],["this",{"2":{"0":1,"3":2,"4":4,"5":3,"6":2,"10":3,"11":1,"18":1,"19":1,"26":1,"27":2,"28":3,"30":2,"33":1,"38":1,"40":1}}],["three",{"2":{"5":1}}],["threshold=nothing",{"2":{"1":1}}],["threshold",{"2":{"0":18,"1":2,"37":1}}],["throw",{"2":{"0":1}}],["through",{"2":{"0":1,"17":1}}],["theory",{"2":{"23":1}}],["these",{"2":{"18":1,"28":1,"33":2,"35":1,"40":1,"42":1}}],["they",{"2":{"10":1,"30":1}}],["their",{"2":{"5":1,"7":2,"19":2,"33":1,"42":1}}],["them",{"2":{"3":1,"6":1,"10":1,"13":1,"19":1,"30":1,"36":1,"41":1,"42":1}}],["then",{"2":{"0":2,"1":1,"3":6,"4":3,"5":2,"31":2,"41":1}}],["there",{"2":{"0":2,"5":1,"11":1,"22":1,"26":1,"29":1,"38":1}}],["the",{"0":{"13":1,"14":1,"16":1,"24":1,"25":1,"27":1,"29":1,"30":1,"40":1},"2":{"0":138,"1":50,"2":2,"3":38,"4":79,"5":44,"6":10,"7":19,"10":2,"11":14,"13":2,"16":3,"17":3,"18":2,"19":3,"22":2,"23":2,"24":10,"25":6,"26":8,"27":7,"28":21,"29":4,"30":8,"31":23,"33":10,"34":3,"35":4,"36":6,"37":2,"38":6,"39":4,"40":11,"41":17,"42":13}}],["tn",{"2":{"0":18,"1":1,"5":36,"6":4,"7":4,"11":2,"20":1,"25":2,"29":8,"30":5,"31":4,"32":1,"34":3,"35":2,"36":2,"37":2,"38":2}}],["tr",{"2":{"39":1}}],["tries",{"2":{"36":1}}],["tree",{"2":{"31":1}}],["tranposition",{"2":{"39":1}}],["transpose",{"2":{"4":1}}],["transforms",{"2":{"42":1}}],["transformed",{"2":{"34":3,"35":1,"36":1,"37":1,"38":1}}],["transformation",{"2":{"6":12,"23":1,"34":2,"35":1,"36":1,"37":1,"38":1}}],["transformations",{"0":{"6":1,"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"33":2}}],["transform",{"2":{"0":2,"6":6,"33":3,"34":1,"35":1,"36":1,"37":1,"38":1}}],["traditional",{"2":{"28":1}}],["tracking",{"2":{"24":1}}],["trace",{"2":{"11":1,"38":1,"39":1}}],["trains",{"2":{"18":1}}],["trailing",{"2":{"3":1}}],["traits",{"0":{"10":1},"2":{"27":2,"28":1}}],["trait",{"0":{"16":1,"27":1},"2":{"0":7,"3":1,"16":1,"27":2}}],["truncating",{"2":{"33":1}}],["truncation",{"0":{"37":1},"2":{"0":3}}],["truncates",{"2":{"37":1}}],["truncated",{"2":{"0":3,"1":1,"38":1}}],["truncate",{"2":{"0":13,"1":2,"6":2,"37":2}}],["true",{"2":{"0":5,"1":1,"3":3,"5":2,"7":1,"25":1,"27":1,"29":2,"40":1,"42":2}}],["too",{"2":{"24":1}}],["top",{"2":{"22":1}}],["topic",{"2":{"10":1}}],["topology",{"2":{"0":1,"19":1,"28":1}}],["tolerance",{"2":{"6":4}}],["together",{"2":{"0":1}}],["to",{"2":{"0":27,"1":19,"2":2,"3":5,"4":31,"5":22,"6":10,"7":4,"10":1,"11":7,"16":1,"18":1,"19":1,"22":2,"23":1,"24":4,"25":3,"26":11,"27":4,"28":6,"29":4,"30":2,"31":8,"33":3,"34":2,"36":1,"38":2,"39":2,"40":1,"41":8,"42":3}}],["typeof",{"2":{"1":1}}],["types",{"2":{"0":1,"3":1,"5":2,"10":3,"28":1}}],["type",{"0":{"13":1,"14":1,"24":1,"25":1,"29":1,"40":1},"2":{"0":3,"1":4,"3":2,"4":1,"5":1,"7":2,"10":1,"19":1,"24":1,"27":2,"28":5,"29":1,"30":2,"40":1}}],["aji=aijt",{"2":{"39":1}}],["aikl",{"2":{"36":1}}],["aijkl=",{"2":{"36":1}}],["again",{"2":{"31":1}}],["api",{"2":{"30":1}}],["apply",{"2":{"33":1}}],["appropeately",{"2":{"39":1}}],["appropriate",{"2":{"0":1}}],["approach",{"2":{"33":1}}],["approximate",{"2":{"31":1}}],["append",{"2":{"5":3,"29":1}}],["aaronson",{"2":{"27":1}}],["automatic",{"2":{"20":1}}],["automatically",{"2":{"11":1,"26":1,"30":1,"40":1,"41":1}}],["available",{"2":{"30":1}}],["average",{"2":{"5":1}}],["avoid",{"2":{"1":2,"7":1,"11":2}}],["amount",{"2":{"5":1}}],["affects",{"2":{"11":1}}],["affect",{"2":{"5":1,"35":1}}],["after",{"2":{"0":3,"1":2,"29":1,"41":1}}],["axis",{"2":{"4":1}}],["axis=1",{"2":{"4":1}}],["ability",{"2":{"33":1}}],["above",{"2":{"29":1,"30":1,"42":1}}],["about",{"2":{"14":1,"27":3,"28":1,"30":1,"39":1}}],["absolute",{"2":{"6":4}}],["abstractensornetwork",{"2":{"30":1}}],["abstractions",{"2":{"28":2}}],["abstractvecortuple",{"2":{"5":2}}],["abstractvector",{"2":{"2":1,"4":1}}],["abstracttensornetwork",{"0":{"30":1},"2":{"5":30,"7":5,"10":1,"11":4,"25":1,"30":1}}],["abstractmps",{"2":{"10":1}}],["abstractmpo",{"2":{"1":6,"10":1}}],["abstractmatrix",{"2":{"2":1}}],["abstractrng",{"2":{"1":2}}],["abstractarray",{"2":{"1":2,"4":5,"40":2,"42":1}}],["abstractansatz",{"2":{"0":47,"1":4,"2":1,"10":1}}],["abstractquantum",{"2":{"0":1,"3":25,"10":1,"25":2}}],["abstract",{"2":{"0":3,"2":2,"3":2,"5":1,"10":2,"28":2,"30":1}}],["abstractlanes",{"2":{"0":4}}],["abstractlane",{"2":{"0":6,"3":1}}],["abstractgraph",{"2":{"0":1}}],["able",{"2":{"3":1,"26":1}}],["addition",{"2":{"22":1}}],["adding",{"2":{"4":1,"28":1}}],["address",{"2":{"19":1}}],["add",{"2":{"4":1,"5":3}}],["added",{"2":{"3":1,"29":1}}],["adjoint",{"2":{"3":9,"4":3,"24":2,"26":2,"40":1}}],["associative",{"2":{"31":1}}],["assert",{"2":{"11":1}}],["as",{"2":{"2":1,"3":3,"4":2,"5":7,"10":2,"11":1,"18":1,"23":2,"25":1,"26":2,"28":1,"29":1,"30":2,"31":2,"34":2,"39":3,"40":2,"42":3}}],["althoug",{"2":{"33":1}}],["although",{"2":{"29":1,"41":1}}],["already",{"2":{"11":1}}],["always",{"2":{"6":1,"7":2}}],["algebra",{"2":{"26":1,"39":1,"42":1}}],["alghough",{"2":{"4":2}}],["algorithms",{"2":{"31":1}}],["algorithm",{"2":{"0":3,"17":1}}],["alias",{"2":{"4":1}}],["also",{"2":{"3":8,"4":1,"5":13,"6":3,"18":1,"25":1,"29":1,"31":1,"33":1,"42":1}}],["along",{"2":{"1":1}}],["allows",{"2":{"42":2}}],["alleviate",{"2":{"7":1}}],["all",{"2":{"1":1,"3":3,"4":6,"5":6,"6":1,"7":1,"10":1,"23":1,"25":1,"26":1,"29":1,"37":1,"42":1}}],["access",{"2":{"25":1,"28":1,"40":1}}],["accepts",{"2":{"5":2}}],["accordingly",{"2":{"4":1,"5":1,"26":1}}],["according",{"2":{"0":1,"1":1,"4":2}}],["actually",{"2":{"31":1}}],["act",{"2":{"0":1,"10":1,"41":1}}],["array",{"2":{"4":5,"25":1,"31":2,"40":7,"41":1,"42":1}}],["arrays",{"2":{"1":6,"5":2,"31":1,"39":1}}],["argument",{"2":{"0":1,"1":2,"11":2}}],["arguments",{"2":{"0":8,"1":5,"4":5,"5":5,"6":4,"30":1,"41":1}}],["are",{"2":{"0":10,"1":8,"3":13,"4":4,"5":1,"6":1,"11":2,"18":3,"19":2,"22":1,"23":1,"25":3,"26":2,"27":1,"28":4,"29":1,"30":1,"31":1,"33":1,"36":1,"37":1,"38":2,"39":2,"40":2,"41":1,"42":2}}],["aka",{"2":{"0":1,"5":1,"31":1}}],["at=site",{"2":{"25":2}}],["at=",{"2":{"25":1}}],["atol",{"2":{"6":5}}],["at",{"2":{"0":4,"1":2,"4":3,"5":2,"22":1}}],["another",{"2":{"27":1}}],["anti",{"2":{"6":1}}],["antidiagonalgauging",{"2":{"6":1}}],["any",{"2":{"4":1,"5":1,"7":1,"25":1,"30":1,"38":1}}],["annotation",{"2":{"3":1}}],["an",{"2":{"0":10,"1":1,"2":4,"3":7,"4":1,"7":1,"19":1,"23":1,"25":1,"27":4,"28":1,"30":1,"31":2,"40":2}}],["and",{"0":{"10":1},"2":{"0":18,"1":6,"3":5,"4":10,"5":7,"7":2,"10":4,"11":2,"13":1,"19":2,"20":1,"22":1,"23":2,"25":6,"26":7,"27":3,"28":9,"29":3,"30":3,"31":5,"32":1,"33":1,"34":1,"36":1,"39":5,"40":5,"41":5,"42":3}}],["ansatz",{"0":{"0":1,"12":1,"14":1,"21":1},"1":{"13":1,"14":1,"15":1,"16":1,"17":1},"2":{"0":5,"1":2,"2":1,"10":5,"14":1,"16":1,"18":1,"19":1}}],["a",{"2":{"0":45,"1":10,"2":2,"3":33,"4":33,"5":27,"6":8,"7":6,"10":2,"11":5,"13":2,"14":3,"17":1,"18":2,"22":4,"23":8,"24":5,"25":6,"26":1,"27":10,"28":4,"29":6,"30":6,"31":11,"32":2,"33":2,"34":4,"35":1,"36":4,"37":4,"38":3,"39":15,"40":8,"41":11,"42":13}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/@localSearchIndexroot.BaM3Q09T.js b/dev/assets/chunks/@localSearchIndexroot.BaM3Q09T.js new file mode 100644 index 000000000..661456455 --- /dev/null +++ b/dev/assets/chunks/@localSearchIndexroot.BaM3Q09T.js @@ -0,0 +1 @@ +const e='{"documentCount":43,"nextId":43,"documentIds":{"0":"/Tenet.jl/dev/api/ansatz#ansatz","1":"/Tenet.jl/dev/api/mps#mps","2":"/Tenet.jl/dev/api/quantum#quantum","3":"/Tenet.jl/dev/api/product#product","4":"/Tenet.jl/dev/api/tensor#tensor","5":"/Tenet.jl/dev/api/tensornetwork#tensornetwork","6":"/Tenet.jl/dev/api/transformations#transformations","7":"/Tenet.jl/dev/developer/cached-field#Cached-field","8":"/Tenet.jl/dev/developer/hypergraph#Hypergraph-representation","9":"/Tenet.jl/dev/developer/keyword-dispatch#Keyword-dispatch","10":"/Tenet.jl/dev/developer/type-hierarchy#Inheritance-and-Traits","11":"/Tenet.jl/dev/developer/unsafe-region#Unsafe-regions","12":"/Tenet.jl/dev/manual/ansatz/#ansatz","13":"/Tenet.jl/dev/manual/ansatz/#The-Lattice-type","14":"/Tenet.jl/dev/manual/ansatz/#The-Ansatz-type","15":"/Tenet.jl/dev/manual/ansatz/#canonization","16":"/Tenet.jl/dev/manual/ansatz/#The-Form-trait","17":"/Tenet.jl/dev/manual/ansatz/#Time-Evolution","18":"/Tenet.jl/dev/manual/ansatz/mps#Matrix-Product-States-(MPS)","19":"/Tenet.jl/dev/manual/ansatz/mps#Matrix-Product-Operators-(MPO)","20":"/Tenet.jl/dev/manual/ansatz/product#Product-ansatz","21":"/Tenet.jl/dev/manual/interop#interoperation","22":"/Tenet.jl/dev/#features","23":"/Tenet.jl/dev/manual/quantum#Quantum-Tensor-Networks","24":"/Tenet.jl/dev/manual/quantum#The-Site-type","25":"/Tenet.jl/dev/manual/quantum#The-Quantum-type","26":"/Tenet.jl/dev/manual/quantum#connectivity","27":"/Tenet.jl/dev/manual/quantum#The-Socket-trait","28":"/Tenet.jl/dev/manual/tensor-network#Tensor-Networks","29":"/Tenet.jl/dev/manual/tensor-network#The-TensorNetwork-type","30":"/Tenet.jl/dev/manual/tensor-network#The-AbstractTensorNetwork-interface","31":"/Tenet.jl/dev/manual/tensor-network#contraction","32":"/Tenet.jl/dev/manual/tensor-network#visualization","33":"/Tenet.jl/dev/manual/tensor-network#transformations","34":"/Tenet.jl/dev/manual/tensor-network#hyperflatten","35":"/Tenet.jl/dev/manual/tensor-network#Contraction-simplification","36":"/Tenet.jl/dev/manual/tensor-network#Diagonal-reduction","37":"/Tenet.jl/dev/manual/tensor-network#truncation","38":"/Tenet.jl/dev/manual/tensor-network#Split-simplification","39":"/Tenet.jl/dev/manual/tensors#tensors","40":"/Tenet.jl/dev/manual/tensors#The-Tensor-type","41":"/Tenet.jl/dev/manual/tensors#contraction","42":"/Tenet.jl/dev/manual/tensors#indexing"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,304],"1":[1,1,177],"2":[1,1,194],"3":[1,1,31],"4":[1,1,221],"5":[1,1,305],"6":[1,1,130],"7":[2,1,138],"8":[2,1,3],"9":[2,1,3],"10":[3,1,123],"11":[2,1,98],"12":[1,1,1],"13":[3,1,17],"14":[3,1,16],"15":[1,1,3],"16":[3,2,21],"17":[2,1,44],"18":[5,1,44],"19":[5,5,57],"20":[2,1,1],"21":[1,1,67],"22":[1,1,21],"23":[3,1,62],"24":[3,3,88],"25":[3,3,127],"26":[1,3,100],"27":[3,4,114],"28":[2,1,138],"29":[3,2,122],"30":[3,2,129],"31":[1,2,189],"32":[1,2,20],"33":[1,2,94],"34":[1,3,59],"35":[2,3,59],"36":[2,3,63],"37":[1,3,43],"38":[2,3,87],"39":[1,1,108],"40":[3,1,144],"41":[1,1,143],"42":[1,1,123]},"averageFieldLength":[1.930232558139535,1.6744186046511629,93.74418604651163],"storedFields":{"0":{"title":"Ansatz","titles":[]},"1":{"title":"MPS","titles":[]},"2":{"title":"Quantum","titles":[]},"3":{"title":"Product","titles":[]},"4":{"title":"Tensor","titles":[]},"5":{"title":"TensorNetwork","titles":[]},"6":{"title":"Transformations","titles":[]},"7":{"title":"Cached field","titles":[]},"8":{"title":"Hypergraph representation","titles":[]},"9":{"title":"Keyword dispatch","titles":[]},"10":{"title":"Inheritance and Traits","titles":[]},"11":{"title":"Unsafe regions","titles":[]},"12":{"title":"Ansatz","titles":[]},"13":{"title":"The Lattice type","titles":["Ansatz"]},"14":{"title":"The Ansatz type","titles":["Ansatz"]},"15":{"title":"Canonization","titles":["Ansatz"]},"16":{"title":"The Form trait","titles":["Ansatz","Canonization"]},"17":{"title":"Time Evolution","titles":["Ansatz"]},"18":{"title":"Matrix Product States (MPS)","titles":[]},"19":{"title":"Matrix Product Operators (MPO)","titles":["Matrix Product States (MPS)"]},"20":{"title":"Product ansatz","titles":[]},"21":{"title":"Interoperation","titles":[]},"22":{"title":"Features","titles":[]},"23":{"title":"Quantum Tensor Networks","titles":[]},"24":{"title":"The Site type","titles":["Quantum Tensor Networks"]},"25":{"title":"The Quantum type","titles":["Quantum Tensor Networks"]},"26":{"title":"Connectivity","titles":["Quantum Tensor Networks"]},"27":{"title":"The Socket trait","titles":["Quantum Tensor Networks","Connectivity"]},"28":{"title":"Tensor Networks","titles":[]},"29":{"title":"The TensorNetwork type","titles":["Tensor Networks"]},"30":{"title":"The AbstractTensorNetwork interface","titles":["Tensor Networks"]},"31":{"title":"Contraction","titles":["Tensor Networks"]},"32":{"title":"Visualization","titles":["Tensor Networks"]},"33":{"title":"Transformations","titles":["Tensor Networks"]},"34":{"title":"HyperFlatten","titles":["Tensor Networks","Transformations"]},"35":{"title":"Contraction simplification","titles":["Tensor Networks","Transformations"]},"36":{"title":"Diagonal reduction","titles":["Tensor Networks","Transformations"]},"37":{"title":"Truncation","titles":["Tensor Networks","Transformations"]},"38":{"title":"Split simplification","titles":["Tensor Networks","Transformations"]},"39":{"title":"Tensors","titles":[]},"40":{"title":"The Tensor type","titles":["Tensors"]},"41":{"title":"Contraction","titles":["Tensors"]},"42":{"title":"Indexing","titles":["Tensors"]}},"dirtCount":0,"index":[["≈",{"2":{"40":1}}],["738646",{"2":{"40":2}}],["7306413990119035",{"2":{"7":1}}],["713604",{"2":{"40":2}}],["756033",{"2":{"40":2}}],["↦fin",{"2":{"39":1}}],["×⋯×fdim⁡",{"2":{"39":1}}],["δαijin",{"2":{"36":1}}],["│",{"2":{"31":2}}],["└─",{"2":{"31":5}}],["├─",{"2":{"31":5}}],["🧭",{"2":{"30":1}}],["857709",{"2":{"40":2}}],["865661",{"2":{"40":2}}],["822442",{"2":{"40":2}}],["842317",{"2":{"40":2}}],["8437147928830764",{"2":{"7":1}}],["836386",{"2":{"40":2}}],["8",{"2":{"30":1,"31":6}}],["670088",{"2":{"40":2}}],["617084",{"2":{"40":2}}],["659311",{"2":{"40":2}}],["6",{"2":{"30":1,"38":1}}],["∑ijklmnopaimbijpcnjkdpklemnofol",{"2":{"28":1}}],["↩︎",{"2":{"27":2,"38":2,"42":3}}],["≠",{"2":{"25":1}}],["4im",{"2":{"40":3}}],["418922",{"2":{"40":2}}],["411257",{"2":{"40":2}}],["495767",{"2":{"40":2}}],["425421",{"2":{"40":2}}],["40",{"2":{"31":1}}],["40546728387604225",{"2":{"7":1}}],["4",{"2":{"24":4,"31":4,"38":1}}],["580357",{"2":{"40":2}}],["545519",{"2":{"40":2}}],["5",{"2":{"10":10,"17":1,"24":8,"38":1,"40":3}}],[">|contains|",{"2":{"10":5}}],[">|inherits|",{"2":{"10":10}}],["⚠️",{"2":{"8":1,"9":1,"15":1,"17":1,"23":1}}],["3im",{"2":{"40":3}}],["30",{"2":{"40":1}}],["339943",{"2":{"40":2}}],["3×5×2",{"2":{"40":2}}],["32",{"2":{"31":2}}],["3d",{"2":{"22":1}}],["38278223481669893",{"2":{"7":1}}],["3",{"2":{"7":1,"24":4,"25":10,"30":1,"37":7,"38":9,"39":1,"40":5,"42":9}}],["394522",{"2":{"40":2}}],["39238973008403166",{"2":{"7":1}}],["39",{"2":{"4":3,"5":5,"6":2,"7":1,"10":2,"17":1,"21":2,"27":1,"28":3,"29":1,"30":2,"31":2,"33":2,"35":2,"39":1,"40":1,"41":5}}],["|>",{"2":{"7":1,"25":1}}],["921874",{"2":{"40":2}}],["989947",{"2":{"40":2}}],["9",{"2":{"5":1}}],["≡",{"2":{"5":2}}],["∈fdim⁡",{"2":{"39":1}}],["∈",{"2":{"5":1,"25":1,"29":3}}],["xj=∑iaijcontract",{"2":{"41":1}}],["x",{"2":{"5":1}}],["x3c",{"2":{"1":4,"2":3,"3":1,"4":3,"5":1,"6":7}}],["`out`",{"2":{"4":2}}],["`b`",{"2":{"4":2}}],["`a`",{"2":{"4":2}}],["`dims`",{"2":{"4":2}}],["+",{"2":{"4":1,"40":2}}],["zeros",{"2":{"4":3,"25":3,"29":6,"36":1}}],["zero",{"2":{"4":2}}],["0+4im",{"2":{"40":1}}],["0+3im",{"2":{"40":1}}],["0+2im",{"2":{"40":1}}],["0+1im",{"2":{"40":1}}],["0423009",{"2":{"40":2}}],["0728537",{"2":{"40":2}}],["085073",{"2":{"40":2}}],["0871055",{"2":{"40":2}}],["0839499635703298",{"2":{"7":1}}],["0",{"2":{"4":1,"5":1,"7":10,"25":16,"29":8,"30":128,"31":16,"37":1,"39":1,"40":79,"41":11,"42":7}}],["yj=∑iaijbjithen",{"2":{"41":1}}],["years",{"2":{"10":1}}],["yet",{"2":{"2":1,"24":1}}],["your",{"2":{"21":1,"27":1,"33":1}}],["you",{"2":{"3":2,"11":3,"16":1,"24":3,"26":1,"27":5,"29":3,"30":1,"31":7,"33":1,"39":3,"40":1,"41":3,"42":1}}],["j=",{"2":{"42":1}}],["j=1",{"2":{"42":1}}],["jokes",{"2":{"39":1}}],["jl",{"2":{"21":2}}],["java",{"2":{"10":1}}],["just",{"2":{"7":1,"24":1,"25":2,"26":1,"31":1,"39":2,"40":1,"41":1}}],["julia>",{"2":{"24":5,"25":9,"27":3,"29":5,"30":2,"31":1,"40":8,"41":4,"42":4}}],["juliajulia>",{"2":{"17":1,"24":3,"25":5,"27":1,"29":3,"30":3,"31":3,"40":6,"41":3,"42":4}}],["juliahypergroup",{"2":{"6":1}}],["juliahyperflatten",{"2":{"6":1}}],["juliahas",{"2":{"0":1}}],["juliagraphplot",{"2":{"32":1}}],["juliagraphs",{"2":{"0":7}}],["juliagroupinds",{"2":{"5":1}}],["juliaview",{"2":{"5":1}}],["juliaresetinds",{"2":{"5":1}}],["juliareplace",{"2":{"5":1}}],["juliarand",{"2":{"5":1}}],["juliadata",{"2":{"36":1,"37":1}}],["juliadiagonalreduction",{"2":{"6":1}}],["juliadim",{"2":{"4":1}}],["juliadelete",{"2":{"5":1,"7":1}}],["julia+",{"2":{"4":1}}],["juliapush",{"2":{"5":1}}],["juliapop",{"2":{"5":1}}],["juliaproduct",{"2":{"3":1}}],["juliaperiodic",{"2":{"0":1}}],["julia",{"2":{"2":1,"4":2,"10":4,"11":1,"21":1,"26":1,"38":1}}],["julialinearalgebra",{"2":{"2":2,"4":3}}],["julialanes",{"2":{"2":1}}],["julialane",{"2":{"2":2}}],["julialattice",{"2":{"0":5}}],["juliasplitsimplification",{"2":{"6":1}}],["juliaslice",{"2":{"5":1}}],["juliaselectdim",{"2":{"5":1}}],["juliastate",{"2":{"2":1}}],["juliasocket",{"2":{"2":2}}],["juliascalar",{"2":{"2":1}}],["juliasize",{"2":{"5":1}}],["juliasites",{"2":{"2":1}}],["juliasite",{"2":{"2":2}}],["juliasimple",{"2":{"0":1}}],["juliabase",{"2":{"1":2,"2":3,"4":14,"5":1}}],["juliaboundary",{"2":{"0":1}}],["juliamermaid",{"2":{"10":1}}],["juliamerge",{"2":{"5":1}}],["juliamps",{"2":{"1":3}}],["juliampo",{"2":{"1":2}}],["juliamixed",{"2":{"0":2}}],["juliamixedcanonical",{"2":{"0":1}}],["juliatn",{"2":{"7":1}}],["juliatransform",{"2":{"6":2}}],["juliatruncate",{"2":{"0":4,"1":1,"6":1}}],["juliatensor",{"2":{"4":2}}],["juliatensornetwork",{"2":{"2":1,"5":1}}],["juliatensors",{"2":{"0":1,"5":1}}],["juliatenet",{"2":{"1":1}}],["juliaoperator",{"2":{"2":1}}],["juliaopen",{"2":{"0":1}}],["juliaoverlap",{"2":{"0":1}}],["juliain",{"2":{"5":1}}],["juliainds",{"2":{"0":1,"4":1,"5":1}}],["juliaisconnectable",{"2":{"2":1}}],["juliaisdual",{"2":{"2":1}}],["juliaisisometry",{"2":{"0":1}}],["juliaid",{"2":{"2":1}}],["juliaeinexpr",{"2":{"5":1}}],["juliaexp",{"2":{"26":1}}],["juliaexpand",{"2":{"4":1}}],["juliaexpect",{"2":{"0":1}}],["juliaevolve",{"2":{"0":1,"1":1}}],["juliacopy",{"2":{"5":1}}],["juliaconj",{"2":{"5":1}}],["juliacontractsimplification",{"2":{"6":1}}],["juliacontract",{"2":{"0":1,"4":4,"5":3}}],["juliacheck",{"2":{"1":1}}],["juliacanonize",{"2":{"0":2}}],["juliacanonical",{"2":{"0":1}}],["juliantensors",{"2":{"5":1}}],["julianinds",{"2":{"5":1}}],["juliansites",{"2":{"2":1}}],["julianlanes",{"2":{"2":1}}],["julianormalize",{"2":{"0":1}}],["julianoncanonical",{"2":{"0":1}}],["julianeighbors",{"2":{"0":1}}],["juliaquantum",{"2":{"0":1,"2":1}}],["juliaform",{"2":{"0":2}}],["juliaa",{"2":{"7":1,"35":1}}],["juliaantidiagonalgauging",{"2":{"6":1}}],["juliaansatz",{"2":{"0":1}}],["juliaarrays",{"2":{"5":1}}],["juliaappend",{"2":{"5":1}}],["juliaabstracttensornetwork",{"2":{"5":1}}],["juliaabstractquantum",{"2":{"2":1}}],["juliaabstractansatz",{"2":{"0":1}}],["juliaadjoint",{"2":{"2":1}}],["j",{"2":{"2":6,"7":4,"25":3,"29":2,"30":1,"31":2,"34":1,"35":2,"36":3,"37":2,"38":1,"40":6,"41":3,"42":1}}],["λ",{"2":{"1":3}}],["λᵢ",{"2":{"0":1}}],["^",{"2":{"1":1}}],["qtn",{"2":{"25":13}}],["q",{"2":{"2":6}}],["qr",{"2":{"1":2,"4":5}}],["quasi",{"2":{"31":1}}],["quantum",{"0":{"2":1,"23":1,"25":1},"1":{"24":1,"25":1,"26":1,"27":1},"2":{"0":2,"2":8,"10":2,"14":1,"18":1,"23":3,"25":9,"26":4,"27":5}}],["query",{"2":{"30":1}}],["quimb",{"2":{"21":1,"33":1}}],["quot",{"2":{"0":6,"2":8,"10":2,"17":2,"24":2,"27":2}}],["÷",{"2":{"1":4}}],["heard",{"2":{"39":1}}],["here",{"2":{"39":1}}],["helper",{"2":{"24":1}}],["however",{"2":{"41":1,"42":1}}],["how",{"2":{"28":1}}],["history",{"2":{"38":1}}],["hide",{"2":{"34":6}}],["high",{"2":{"17":1}}],["hierarchy",{"2":{"10":1}}],["hypergroup",{"2":{"6":2,"34":1}}],["hypergraph",{"0":{"8":1},"2":{"5":1,"29":1,"34":1,"38":1}}],["hyperindices",{"2":{"6":2,"34":1}}],["hyperflatten",{"0":{"34":1},"2":{"6":2,"34":2}}],["hyper",{"2":{"5":1,"33":1}}],["hyperedge",{"2":{"0":1}}],["hadamard",{"2":{"41":1}}],["hardcode",{"2":{"24":1}}],["hard",{"2":{"11":1}}],["have",{"2":{"0":1,"4":2,"10":2,"19":2,"27":1,"29":1,"31":1,"36":1,"39":2}}],["hasn",{"2":{"7":1}}],["hash",{"2":{"5":1}}],["has",{"2":{"0":8,"5":2,"6":2,"10":2,"17":1,"25":1,"27":1,"28":1,"31":1,"38":1,"41":1,"42":1}}],["know",{"2":{"39":1}}],["known",{"2":{"18":1,"31":2,"39":1,"42":1}}],["kronecker",{"2":{"34":1}}],["kourtis",{"2":{"33":1}}],["kind",{"2":{"10":1}}],["k",{"2":{"7":2,"25":4,"29":2,"30":1,"31":3,"34":1,"35":1,"36":4,"37":1,"38":2,"40":2}}],["kwarg",{"2":{"7":1,"24":1,"25":2}}],["kwargs",{"2":{"0":4,"2":1,"4":5,"5":5}}],["key",{"2":{"40":1}}],["keys",{"2":{"5":1}}],["keywords",{"2":{"30":2}}],["keyword",{"0":{"9":1},"2":{"0":5,"1":7,"4":5,"5":4,"6":4,"30":4,"41":1}}],["keeping",{"2":{"0":5}}],["keep",{"2":{"0":3,"26":1,"41":1}}],["2im",{"2":{"40":3}}],["21015",{"2":{"40":2}}],["214083",{"2":{"40":2}}],["2021",{"2":{"33":1}}],["2×2",{"2":{"29":1,"40":7,"41":2,"42":1}}],["2×2×2",{"2":{"25":1}}],["274",{"2":{"24":1}}],["22193836209836748",{"2":{"7":1}}],["23065139652454292",{"2":{"7":1}}],["2",{"2":{"0":2,"1":7,"4":3,"5":1,"7":5,"19":1,"23":1,"25":14,"29":18,"34":8,"35":12,"36":7,"37":1,"38":2,"39":2,"40":13,"41":11,"42":6}}],["1im",{"2":{"40":3}}],["159843",{"2":{"40":2}}],["15077",{"2":{"40":2}}],["189055",{"2":{"40":2}}],["16",{"2":{"31":3}}],["1d",{"2":{"18":1}}],["1758989718332704",{"2":{"7":1}}],["11481509045441651",{"2":{"7":1}}],["1000s",{"2":{"7":1}}],["100",{"2":{"7":1}}],["10",{"2":{"6":1}}],["12",{"2":{"6":3}}],["1e",{"2":{"6":4}}],["1",{"2":{"0":2,"4":1,"19":3,"23":2,"24":4,"25":7,"28":1,"30":1,"31":1,"34":6,"36":3,"37":1,"38":1,"39":4,"40":12,"41":8,"42":9}}],["d",{"2":{"29":1,"40":3}}],["drastically",{"2":{"33":1}}],["drawn",{"2":{"26":1}}],["dropdims",{"2":{"4":2}}],["due",{"2":{"18":1}}],["dual=true",{"2":{"24":2}}],["dual",{"2":{"2":6,"24":1,"26":1,"27":2}}],["dynamic",{"2":{"16":1,"27":1}}],["dangerous",{"2":{"11":1}}],["dasharray",{"2":{"10":5}}],["data",{"2":{"4":5,"36":2,"37":2}}],["don",{"2":{"30":1,"31":1,"35":1}}],["down",{"2":{"26":2}}],["documentation",{"2":{"5":1}}],["does",{"2":{"4":1}}],["doesn",{"2":{"4":3,"6":2,"21":1,"30":1,"31":1,"33":1,"40":1}}],["do",{"2":{"1":1,"6":2,"10":1,"42":1}}],["diagrammatically",{"2":{"31":1}}],["diagonalreduction",{"2":{"6":1,"36":2}}],["diagonal",{"0":{"36":1},"2":{"6":2,"36":2}}],["dict",{"2":{"25":1}}],["dictionary",{"2":{"5":1}}],["difference",{"2":{"4":1,"19":1}}],["differentiation",{"2":{"22":1}}],["different",{"2":{"4":2,"17":1,"39":1,"41":1}}],["dim",{"2":{"4":5,"5":2}}],["dims=symbol",{"2":{"41":1}}],["dims=",{"2":{"41":2}}],["dims=∩",{"2":{"4":2}}],["dims",{"2":{"4":7,"41":4}}],["dimensional",{"2":{"24":1,"31":2,"39":1,"41":1}}],["dimensionality",{"2":{"5":1,"40":1,"42":2}}],["dimensionalities",{"2":{"5":1}}],["dimensions",{"2":{"4":4,"39":2,"40":3,"42":1}}],["dimension",{"2":{"0":9,"1":8,"4":6,"5":5,"6":2,"37":1,"41":1}}],["distribution",{"2":{"23":2}}],["disables",{"2":{"11":1}}],["disable",{"2":{"11":1}}],["dispatching",{"2":{"30":2}}],["dispatched",{"2":{"25":1,"40":1}}],["dispatches",{"2":{"0":1}}],["dispatch",{"0":{"9":1},"2":{"27":1,"30":1}}],["disjoint",{"2":{"2":1}}],["direct",{"2":{"42":1}}],["directly",{"2":{"6":1}}],["directionality",{"2":{"2":1}}],["direction",{"2":{"0":1,"1":3}}],["dir",{"2":{"0":2}}],["described",{"2":{"39":1}}],["design",{"2":{"10":1,"21":1,"28":1}}],["developments",{"2":{"38":1}}],["developed",{"2":{"11":1,"28":1}}],["depends",{"2":{"30":1,"31":1}}],["depending",{"2":{"5":1,"18":1,"27":2}}],["deciding",{"2":{"29":1}}],["decomposes",{"2":{"38":1}}],["decomposed",{"2":{"6":1}}],["decomposition",{"2":{"6":1,"38":2}}],["decomposing",{"2":{"6":1}}],["democritus",{"2":{"27":1}}],["deal",{"2":{"26":1}}],["deltas",{"2":{"34":1}}],["deltaarrays",{"2":{"6":2}}],["delegated",{"2":{"31":1}}],["delete",{"2":{"1":3,"5":2,"29":1}}],["details",{"2":{"5":1,"28":1}}],["definitions",{"2":{"42":1}}],["defines",{"2":{"28":1}}],["define",{"2":{"5":1,"40":1,"41":3}}],["default",{"2":{"5":1,"6":1,"24":1,"41":1}}],["defaults",{"2":{"0":3,"1":8,"4":13,"5":1,"6":6,"41":2}}],["derived",{"2":{"0":1,"2":1,"5":1}}],["γᵢ",{"2":{"0":1}}],["γᵢ₋₁",{"2":{"0":1}}],["ψ∣o∣ψ",{"2":{"26":1}}],["ψ",{"2":{"0":8,"1":5,"26":2,"27":2}}],["=∑iaii",{"2":{"39":1}}],["=c∈f∀i",{"2":{"39":1}}],["===",{"2":{"5":2}}],["==",{"2":{"4":4,"5":1}}],["=>",{"2":{"2":1,"5":3,"25":3,"29":1}}],["=",{"2":{"0":10,"1":2,"2":3,"4":1,"5":7,"7":4,"25":4,"26":1,"29":2,"30":1,"31":1,"34":6,"35":6,"36":5,"37":7,"38":7,"40":9,"42":1}}],["m1",{"2":{"38":2}}],["my",{"2":{"29":2}}],["m",{"2":{"27":1,"29":3,"30":3,"31":2,"35":2,"37":1,"38":1}}],["meaning",{"2":{"42":1}}],["means",{"2":{"2":1}}],["measurements",{"2":{"27":1}}],["me",{"2":{"27":1}}],["mechanics",{"2":{"23":1}}],["mechanism",{"2":{"7":1}}],["mentioned",{"2":{"5":3}}],["merge",{"2":{"2":8,"5":3,"26":3}}],["methods",{"2":{"4":1,"5":1,"10":1,"17":2,"25":2,"27":2,"29":1,"30":1,"33":1,"42":2}}],["method=",{"2":{"4":1}}],["method",{"2":{"0":3,"4":4,"5":1,"7":2,"27":2,"30":1,"31":1,"34":1}}],["mpos",{"2":{"19":1}}],["mpo",{"0":{"19":1},"2":{"1":9,"10":2,"19":1}}],["mpss",{"2":{"19":1}}],["mps",{"0":{"1":1,"18":1},"1":{"19":1},"2":{"1":10,"10":2,"18":1,"19":1,"28":1}}],["most",{"2":{"28":2}}],["motivation",{"2":{"27":1}}],["modern",{"2":{"10":1}}],["modification",{"2":{"28":1}}],["modified",{"2":{"7":1,"31":1}}],["modify",{"2":{"7":1,"11":1,"33":1}}],["modifying",{"2":{"0":3}}],["more",{"2":{"5":1,"24":1,"27":3,"28":3,"29":1,"30":1,"33":1}}],["moving",{"2":{"0":1}}],["missleading",{"2":{"42":1}}],["missingschmidtcoefficientsexception",{"2":{"0":1}}],["mind",{"2":{"41":1}}],["might",{"2":{"41":1}}],["mixed",{"2":{"0":5,"1":1}}],["mixedcanonical",{"2":{"0":2,"1":1}}],["mutated",{"2":{"31":1}}],["mutating",{"2":{"11":1}}],["much",{"2":{"28":1}}],["multiplication",{"2":{"31":1,"39":1,"41":2}}],["multiple",{"2":{"2":2,"11":1,"30":1}}],["multilinear",{"2":{"5":1,"39":1}}],["multi",{"2":{"0":1,"24":1}}],["must",{"2":{"0":5,"2":1,"4":5,"5":2,"29":1}}],["maps",{"2":{"39":1}}],["mapping",{"2":{"5":1,"25":1}}],["many",{"2":{"39":1,"40":1,"42":1}}],["manual",{"2":{"38":1}}],["manually",{"2":{"26":1,"31":1}}],["marked",{"2":{"25":2}}],["makie",{"2":{"22":1,"32":1}}],["main",{"2":{"21":1}}],["majority",{"2":{"28":1}}],["major",{"2":{"19":1}}],["matrices",{"2":{"39":2}}],["matrixproduct",{"2":{"19":1}}],["matrix",{"0":{"18":1,"19":1},"1":{"19":1},"2":{"0":1,"1":2,"18":1,"19":2,"23":1,"29":1,"31":1,"39":1,"40":7,"41":3,"42":3}}],["matter",{"2":{"31":1}}],["matching",{"2":{"26":1}}],["match",{"2":{"26":1}}],["mature",{"2":{"21":1}}],["mathematically",{"2":{"31":1}}],["mathematical",{"2":{"18":1,"28":1}}],["macro",{"2":{"11":1,"24":1}}],["may",{"2":{"11":1,"42":1}}],["maximum",{"2":{"0":3,"1":5,"6":1,"33":1}}],["maxdim=nothing",{"2":{"1":1}}],["maxdim=physdim^",{"2":{"1":1}}],["maxdim",{"2":{"0":17,"1":7}}],["ultimate",{"2":{"31":1}}],["underneath",{"2":{"42":1}}],["underlying",{"2":{"0":2,"2":2,"4":3,"5":1,"40":1}}],["until",{"2":{"31":1}}],["unrelated",{"2":{"30":1}}],["unusual",{"2":{"29":1}}],["unlike",{"2":{"26":1,"41":1}}],["unless",{"2":{"4":3}}],["unsafe",{"0":{"11":1},"2":{"11":4}}],["unicode",{"2":{"5":1}}],["union",{"2":{"5":1}}],["unique",{"2":{"4":1,"41":2}}],["uninitialize",{"2":{"4":1}}],["unary",{"2":{"4":2,"41":1}}],["up",{"2":{"1":2,"6":1,"26":2,"28":1,"31":1,"36":1}}],["update",{"2":{"0":7,"17":2}}],["usually",{"2":{"39":1}}],["useful",{"2":{"34":1}}],["user",{"2":{"26":1,"28":1,"41":3}}],["use",{"2":{"16":1,"24":2,"27":2,"29":1,"40":1,"42":1}}],["uses",{"2":{"5":1}}],["used",{"2":{"0":4,"2":1,"4":6,"6":1,"17":1,"19":1,"25":2,"31":1,"39":1}}],["using",{"2":{"0":1,"6":1,"29":1,"30":1,"31":1,"33":1,"38":1,"40":1,"42":1}}],["our",{"2":{"33":1}}],["out=",{"2":{"41":3}}],["out=nothing",{"2":{"4":2}}],["outer",{"2":{"38":1}}],["out",{"2":{"5":2,"18":1,"24":1,"27":1,"31":2,"41":4,"42":1}}],["output",{"2":{"1":4,"2":10,"4":2,"5":1,"19":2,"24":1,"26":2,"41":1,"42":1}}],["outputs=3",{"2":{"25":1}}],["outputs",{"2":{"0":1,"2":3,"5":1,"25":2,"27":1}}],["oop",{"2":{"10":2}}],["other",{"2":{"6":1,"7":1,"18":1,"21":1,"25":2,"40":1,"41":1,"42":2}}],["others",{"2":{"5":2}}],["otherwise",{"2":{"2":1}}],["overhead",{"2":{"7":2}}],["over",{"2":{"4":2,"39":1,"41":1}}],["overloading",{"2":{"2":1,"5":1}}],["overlap",{"2":{"0":2}}],["old",{"2":{"4":2,"5":4}}],["opposite",{"2":{"34":1}}],["optimization",{"2":{"31":1}}],["optimized",{"2":{"22":1,"27":2}}],["optimizer=exhaustive",{"2":{"31":1}}],["optimizer",{"2":{"5":4,"31":1}}],["optimal",{"2":{"31":3}}],["options",{"2":{"5":1}}],["optionally",{"2":{"2":1}}],["operations",{"2":{"6":1,"33":1,"39":1,"40":1,"41":1}}],["operation",{"2":{"4":4,"39":1,"41":2}}],["operators",{"0":{"19":1},"2":{"19":1,"23":1,"25":1}}],["operator",{"2":{"0":5,"1":1,"2":3,"3":1,"17":1,"19":2,"23":1,"27":4}}],["open",{"2":{"0":2,"2":1,"5":4,"18":1,"19":1,"25":2,"27":1,"29":1,"30":2}}],["obtaining",{"2":{"31":1}}],["objectid",{"2":{"5":1}}],["object",{"2":{"2":3,"4":1,"10":1,"23":2,"27":4,"30":1}}],["objects",{"2":{"2":1,"23":1,"29":1,"41":1}}],["observables",{"2":{"0":1}}],["observable",{"2":{"0":4}}],["o",{"2":{"1":2,"26":1,"27":1,"29":2,"30":1,"31":4,"35":2,"38":1}}],["once",{"2":{"31":1}}],["on",{"2":{"0":3,"1":1,"4":5,"5":3,"7":1,"10":1,"11":2,"18":1,"21":2,"24":1,"27":2,"28":2,"30":2,"31":2,"32":1,"41":2,"42":2}}],["only",{"2":{"0":3,"2":6,"5":2,"11":1,"17":1,"19":1,"24":2,"25":1,"28":1,"29":1}}],["oneto",{"2":{"42":2}}],["ones",{"2":{"1":1,"25":2,"40":1}}],["one",{"2":{"0":3,"5":4,"11":1,"26":1,"29":1,"36":1,"41":2}}],["oriented",{"2":{"10":1}}],["original",{"2":{"0":3,"1":1,"5":1,"34":1,"38":1}}],["ortogonality",{"2":{"1":1}}],["orthogonalized",{"2":{"1":2}}],["orthogonality",{"2":{"0":3}}],["orthog",{"2":{"0":5}}],["order",{"2":{"1":6,"4":3,"5":2,"6":1,"7":3,"11":1,"29":1,"31":3,"33":1,"39":2,"40":1,"42":2}}],["order=defaultorder",{"2":{"1":2}}],["or",{"2":{"0":12,"1":5,"2":4,"4":4,"5":4,"7":2,"10":2,"11":1,"18":1,"19":2,"24":4,"25":1,"27":3,"28":1,"29":1,"30":3,"33":1,"35":1,"39":2,"40":2,"41":2,"42":2}}],["offer",{"2":{"28":1}}],["offered",{"2":{"28":1}}],["of",{"2":{"0":38,"1":17,"2":30,"4":39,"5":29,"6":9,"7":9,"10":4,"11":3,"19":1,"21":4,"22":2,"23":4,"24":2,"25":3,"26":2,"27":3,"28":10,"29":4,"30":4,"31":7,"33":5,"35":2,"36":3,"37":2,"38":3,"39":7,"40":5,"41":4,"42":5}}],["give",{"2":{"39":1}}],["given",{"2":{"0":6,"1":1,"2":4,"4":9,"5":1,"37":1}}],["gonna",{"2":{"39":1}}],["good",{"2":{"33":1}}],["goal",{"2":{"31":1}}],["goes",{"2":{"26":2}}],["go",{"2":{"10":1,"26":1}}],["g",{"2":{"7":1,"25":1}}],["greedily",{"2":{"35":1}}],["greedy",{"2":{"5":1}}],["gray",{"2":{"33":1}}],["graphplot",{"2":{"32":1,"34":2}}],["graphmakie",{"2":{"32":2}}],["graphical",{"2":{"28":1}}],["graphs",{"2":{"0":10}}],["graph",{"2":{"0":1,"5":1,"10":1,"13":1,"28":2,"33":1,"34":1,"38":1}}],["grow",{"2":{"28":1}}],["group",{"2":{"5":1}}],["groupinds",{"2":{"5":1}}],["global",{"2":{"5":1}}],["globalind",{"2":{"5":2}}],["generic",{"2":{"17":1,"19":1}}],["generalization",{"2":{"23":1,"38":1}}],["general",{"2":{"10":1,"31":1}}],["generator",{"2":{"5":1}}],["generate",{"2":{"5":1}}],["getindex",{"2":{"4":3,"42":1}}],["get",{"2":{"0":1,"30":2,"31":2}}],["gt",{"2":{"0":1}}],["game",{"2":{"21":1}}],["gates",{"2":{"0":1}}],["gate",{"2":{"0":12}}],["gauge",{"2":{"0":2}}],["build",{"2":{"28":1}}],["built",{"2":{"21":1}}],["but",{"2":{"0":3,"2":2,"4":3,"5":4,"7":1,"10":2,"11":2,"17":1,"24":1,"27":1,"28":2,"29":1,"31":3,"33":1,"35":1,"38":3,"41":3,"42":1}}],["back",{"2":{"38":1}}],["backend",{"2":{"32":1}}],["bad",{"2":{"10":1}}],["based",{"2":{"0":1,"30":1,"31":1,"33":1}}],["base",{"2":{"0":1,"1":2,"2":4,"4":22,"5":14,"10":1,"42":4}}],["bit",{"2":{"29":1}}],["big",{"2":{"7":1,"26":1}}],["binary",{"2":{"4":2,"41":1}}],["brief",{"2":{"39":1}}],["broadcast",{"2":{"5":1}}],["bra",{"2":{"0":2}}],["by",{"2":{"0":5,"1":2,"2":2,"4":4,"5":2,"6":4,"7":1,"22":3,"24":1,"27":1,"28":3,"29":1,"30":1,"31":2,"33":1,"36":1,"39":1,"40":2,"41":1,"42":1}}],["before",{"2":{"33":1}}],["believe",{"2":{"27":1}}],["being",{"2":{"27":1,"28":1}}],["begin",{"2":{"11":1}}],["because",{"2":{"7":1,"29":1}}],["becomes",{"2":{"2":1}}],["been",{"2":{"5":2,"6":1,"7":1,"10":1,"31":2}}],["behaviour",{"2":{"5":1}}],["be",{"2":{"0":2,"2":3,"4":17,"5":5,"10":4,"11":1,"18":1,"23":2,"25":1,"26":2,"27":1,"28":4,"29":5,"31":4,"33":1,"34":1,"36":1,"38":1,"39":3,"40":1,"41":3,"42":2}}],["between=",{"2":{"1":1}}],["between",{"2":{"0":8,"1":1,"2":1,"4":1,"13":1,"19":1,"25":1,"36":2,"39":1,"42":2}}],["bottom",{"2":{"34":2}}],["both",{"2":{"0":2,"2":1,"41":1}}],["book",{"2":{"27":1}}],["bond``of",{"2":{"0":1}}],["bond",{"2":{"0":33,"1":7,"4":3}}],["bonds",{"2":{"0":1}}],["boundary",{"2":{"0":6,"18":2,"19":1}}],["b",{"2":{"0":3,"2":5,"4":5,"7":2,"29":1,"30":1,"34":2,"35":2,"37":2,"40":4,"41":5}}],["p",{"2":{"29":2,"30":1,"31":4,"35":1}}],["philosophy",{"2":{"28":1}}],["physicists",{"2":{"28":1}}],["physics",{"2":{"21":1,"28":2}}],["physical",{"2":{"1":3,"2":1,"24":2,"25":4,"27":1}}],["physdim^2",{"2":{"1":1}}],["physdim^",{"2":{"1":2}}],["physdim",{"2":{"1":3}}],["physdim=2",{"2":{"1":3}}],["penrose",{"2":{"38":1}}],["peps",{"2":{"28":1}}],["perspective",{"2":{"27":1}}],["per",{"2":{"5":1,"19":2}}],["permuting",{"2":{"33":1}}],["permutation",{"2":{"4":1}}],["permuted",{"2":{"4":1}}],["permutedims",{"2":{"4":2,"42":2}}],["permute",{"2":{"4":1,"40":1}}],["perm",{"2":{"4":2}}],["performance",{"2":{"11":1}}],["performed",{"2":{"6":1,"41":1}}],["perform",{"2":{"0":1,"4":7,"31":2,"41":2}}],["performing",{"2":{"0":2}}],["periodic",{"2":{"0":2,"18":1,"19":1}}],["periodic=false",{"2":{"0":2}}],["pictures",{"2":{"26":1}}],["purification",{"2":{"25":1}}],["push",{"2":{"5":3,"7":2,"11":2,"29":2}}],["p3",{"2":{"25":4}}],["p2",{"2":{"25":5}}],["p1",{"2":{"25":7}}],["pdes",{"2":{"21":1}}],["pytorch",{"2":{"21":1}}],["python",{"2":{"10":1,"21":2}}],["posible",{"2":{"29":1}}],["point",{"2":{"26":1,"28":1}}],["powered",{"2":{"22":3}}],["polymorphic",{"2":{"10":1}}],["popular",{"2":{"10":1}}],["pop",{"2":{"5":4,"7":2,"29":2}}],["plot",{"2":{"6":1}}],["place",{"2":{"2":3,"5":3,"6":1,"31":1,"38":1}}],["practice",{"2":{"10":1,"33":1}}],["prefer",{"2":{"42":1}}],["preemptive",{"2":{"35":1}}],["preemptively",{"2":{"6":1}}],["predefined",{"2":{"33":1}}],["prepare",{"2":{"33":1}}],["preserves",{"2":{"23":1}}],["present",{"2":{"7":1}}],["prone",{"2":{"28":1}}],["provides",{"2":{"25":1,"32":1,"33":1}}],["provided",{"2":{"0":4,"4":4,"31":1}}],["probably",{"2":{"39":2}}],["probabilities",{"2":{"23":2}}],["probability",{"2":{"23":3}}],["problems",{"2":{"29":1}}],["problem",{"2":{"21":1,"27":1,"31":1,"33":1}}],["programming",{"2":{"10":1}}],["projection",{"2":{"5":1}}],["projected",{"2":{"5":2}}],["property",{"2":{"23":1,"27":1}}],["proper",{"2":{"1":2}}],["product",{"0":{"3":1,"18":1,"19":1,"20":1},"1":{"19":1},"2":{"1":2,"3":2,"10":2,"18":1,"19":2,"38":1,"41":1}}],["p=2",{"2":{"2":1}}],["pattern",{"2":{"41":1}}],["path=path",{"2":{"31":1}}],["path=einexpr",{"2":{"5":2}}],["paths",{"2":{"31":2}}],["path",{"2":{"5":3,"31":9,"33":1,"35":1}}],["particular",{"2":{"10":1}}],["parts",{"2":{"7":1}}],["parallel",{"2":{"5":2}}],["parallelto",{"2":{"5":1}}],["parent",{"2":{"4":2,"5":1,"10":1,"28":2,"40":4}}],["pair",{"2":{"4":4,"6":1}}],["pairs",{"2":{"0":1,"4":1,"36":1}}],["passing",{"2":{"31":1,"40":1}}],["pass",{"2":{"3":2,"24":1,"29":1,"31":1}}],["passed",{"2":{"0":1,"5":3}}],["efficiently",{"2":{"23":1}}],["efficiency",{"2":{"6":1}}],["enough",{"2":{"41":2}}],["entities",{"2":{"23":1}}],["ends",{"2":{"11":1}}],["end",{"2":{"11":1,"36":3}}],["enhance",{"2":{"6":1}}],["errors",{"2":{"11":1,"28":1}}],["ergonomy",{"2":{"11":1}}],["ed",{"2":{"11":1}}],["edge",{"2":{"0":8}}],["edges",{"2":{"0":5,"5":1,"13":1,"28":1,"38":1}}],["essential",{"2":{"28":2}}],["es",{"2":{"10":1}}],["egality",{"2":{"5":2}}],["evolution",{"0":{"17":1},"2":{"17":1,"26":1}}],["evolved",{"2":{"17":1}}],["evolve",{"2":{"0":3,"1":2,"17":3}}],["evaluations",{"2":{"5":1}}],["evaluates",{"2":{"5":1}}],["every",{"2":{"5":1,"31":1}}],["equation",{"2":{"5":1,"28":1}}],["equals",{"2":{"4":1}}],["equivalent",{"2":{"4":3,"5":5,"31":1,"42":1}}],["elems",{"2":{"31":11}}],["elements",{"2":{"6":1,"35":1,"37":1}}],["element",{"2":{"1":2,"4":4,"5":2,"7":1,"25":6,"30":4,"41":5,"42":5}}],["eltype",{"2":{"1":2,"4":3}}],["eltype=float64",{"2":{"1":2}}],["einstein",{"2":{"31":1}}],["einsum",{"2":{"28":2,"31":1,"41":3}}],["einexpr",{"2":{"5":5,"31":4}}],["einexprs",{"2":{"0":1,"4":1,"5":4,"22":2,"31":1}}],["either",{"2":{"0":1,"4":3}}],["exact",{"2":{"29":1,"33":1}}],["examplefig",{"2":{"34":1}}],["example",{"2":{"26":1,"28":2,"29":2,"30":1,"39":1,"41":1,"42":1}}],["existing",{"2":{"29":1}}],["exchange",{"2":{"30":1}}],["exclusively",{"2":{"28":1}}],["excepting",{"2":{"27":1}}],["except",{"2":{"2":1,"4":6}}],["extra",{"2":{"41":1}}],["extracted",{"2":{"36":1}}],["extraction",{"2":{"0":1,"2":1,"5":1}}],["extends",{"2":{"25":1}}],["expr",{"2":{"31":1}}],["expressed",{"2":{"26":1}}],["expression",{"2":{"24":1,"28":1,"31":2,"39":1}}],["explicitly",{"2":{"41":1}}],["explained",{"2":{"30":1,"42":1}}],["explosion",{"2":{"1":2}}],["exp",{"2":{"27":1}}],["expand",{"2":{"4":2}}],["exponentially",{"2":{"1":2,"23":1}}],["expected",{"2":{"5":1,"28":1}}],["expectation",{"2":{"0":3,"26":1}}],["expect",{"2":{"0":1}}],["each",{"2":{"0":1,"1":4,"4":1,"5":1,"28":1,"30":1,"40":1}}],["e",{"2":{"0":4,"2":9,"5":2,"7":1,"10":1,"18":1,"19":1,"24":1,"25":1,"27":1,"29":1,"30":1,"31":2,"34":1,"35":2,"38":1,"41":1}}],["rule",{"2":{"41":1}}],["run",{"2":{"11":1}}],["rust",{"2":{"10":1}}],["rather",{"2":{"10":1}}],["rank=1",{"2":{"38":1}}],["rank",{"2":{"6":2,"33":1,"35":1,"36":1,"38":1,"42":2}}],["range",{"2":{"5":1}}],["random",{"2":{"1":4,"4":3,"5":2}}],["rand",{"2":{"1":4,"5":1,"7":3,"34":3,"35":4,"37":3,"38":3,"40":1}}],["rng",{"2":{"1":2}}],["r",{"2":{"1":2}}],["right",{"2":{"0":3,"1":3,"4":15,"16":1,"26":3}}],["relationships",{"2":{"42":1}}],["relies",{"2":{"7":1}}],["re",{"2":{"41":1}}],["remain",{"2":{"41":1}}],["remainder",{"2":{"39":1}}],["remove",{"2":{"5":2}}],["removed",{"2":{"4":1,"5":1,"29":1}}],["reduction",{"0":{"36":1}}],["reducing",{"2":{"33":1}}],["reduces",{"2":{"33":1}}],["reduce",{"2":{"6":2,"33":1,"35":1,"36":1}}],["really",{"2":{"40":1}}],["reached",{"2":{"39":1}}],["reactant",{"2":{"7":1}}],["reason",{"2":{"33":1}}],["read",{"2":{"27":2}}],["requiring",{"2":{"26":1}}],["requires",{"2":{"34":1}}],["required",{"2":{"30":1}}],["requirement",{"2":{"7":1}}],["require",{"2":{"7":1,"41":1}}],["region",{"2":{"11":3}}],["regions",{"0":{"11":1},"2":{"11":1}}],["regularity",{"2":{"5":2}}],["reverse",{"2":{"6":1}}],["renaming",{"2":{"5":1,"26":1}}],["rename",{"2":{"2":1,"5":1}}],["renamed",{"2":{"2":6}}],["respectively",{"2":{"39":1,"40":1}}],["research",{"2":{"28":1}}],["resetinds",{"2":{"5":1}}],["reset=false",{"2":{"2":3}}],["reset=true",{"2":{"2":6}}],["reset",{"2":{"1":3}}],["resolution",{"2":{"21":1}}],["restricted",{"2":{"10":1,"38":1}}],["reshape",{"2":{"5":1}}],["resulting",{"2":{"35":1,"41":1}}],["results",{"2":{"7":1}}],["result",{"2":{"4":2,"6":1,"7":2,"31":1,"35":1}}],["repl",{"2":{"24":1}}],["replaced",{"2":{"4":1,"5":1,"29":1}}],["replacements",{"2":{"4":1}}],["replace",{"2":{"4":3,"5":3,"29":5}}],["repeatedly",{"2":{"7":2}}],["repeated",{"2":{"4":1,"5":1,"7":1,"41":2}}],["repeat",{"2":{"4":1}}],["representation",{"0":{"8":1}}],["represent",{"2":{"5":1,"13":2,"23":1,"39":1}}],["represented",{"2":{"3":1,"6":2,"28":2,"29":1,"34":1,"40":1}}],["represents",{"2":{"2":2,"16":1,"23":2,"27":2,"31":2}}],["representing",{"2":{"0":11,"2":4,"5":1,"24":1}}],["reindex",{"2":{"2":4}}],["recommended",{"2":{"41":1}}],["recommend",{"2":{"21":1,"24":1,"27":1}}],["reconstruct",{"2":{"7":1}}],["recent",{"2":{"10":1,"21":1}}],["recursive",{"2":{"5":1,"42":1}}],["recanonizing",{"2":{"0":1}}],["rectangular",{"2":{"0":2}}],["reference",{"2":{"30":1}}],["referenced",{"2":{"2":1}}],["refers",{"2":{"24":1}}],["refer",{"2":{"24":1,"42":1}}],["ref",{"2":{"0":2}}],["returned",{"2":{"0":1,"4":1,"31":1}}],["returns",{"2":{"0":3,"1":1,"2":3,"5":1,"7":1,"25":1,"27":1,"30":3}}],["return",{"2":{"0":13,"2":9,"4":15,"5":16,"6":1,"7":1}}],["rows",{"2":{"0":2}}],["lying",{"2":{"27":1}}],["lower",{"2":{"31":1}}],["lot",{"2":{"31":1,"39":1}}],["looking",{"2":{"36":1}}],["look",{"2":{"21":1}}],["looks",{"2":{"10":1}}],["location",{"2":{"2":2,"4":1}}],["locally",{"2":{"33":1}}],["local",{"2":{"0":4}}],["lu",{"2":{"4":5}}],["l2",{"2":{"2":1}}],["lp",{"2":{"2":1}}],["let",{"2":{"41":1}}],["legal",{"2":{"29":1}}],["level",{"2":{"17":1,"31":1}}],["lead",{"2":{"11":1}}],["leads",{"2":{"2":1}}],["leave",{"2":{"11":1}}],["least",{"2":{"5":2}}],["length",{"2":{"4":3,"40":1}}],["left",{"2":{"0":3,"1":3,"4":15,"6":1,"26":3,"31":1}}],["lq",{"2":{"1":1}}],["l",{"2":{"1":2,"29":2,"30":1,"31":4,"34":1,"35":1,"36":1,"37":2,"38":2}}],["lt",{"2":{"0":1,"3":2}}],["lies",{"2":{"33":1}}],["lieb",{"2":{"0":2}}],["literature",{"2":{"26":1}}],["living",{"2":{"23":1}}],["library",{"2":{"21":2,"31":1}}],["libraries",{"2":{"21":1,"28":2,"41":1}}],["linear",{"2":{"23":1,"26":1,"39":2,"42":2}}],["linearization",{"2":{"7":1}}],["linearalgebra",{"2":{"0":1,"2":2,"4":3}}],["like",{"2":{"0":3,"2":1,"4":1,"5":1,"10":3,"17":1,"23":2,"24":1,"25":2,"28":1,"39":1,"42":2}}],["lists",{"2":{"41":2}}],["list",{"2":{"0":1,"2":2,"5":5,"6":2,"30":2,"40":1}}],["layman",{"2":{"39":1}}],["layout=stress",{"2":{"32":1,"34":2}}],["layers",{"2":{"28":3}}],["layer",{"2":{"28":2,"30":2}}],["laptop",{"2":{"31":1}}],["later",{"2":{"25":1}}],["lattice",{"0":{"13":1},"2":{"0":32,"13":1,"14":1}}],["laid",{"2":{"18":1,"31":1}}],["languages",{"2":{"10":2}}],["lane",{"2":{"0":10,"2":11}}],["lanes",{"2":{"0":6,"2":5}}],["labels",{"2":{"39":1}}],["labels=true",{"2":{"32":1,"34":2}}],["label",{"2":{"2":1,"4":2,"34":2,"42":1}}],["last",{"2":{"1":1,"7":1}}],["large",{"2":{"5":1,"22":1,"23":1}}],["larger",{"2":{"0":5}}],["largest",{"2":{"0":5}}],["word",{"2":{"42":1}}],["work",{"2":{"30":1}}],["would",{"2":{"11":1,"41":1}}],["won",{"2":{"5":2,"29":1}}],["wraps",{"2":{"40":1}}],["wrapper",{"2":{"17":1}}],["wrapping",{"2":{"4":2}}],["write",{"2":{"41":1}}],["written",{"2":{"21":3,"28":2}}],["writing",{"2":{"10":1}}],["we",{"2":{"7":2,"11":1,"21":1,"24":1,"39":1,"41":2,"42":1}}],["ways",{"2":{"41":1}}],["want",{"2":{"11":2,"24":1,"27":1,"29":1,"31":1,"41":2}}],["was",{"2":{"7":1}}],["warning",{"2":{"0":1,"2":1,"4":1,"24":1,"26":1,"29":1}}],["why",{"2":{"33":1,"41":1}}],["whatever",{"2":{"42":1}}],["what",{"2":{"28":1,"30":1,"39":2,"41":1}}],["whole",{"2":{"26":1}}],["whose",{"2":{"1":1,"6":2,"13":1,"18":1,"27":1,"35":1}}],["while",{"2":{"6":1,"19":1,"41":1}}],["which",{"2":{"4":3,"5":1,"7":1,"10":2,"11":2,"16":1,"21":1,"25":2,"26":1,"27":2,"28":1,"29":1,"30":2,"31":7,"33":2,"38":1,"40":1,"41":2,"42":1}}],["whenever",{"2":{"11":1}}],["when",{"2":{"6":3,"7":1,"11":1,"28":1,"29":1,"31":1,"34":1}}],["whether",{"2":{"0":5,"1":1,"2":1,"27":1}}],["where",{"2":{"0":1,"1":1,"4":4,"5":2,"6":1,"11":1,"24":1,"26":1,"37":1,"38":1,"41":1}}],["wild",{"2":{"21":1}}],["will",{"2":{"0":2,"3":2,"4":3,"5":5,"7":1,"11":1,"31":4,"41":2}}],["wip",{"2":{"8":1,"9":1,"15":1,"17":1,"23":1}}],["wise",{"2":{"4":2,"41":1}}],["without",{"2":{"11":2,"26":1}}],["with",{"2":{"0":9,"1":3,"2":10,"4":5,"5":3,"6":2,"7":1,"10":1,"17":1,"21":2,"23":1,"25":5,"26":1,"27":1,"29":3,"30":2,"32":1,"36":1,"39":2,"40":1,"41":1,"42":3}}],["cik=∑jaijbjk",{"2":{"39":1}}],["circuits",{"2":{"26":1}}],["crucial",{"2":{"33":1}}],["create",{"2":{"0":3,"1":4,"3":2,"24":1,"40":1}}],["cuttings",{"2":{"22":1}}],["currently",{"2":{"0":3,"4":1,"5":1,"17":1}}],["closed",{"2":{"18":1}}],["class",{"2":{"10":1}}],["clear",{"2":{"10":1}}],["c++",{"2":{"10":1}}],["c",{"2":{"4":4,"7":3,"29":1,"34":2,"35":2,"37":2,"40":1}}],["cyclic",{"2":{"4":1}}],["care",{"2":{"26":1}}],["cartesian",{"2":{"24":1}}],["caveat",{"2":{"24":1}}],["cache",{"2":{"7":3}}],["cachedfield",{"2":{"7":4}}],["cached",{"0":{"7":1}}],["called",{"2":{"7":2,"28":1,"31":1}}],["call",{"2":{"5":1,"7":1,"24":1,"31":1,"32":1}}],["calling",{"2":{"4":2,"7":2,"31":1}}],["causality",{"2":{"2":1}}],["cannot",{"2":{"10":1,"24":1}}],["can",{"2":{"2":2,"4":2,"7":1,"10":3,"11":2,"16":1,"18":1,"23":3,"24":3,"25":2,"26":2,"27":4,"28":2,"29":4,"30":1,"31":4,"33":4,"36":1,"38":1,"39":4,"40":2,"41":3,"42":1}}],["canonization",{"0":{"15":1},"1":{"16":1}}],["canonized",{"2":{"1":1}}],["canonizes",{"2":{"0":1}}],["canonize=true",{"2":{"0":1}}],["canonize",{"2":{"0":9}}],["canonical",{"2":{"0":16,"1":1,"16":1}}],["cases",{"2":{"11":1,"24":1,"29":1,"36":1}}],["case",{"2":{"0":1,"4":3,"21":1,"27":1,"30":2,"33":1,"41":2}}],["choose",{"2":{"31":1}}],["characteristics",{"2":{"31":1}}],["character",{"2":{"5":1}}],["changes",{"2":{"5":2}}],["chainrules",{"2":{"22":1}}],["chains",{"2":{"18":1}}],["chain",{"2":{"0":2,"18":1}}],["checkout",{"2":{"30":1}}],["checks",{"2":{"11":6}}],["check",{"2":{"0":3,"1":2,"5":1,"11":1,"24":1,"30":1,"42":1}}],["certain",{"2":{"28":1}}],["center",{"2":{"0":8,"1":1}}],["cell",{"2":{"0":2}}],["coomplement",{"2":{"25":1}}],["coordinate",{"2":{"2":1}}],["coordinates",{"2":{"2":5}}],["covariant",{"2":{"24":1}}],["correct",{"2":{"11":1}}],["correctly",{"2":{"7":1}}],["correspond",{"2":{"5":1}}],["corresponding",{"2":{"4":2}}],["cost",{"2":{"7":1,"31":1}}],["code",{"2":{"5":1,"7":1,"11":1}}],["copied",{"2":{"5":1}}],["copy",{"2":{"0":1,"1":1,"5":5,"6":2,"29":1,"31":1,"34":1,"36":1}}],["collect",{"2":{"5":2}}],["columns",{"2":{"0":2,"6":1}}],["comes",{"2":{"28":1}}],["compose",{"2":{"31":1}}],["composed",{"2":{"30":2}}],["composing",{"2":{"28":1}}],["composition",{"2":{"10":1}}],["complete",{"2":{"31":2}}],["completely",{"2":{"10":1,"28":1,"29":1}}],["complex",{"2":{"23":2,"40":6}}],["compared",{"2":{"10":1}}],["computations",{"2":{"33":1}}],["computational",{"2":{"6":1,"31":1}}],["computing",{"2":{"27":1}}],["computed",{"2":{"5":1}}],["compute",{"2":{"0":6}}],["comma",{"2":{"2":2}}],["coefficients",{"2":{"0":6}}],["concrete",{"2":{"10":1,"28":3,"30":1}}],["concept",{"2":{"2":1}}],["consumed",{"2":{"28":1}}],["consulted",{"2":{"40":1}}],["consult",{"2":{"16":1}}],["consequences",{"2":{"28":1}}],["consists",{"2":{"28":1}}],["consistency",{"2":{"26":1}}],["consistent",{"2":{"11":1}}],["considered",{"2":{"10":1}}],["construction",{"2":{"29":1}}],["constructed",{"2":{"29":1}}],["construct",{"2":{"4":1}}],["constructors",{"2":{"3":1}}],["constructor",{"2":{"2":1,"3":2,"5":1,"24":2}}],["constructs",{"2":{"2":2,"28":1}}],["converts",{"2":{"34":1}}],["convert",{"2":{"6":2}}],["conversion",{"2":{"0":1,"2":1,"5":1}}],["configurable",{"2":{"35":1}}],["configs",{"2":{"6":2}}],["config",{"2":{"6":2}}],["conj",{"2":{"4":3,"5":1,"40":1}}],["conjugates",{"2":{"40":1}}],["conjugated",{"2":{"5":1}}],["conjugate",{"2":{"2":1,"4":1,"26":1}}],["contents",{"2":{"31":1}}],["contravariant",{"2":{"24":1}}],["contracts",{"2":{"35":1}}],["contractsimplification",{"2":{"6":1,"35":1}}],["contracted",{"2":{"5":1,"41":3}}],["contractio",{"2":{"31":1}}],["contractionsimplification",{"2":{"35":1}}],["contractions",{"2":{"31":3,"35":1}}],["contraction",{"0":{"31":1,"35":1,"41":1},"2":{"1":2,"4":4,"5":4,"22":2,"31":11,"33":2,"35":1,"41":3}}],["contracting",{"2":{"0":2,"31":1,"33":1,"41":1}}],["contract",{"2":{"0":3,"1":3,"4":7,"5":8,"6":1,"25":1,"30":1,"31":7,"38":2,"41":9}}],["contain",{"2":{"5":1,"30":1}}],["contains=",{"2":{"25":1,"30":1}}],["contains",{"2":{"0":1,"6":1,"11":1,"30":1}}],["connecting",{"2":{"26":1,"28":1}}],["connectivity",{"0":{"26":1},"1":{"27":1},"2":{"0":1,"13":1,"14":1}}],["connect",{"2":{"2":1,"25":1,"26":1,"38":1}}],["connected",{"2":{"0":1,"2":2,"5":1}}],["conditions",{"2":{"18":2,"19":1}}],["condition",{"2":{"0":3,"6":1}}],["np",{"2":{"31":1}}],["nice",{"2":{"21":1,"23":1}}],["ninds",{"2":{"5":2}}],["ntensors",{"2":{"5":2}}],["ntuple",{"2":{"4":1}}],["names",{"2":{"5":1,"30":1,"40":1}}],["name",{"2":{"4":3}}],["named",{"2":{"4":1}}],["ndims",{"2":{"4":3}}],["nsites",{"2":{"2":1}}],["nlanes",{"2":{"2":1}}],["nor",{"2":{"42":1}}],["normal",{"2":{"24":1,"26":1,"27":1}}],["normalize=true",{"2":{"1":3}}],["normalized",{"2":{"1":3}}],["normalize",{"2":{"0":9}}],["norm",{"2":{"1":2,"2":4}}],["node",{"2":{"31":1}}],["now",{"2":{"16":1,"24":1}}],["no",{"2":{"0":1,"2":1,"4":3,"7":1,"21":1,"27":1,"31":1,"38":1}}],["noticed",{"2":{"28":1}}],["notion",{"2":{"2":1}}],["notation",{"2":{"26":1,"28":2,"31":1,"42":1}}],["not",{"2":{"1":1,"4":1,"5":3,"6":1,"10":2,"25":1,"26":1,"27":1,"28":2,"34":1,"38":1,"40":1,"41":4,"42":1}}],["notes",{"2":{"0":4,"2":1}}],["note",{"2":{"0":1,"4":3,"11":1,"25":2,"26":1,"29":1,"30":1,"31":1,"40":1}}],["nothing",{"2":{"0":8,"1":3,"5":2,"42":1}}],["none",{"2":{"30":1}}],["non",{"2":{"0":1,"42":1}}],["noncanonical",{"2":{"0":4,"1":2}}],["nv",{"2":{"0":2}}],["numbers",{"2":{"39":1}}],["number",{"2":{"0":3,"1":4,"2":2,"4":3,"5":5,"7":1,"27":1,"28":1,"35":1,"38":1}}],["nevertheless",{"2":{"39":1}}],["necessarily",{"2":{"33":1}}],["nested",{"2":{"11":1}}],["next",{"2":{"7":1}}],["need",{"2":{"4":3,"41":1}}],["neighboring",{"2":{"0":2,"13":1}}],["neighbors",{"2":{"0":4}}],["new",{"2":{"0":3,"2":1,"4":3,"5":6,"6":1,"21":1,"25":2}}],["ne",{"2":{"0":2}}],["networks",{"0":{"23":1,"28":1},"1":{"24":1,"25":1,"26":1,"27":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"0":1,"2":4,"18":1,"22":1,"26":1,"28":3,"29":1,"31":2}}],["network",{"2":{"0":40,"1":5,"2":14,"5":4,"6":1,"14":1,"18":1,"21":4,"22":2,"23":1,"26":1,"27":1,"28":1,"31":6,"33":5,"34":1}}],["ncols",{"2":{"0":4}}],["nrows",{"2":{"0":4}}],["n",{"2":{"0":2,"1":10,"4":9,"5":2,"29":2,"30":1,"31":5,"35":1,"38":2,"39":5}}],["should",{"2":{"42":1}}],["shallow",{"2":{"5":1}}],["system",{"2":{"30":1}}],["symbolic",{"2":{"31":1}}],["symbols",{"2":{"5":2,"40":1}}],["symbol",{"2":{"1":1,"4":12,"5":7,"7":2,"25":7,"30":2,"31":1}}],["small",{"2":{"30":1,"31":1}}],["smaller",{"2":{"6":1,"35":1,"37":1,"38":1}}],["slicing",{"2":{"22":1}}],["slices",{"2":{"37":1}}],["slice",{"2":{"5":3,"42":2}}],["split",{"0":{"38":1}}],["splitsimplification",{"2":{"6":1,"38":2}}],["specifying",{"2":{"42":1}}],["specify",{"2":{"41":1}}],["specified",{"2":{"4":10,"5":1,"42":1}}],["specifies",{"2":{"0":1,"1":2}}],["specialized",{"2":{"27":1}}],["speaking",{"2":{"25":1}}],["spaces",{"2":{"39":1}}],["space",{"2":{"10":1,"23":1,"35":1,"42":1}}],["skip",{"2":{"6":4}}],["satisfies",{"2":{"5":2}}],["same",{"2":{"0":1,"2":1,"4":4,"5":3,"7":1,"29":1}}],["s",{"2":{"4":3,"5":1,"10":1,"17":1,"21":1,"28":3,"33":1,"35":1,"39":1,"41":4}}],["switch",{"2":{"26":1}}],["swapped",{"2":{"2":1}}],["sweep",{"2":{"1":5}}],["scott",{"2":{"27":1}}],["scope",{"2":{"11":1}}],["scripts",{"2":{"24":1}}],["scalars",{"2":{"39":1}}],["scalar",{"2":{"2":3,"27":2,"39":1}}],["schmidt",{"2":{"0":6}}],["several",{"2":{"31":1}}],["semantics",{"2":{"26":1}}],["second",{"2":{"11":1}}],["sense",{"2":{"10":1,"17":1}}],["search",{"2":{"5":1,"33":1,"35":1}}],["self",{"2":{"5":2}}],["selectdim",{"2":{"4":4,"5":4,"42":2}}],["set=",{"2":{"25":6}}],["sets",{"2":{"6":1}}],["set",{"2":{"4":3,"5":4,"30":1,"33":1,"39":1}}],["setindex",{"2":{"4":3,"42":1}}],["separated",{"2":{"2":2}}],["seemps",{"2":{"21":1}}],["seed",{"2":{"5":3}}],["see",{"2":{"2":8,"4":1,"5":13,"6":3}}],["sofistification",{"2":{"28":1}}],["sorted",{"2":{"7":2}}],["sort",{"2":{"7":1}}],["sorts",{"2":{"5":1}}],["some",{"2":{"6":1,"7":1,"10":1,"11":1,"17":1,"23":1,"25":1,"28":3,"34":1,"41":1}}],["socket",{"0":{"27":1},"2":{"2":10,"27":6}}],["so",{"2":{"1":1,"2":1,"5":1,"7":1,"23":1,"25":2,"28":1,"30":1,"31":1}}],["source",{"2":{"0":42,"1":11,"2":26,"3":1,"4":29,"5":28,"6":9,"21":1}}],["svd",{"2":{"0":5,"1":1,"4":5,"6":1,"38":1}}],["svd=true",{"2":{"0":1}}],["still",{"2":{"25":1,"27":1,"41":1}}],["style",{"2":{"10":5}}],["starts",{"2":{"28":2}}],["starting",{"2":{"5":1,"28":1}}],["stable",{"2":{"5":1}}],["stated",{"2":{"41":1}}],["states",{"0":{"18":1},"1":{"19":1},"2":{"18":1,"23":1,"25":1}}],["state",{"2":{"0":10,"1":1,"2":3,"3":1,"11":2,"17":1,"19":2,"23":1,"25":1,"27":7}}],["stored",{"2":{"5":1}}],["store",{"2":{"4":2}}],["stores",{"2":{"0":1,"7":1,"14":1}}],["strong",{"2":{"21":1}}],["stroke",{"2":{"10":5}}],["structural",{"2":{"10":2}}],["structured",{"2":{"28":1}}],["structure",{"2":{"6":1,"33":1,"36":2}}],["str",{"2":{"2":4,"24":1}}],["suggest",{"2":{"30":1}}],["such",{"2":{"7":2,"26":1,"36":1,"40":1}}],["subset",{"2":{"30":1}}],["subtype",{"2":{"25":1,"30":1,"42":1}}],["subtypes",{"2":{"0":1,"2":1,"5":1,"30":1,"40":1}}],["subtract",{"2":{"4":1}}],["subarray",{"2":{"4":4,"42":2}}],["superclass",{"2":{"10":1}}],["superset",{"2":{"2":1}}],["support",{"2":{"4":1,"21":1,"29":1,"32":1}}],["supported",{"2":{"0":1,"4":1,"42":1}}],["summation",{"2":{"31":1}}],["sum",{"2":{"0":1,"23":1,"41":1}}],["since",{"2":{"27":1,"42":1}}],["singular",{"2":{"0":4,"1":2,"6":1,"38":2}}],["simplification",{"0":{"35":1,"38":1}}],["simple",{"2":{"0":4,"17":2}}],["similar",{"2":{"4":2,"31":1}}],["sizes",{"2":{"5":1,"11":1}}],["size=1",{"2":{"4":1}}],["size",{"2":{"4":9,"5":4,"6":1,"11":1,"33":2,"40":4}}],["site2",{"2":{"1":2}}],["site1",{"2":{"1":2}}],["site",{"0":{"24":1},"2":{"0":6,"1":5,"2":23,"14":1,"19":2,"24":14,"25":6}}],["sites",{"2":{"0":5,"1":6,"2":15,"13":1,"24":2,"25":7,"26":2}}],["fdim⁡",{"2":{"39":1}}],["fear",{"2":{"31":1}}],["features",{"0":{"22":1},"2":{"25":1}}],["f",{"2":{"29":1,"39":1}}],["framework",{"2":{"21":1}}],["from",{"2":{"1":2,"5":3,"10":2,"26":4,"28":4,"41":1}}],["furthermore",{"2":{"39":1}}],["further",{"2":{"33":1}}],["fusing",{"2":{"31":1}}],["fused",{"2":{"36":1}}],["fuse",{"2":{"5":1}}],["functions",{"2":{"33":1}}],["functionality",{"2":{"19":1,"25":1}}],["function",{"2":{"16":1,"17":1,"25":1,"27":1,"39":2,"40":1}}],["full",{"2":{"11":1}}],["fulfil",{"2":{"6":1}}],["fulfilling",{"2":{"30":1}}],["fulfill",{"2":{"6":1,"7":1}}],["fulfills",{"2":{"0":1}}],["follows",{"2":{"29":1}}],["following",{"2":{"5":2,"26":1,"28":1,"41":3}}],["founds",{"2":{"37":1}}],["found",{"2":{"28":1,"31":2,"33":1}}],["fo",{"2":{"24":1}}],["focus",{"2":{"21":1}}],["forced",{"2":{"41":1}}],["forget",{"2":{"30":1}}],["forbiding",{"2":{"28":1}}],["forbid",{"2":{"10":1}}],["form`",{"2":{"0":1}}],["form",{"0":{"16":1},"2":{"0":16,"1":4,"10":1,"16":3,"31":1}}],["for",{"2":{"0":5,"1":1,"2":2,"4":3,"5":5,"6":1,"11":4,"17":2,"21":2,"24":3,"26":1,"27":3,"28":3,"29":2,"30":3,"31":3,"33":1,"36":4,"38":1,"39":1,"40":1,"41":2,"42":1}}],["fixing",{"2":{"39":1}}],["fig",{"2":{"34":5}}],["figure",{"2":{"34":1}}],["fine",{"2":{"28":1}}],["finding",{"2":{"31":2}}],["find",{"2":{"27":1}}],["finally",{"2":{"26":1}}],["final",{"2":{"11":1,"31":1}}],["fit",{"2":{"21":1,"29":1}}],["fields",{"2":{"10":3,"18":1,"28":1,"42":1}}],["field",{"0":{"7":1},"2":{"7":1,"39":1}}],["filled",{"2":{"4":1}}],["first",{"2":{"1":1,"5":2,"11":1,"38":1}}],["flexibility",{"2":{"41":1}}],["flexible",{"2":{"21":1}}],["flops",{"2":{"31":11}}],["float64",{"2":{"1":2,"25":2,"29":2,"31":4,"36":1,"40":3}}],["flipped",{"2":{"2":1}}],["flag",{"2":{"2":1,"7":1}}],["factoring",{"2":{"33":1}}],["factorization",{"2":{"1":2,"4":9,"6":1}}],["favouring",{"2":{"10":1}}],["faster",{"2":{"5":1}}],["false",{"2":{"0":2,"2":3,"5":1,"7":1,"27":1,"29":1}}],["i=>1",{"2":{"42":1}}],["i=1",{"2":{"42":3}}],["i=j0for",{"2":{"36":1}}],["i≠j↦aijkl=aαkl",{"2":{"36":1}}],["implicit",{"2":{"41":1}}],["implicitly",{"2":{"41":1}}],["implements",{"2":{"19":1,"25":2,"28":1,"29":1,"30":1}}],["implementing",{"2":{"10":1}}],["implementation",{"2":{"5":1}}],["implementor",{"2":{"5":1}}],["implementors",{"2":{"5":1}}],["implemented",{"2":{"0":1,"2":1,"17":1,"28":1}}],["implement",{"2":{"0":1,"2":1,"5":1,"10":1,"30":2}}],["importantly",{"2":{"33":1}}],["import",{"2":{"32":1}}],["imagine",{"2":{"26":1,"41":2}}],["identified",{"2":{"39":1}}],["identity",{"2":{"1":1}}],["id5",{"2":{"10":4}}],["id4",{"2":{"10":4}}],["id3",{"2":{"10":5}}],["id2",{"2":{"10":4}}],["id1",{"2":{"10":4}}],["id",{"2":{"2":3}}],["inference",{"2":{"41":1}}],["inferred",{"2":{"41":1}}],["info",{"2":{"5":1}}],["information",{"2":{"0":1,"14":1,"24":1,"27":1,"28":1,"30":1}}],["involve",{"2":{"33":1}}],["involved",{"2":{"31":1}}],["invalidated",{"2":{"7":1}}],["invalidates",{"2":{"7":1}}],["invalidation",{"2":{"7":1}}],["inadecuate",{"2":{"28":1}}],["inspiration",{"2":{"21":1}}],["instance",{"2":{"27":1}}],["instantiated",{"2":{"10":2}}],["instead",{"2":{"0":3,"5":1,"10":1,"11":1,"24":1,"28":1,"41":1}}],["inherits",{"2":{"25":1}}],["inherited",{"2":{"10":2}}],["inheriting",{"2":{"10":1,"28":1}}],["inheritance",{"0":{"10":1},"2":{"10":2,"28":1}}],["initth",{"2":{"5":1}}],["init",{"2":{"5":1}}],["initialized",{"2":{"1":1}}],["inconsistent",{"2":{"11":1}}],["inconsistency",{"2":{"11":1}}],["increasingly",{"2":{"10":1}}],["increase",{"2":{"6":2}}],["increases",{"2":{"1":2}}],["included",{"2":{"5":1}}],["inner",{"2":{"5":1}}],["input",{"2":{"2":11,"19":1,"24":1,"26":2}}],["inputs=0",{"2":{"25":1}}],["inputs",{"2":{"0":1,"2":2,"25":2,"27":1,"42":2}}],["int64",{"2":{"40":13,"41":14,"42":15}}],["introduced",{"2":{"7":1}}],["int=1",{"2":{"5":1}}],["intersects=",{"2":{"30":1}}],["intersects",{"2":{"30":1}}],["intersect",{"2":{"30":1}}],["intersection",{"2":{"4":1}}],["interesting",{"2":{"30":1}}],["interacting",{"2":{"40":1}}],["interact",{"2":{"25":1}}],["interpolate",{"2":{"24":1}}],["interoperation",{"0":{"21":1}}],["interconnected",{"2":{"5":1}}],["interfaces",{"2":{"27":1}}],["interface",{"0":{"30":1},"2":{"0":1,"5":2,"25":1,"28":3}}],["integers",{"2":{"2":2}}],["integer",{"2":{"1":1,"4":2,"5":2}}],["into",{"2":{"0":2,"5":1,"6":1,"26":1,"36":2}}],["indispensable",{"2":{"33":1}}],["indicate",{"2":{"2":1,"31":1}}],["indices",{"2":{"1":4,"2":9,"4":34,"5":17,"6":4,"11":1,"19":1,"24":1,"25":4,"26":2,"27":1,"28":1,"29":3,"30":3,"31":1,"36":3,"39":3,"40":2,"41":7,"42":2}}],["indexing",{"0":{"42":1},"2":{"42":1}}],["index=i",{"2":{"4":2}}],["index=true",{"2":{"1":2}}],["index",{"2":{"0":1,"2":1,"4":3,"5":14,"11":2,"19":1,"24":2,"25":2,"29":2,"31":2,"40":2,"41":1,"42":1}}],["inds=7",{"2":{"31":1}}],["inds=8",{"2":{"29":4}}],["inds=6",{"2":{"25":1}}],["inds",{"2":{"0":1,"4":36,"5":4,"7":2,"25":8,"30":4,"40":2}}],["in",{"2":{"0":21,"1":7,"2":4,"4":13,"5":18,"6":5,"7":5,"10":5,"11":3,"14":1,"16":1,"17":2,"18":2,"19":1,"21":4,"23":1,"24":2,"25":2,"26":3,"27":2,"28":4,"29":2,"30":3,"31":8,"33":6,"35":2,"36":3,"39":1,"40":1,"41":2,"42":2}}],["if",{"2":{"0":13,"1":7,"2":9,"3":2,"4":6,"5":8,"7":1,"21":1,"24":1,"27":1,"31":4,"37":1,"38":1,"39":1,"41":1}}],["i",{"2":{"0":6,"1":1,"2":15,"4":12,"5":13,"7":2,"10":1,"18":1,"19":1,"24":1,"25":5,"27":3,"29":6,"30":3,"31":8,"34":4,"35":2,"36":4,"37":1,"38":2,"39":2,"40":5,"41":5,"42":2}}],["itensornetworks",{"2":{"21":1}}],["itensors",{"2":{"21":1}}],["itself",{"2":{"33":1}}],["its",{"2":{"0":1,"1":1,"2":1,"5":1,"11":1,"23":1,"25":1}}],["it",{"2":{"0":4,"1":2,"2":1,"3":2,"4":3,"5":11,"6":4,"7":3,"11":4,"16":1,"17":1,"23":1,"24":3,"25":3,"27":3,"28":3,"29":2,"30":1,"31":3,"33":3,"34":1,"35":1,"37":2,"40":2,"41":1,"42":1}}],["issue",{"2":{"24":1}}],["issues",{"2":{"1":2,"11":1}}],["isvalid",{"2":{"7":1}}],["isconnectable",{"2":{"2":1}}],["isdual",{"2":{"2":2}}],["isometry",{"2":{"0":2}}],["isisometry",{"2":{"0":1}}],["is",{"2":{"0":21,"1":4,"2":6,"4":9,"5":12,"6":1,"7":5,"10":1,"11":5,"13":1,"14":1,"16":1,"17":2,"19":1,"23":2,"24":2,"25":1,"26":2,"27":4,"28":3,"29":1,"30":5,"31":12,"33":2,"34":2,"35":1,"38":3,"39":3,"40":2,"41":2,"42":2}}],["v2",{"2":{"38":2}}],["v1",{"2":{"38":2}}],["variables",{"2":{"19":1,"24":1}}],["various",{"2":{"5":1}}],["vararg",{"2":{"7":1}}],["valid",{"2":{"29":1}}],["value",{"2":{"0":2,"1":1,"4":1,"5":1,"6":1,"26":1,"27":1,"38":1}}],["values",{"2":{"0":5,"1":3,"38":1}}],["val",{"2":{"0":3,"26":1,"27":1}}],["v",{"2":{"4":2,"39":3}}],["very",{"2":{"23":1}}],["version",{"2":{"6":1,"19":1}}],["versa",{"2":{"2":1}}],["vertex",{"2":{"0":2}}],["vertices",{"2":{"0":5,"5":1,"13":1,"28":1,"31":1,"38":2}}],["vectors",{"2":{"23":1,"39":3}}],["vector",{"2":{"0":4,"1":4,"7":2,"23":2,"25":6,"30":4,"39":1,"40":1,"41":4,"42":4}}],["visually",{"2":{"28":1}}],["visualization",{"0":{"32":1},"2":{"22":1,"32":1}}],["visualizing",{"2":{"6":1}}],["viewed",{"2":{"23":2,"39":1}}],["view",{"2":{"4":7,"5":3,"28":1,"39":1,"42":2}}],["viceversa",{"2":{"26":1}}],["vice",{"2":{"2":1}}],["vidal",{"2":{"0":2}}],["virtualind",{"2":{"4":6}}],["virtual",{"2":{"0":7,"4":3,"25":2}}],["tᵢⱼₖ",{"2":{"40":6}}],["t1",{"2":{"38":2}}],["takes",{"2":{"26":1}}],["take",{"2":{"21":1}}],["terms",{"2":{"39":1}}],["temporarily",{"2":{"11":1}}],["tenpy",{"2":{"21":1}}],["tensorkrowch",{"2":{"21":1}}],["tensormap",{"2":{"5":1}}],["tensornetworks",{"2":{"5":1,"26":1}}],["tensornetwork",{"0":{"5":1,"29":1},"2":{"2":2,"5":27,"6":10,"7":3,"10":2,"11":3,"25":4,"28":1,"29":7,"30":2,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1}}],["tensors=5",{"2":{"29":1,"31":1}}],["tensors=6",{"2":{"29":3}}],["tensors=3",{"2":{"25":1}}],["tensors",{"0":{"39":1},"1":{"40":1,"41":1,"42":1},"2":{"0":5,"1":10,"2":1,"4":4,"5":23,"6":5,"7":12,"18":1,"25":4,"26":2,"28":3,"29":2,"30":7,"31":2,"33":1,"34":1,"35":1,"36":2,"39":3,"40":1}}],["tensor",{"0":{"4":1,"23":1,"28":1,"40":1},"1":{"24":1,"25":1,"26":1,"27":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"0":45,"1":6,"2":18,"3":1,"4":95,"5":21,"6":3,"7":5,"11":1,"14":1,"18":2,"21":4,"22":2,"23":1,"25":4,"26":2,"27":1,"28":5,"29":12,"30":3,"31":13,"33":3,"34":4,"35":5,"36":3,"37":4,"38":8,"39":5,"40":15,"41":11,"42":8}}],["tenet",{"2":{"0":31,"1":9,"2":20,"3":1,"4":8,"5":12,"6":9,"7":1,"10":1,"19":1,"21":2,"25":1,"26":1,"27":4,"28":3,"29":1,"31":2,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"40":1,"42":1}}],["td",{"2":{"10":1}}],["twice",{"2":{"5":1}}],["two",{"2":{"0":6,"1":1,"2":2,"4":2,"31":2,"36":1,"41":2}}],["t",{"2":{"4":19,"5":2,"6":2,"7":1,"10":1,"21":1,"29":1,"30":2,"31":2,"33":1,"35":1,"39":3,"40":1}}],["tuple",{"2":{"0":1,"7":1,"25":1,"40":1,"42":2}}],["time",{"0":{"17":1},"2":{"0":1,"7":1,"10":1,"17":1,"26":2}}],["thus",{"2":{"42":1}}],["than",{"2":{"0":5,"6":1,"29":1,"37":1,"38":1}}],["that",{"2":{"0":1,"2":2,"5":3,"6":3,"7":2,"11":2,"14":1,"19":1,"23":3,"25":1,"26":1,"27":1,"28":3,"29":2,"30":3,"31":1,"36":1,"39":1,"40":2,"41":4,"42":3}}],["those",{"2":{"0":5,"27":1}}],["this",{"2":{"0":1,"2":2,"4":4,"5":3,"6":2,"10":3,"11":1,"18":1,"19":1,"26":1,"27":2,"28":3,"30":2,"33":1,"38":1,"40":1}}],["three",{"2":{"5":1}}],["threshold=nothing",{"2":{"1":1}}],["threshold",{"2":{"0":18,"1":2,"37":1}}],["throw",{"2":{"0":1}}],["through",{"2":{"0":1,"17":1}}],["theory",{"2":{"23":1}}],["these",{"2":{"18":1,"28":1,"33":2,"35":1,"40":1,"42":1}}],["they",{"2":{"10":1,"30":1}}],["their",{"2":{"5":1,"7":2,"19":2,"33":1,"42":1}}],["them",{"2":{"2":1,"6":1,"10":1,"13":1,"19":1,"30":1,"36":1,"41":1,"42":1}}],["then",{"2":{"0":2,"1":1,"2":6,"4":3,"5":2,"31":2,"41":1}}],["there",{"2":{"0":2,"5":1,"11":1,"21":1,"26":1,"29":1,"38":1}}],["the",{"0":{"13":1,"14":1,"16":1,"24":1,"25":1,"27":1,"29":1,"30":1,"40":1},"2":{"0":138,"1":50,"2":38,"3":2,"4":79,"5":44,"6":10,"7":19,"10":2,"11":14,"13":2,"16":3,"17":3,"18":2,"19":3,"21":2,"23":2,"24":10,"25":6,"26":8,"27":7,"28":21,"29":4,"30":8,"31":23,"33":10,"34":3,"35":4,"36":6,"37":2,"38":6,"39":4,"40":11,"41":17,"42":13}}],["tn",{"2":{"0":18,"1":1,"5":36,"6":4,"7":4,"11":2,"22":1,"25":2,"29":8,"30":5,"31":4,"32":1,"34":3,"35":2,"36":2,"37":2,"38":2}}],["tr",{"2":{"39":1}}],["tries",{"2":{"36":1}}],["tree",{"2":{"31":1}}],["tranposition",{"2":{"39":1}}],["transpose",{"2":{"4":1}}],["transforms",{"2":{"42":1}}],["transformed",{"2":{"34":3,"35":1,"36":1,"37":1,"38":1}}],["transformation",{"2":{"6":12,"23":1,"34":2,"35":1,"36":1,"37":1,"38":1}}],["transformations",{"0":{"6":1,"33":1},"1":{"34":1,"35":1,"36":1,"37":1,"38":1},"2":{"33":2}}],["transform",{"2":{"0":2,"6":6,"33":3,"34":1,"35":1,"36":1,"37":1,"38":1}}],["traditional",{"2":{"28":1}}],["tracking",{"2":{"24":1}}],["trace",{"2":{"11":1,"38":1,"39":1}}],["trains",{"2":{"18":1}}],["trailing",{"2":{"2":1}}],["traits",{"0":{"10":1},"2":{"27":2,"28":1}}],["trait",{"0":{"16":1,"27":1},"2":{"0":7,"2":1,"16":1,"27":2}}],["truncating",{"2":{"33":1}}],["truncation",{"0":{"37":1},"2":{"0":3}}],["truncates",{"2":{"37":1}}],["truncated",{"2":{"0":3,"1":1,"38":1}}],["truncate",{"2":{"0":13,"1":2,"6":2,"37":2}}],["true",{"2":{"0":5,"1":1,"2":3,"5":2,"7":1,"25":1,"27":1,"29":2,"40":1,"42":2}}],["too",{"2":{"24":1}}],["top",{"2":{"21":1}}],["topic",{"2":{"10":1}}],["topology",{"2":{"0":1,"19":1,"28":1}}],["tolerance",{"2":{"6":4}}],["together",{"2":{"0":1}}],["to",{"2":{"0":27,"1":19,"2":5,"3":2,"4":31,"5":22,"6":10,"7":4,"10":1,"11":7,"16":1,"18":1,"19":1,"21":2,"23":1,"24":4,"25":3,"26":11,"27":4,"28":6,"29":4,"30":2,"31":8,"33":3,"34":2,"36":1,"38":2,"39":2,"40":1,"41":8,"42":3}}],["typeof",{"2":{"1":1}}],["types",{"2":{"0":1,"2":1,"5":2,"10":3,"28":1}}],["type",{"0":{"13":1,"14":1,"24":1,"25":1,"29":1,"40":1},"2":{"0":3,"1":4,"2":2,"4":1,"5":1,"7":2,"10":1,"19":1,"24":1,"27":2,"28":5,"29":1,"30":2,"40":1}}],["aji=aijt",{"2":{"39":1}}],["aikl",{"2":{"36":1}}],["aijkl=",{"2":{"36":1}}],["again",{"2":{"31":1}}],["api",{"2":{"30":1}}],["apply",{"2":{"33":1}}],["appropeately",{"2":{"39":1}}],["appropriate",{"2":{"0":1}}],["approach",{"2":{"33":1}}],["approximate",{"2":{"31":1}}],["append",{"2":{"5":3,"29":1}}],["aaronson",{"2":{"27":1}}],["automatic",{"2":{"22":1}}],["automatically",{"2":{"11":1,"26":1,"30":1,"40":1,"41":1}}],["available",{"2":{"30":1}}],["average",{"2":{"5":1}}],["avoid",{"2":{"1":2,"7":1,"11":2}}],["amount",{"2":{"5":1}}],["affects",{"2":{"11":1}}],["affect",{"2":{"5":1,"35":1}}],["after",{"2":{"0":3,"1":2,"29":1,"41":1}}],["axis",{"2":{"4":1}}],["axis=1",{"2":{"4":1}}],["ability",{"2":{"33":1}}],["above",{"2":{"29":1,"30":1,"42":1}}],["about",{"2":{"14":1,"27":3,"28":1,"30":1,"39":1}}],["absolute",{"2":{"6":4}}],["abstractensornetwork",{"2":{"30":1}}],["abstractions",{"2":{"28":2}}],["abstractvecortuple",{"2":{"5":2}}],["abstractvector",{"2":{"3":1,"4":1}}],["abstracttensornetwork",{"0":{"30":1},"2":{"5":30,"7":5,"10":1,"11":4,"25":1,"30":1}}],["abstractmps",{"2":{"10":1}}],["abstractmpo",{"2":{"1":6,"10":1}}],["abstractmatrix",{"2":{"3":1}}],["abstractrng",{"2":{"1":2}}],["abstractarray",{"2":{"1":2,"4":5,"40":2,"42":1}}],["abstractansatz",{"2":{"0":47,"1":4,"3":1,"10":1}}],["abstractquantum",{"2":{"0":1,"2":25,"10":1,"25":2}}],["abstract",{"2":{"0":3,"2":2,"3":2,"5":1,"10":2,"28":2,"30":1}}],["abstractlanes",{"2":{"0":4}}],["abstractlane",{"2":{"0":6,"2":1}}],["abstractgraph",{"2":{"0":1}}],["able",{"2":{"2":1,"26":1}}],["addition",{"2":{"21":1}}],["adding",{"2":{"4":1,"28":1}}],["address",{"2":{"19":1}}],["add",{"2":{"4":1,"5":3}}],["added",{"2":{"2":1,"29":1}}],["adjoint",{"2":{"2":9,"4":3,"24":2,"26":2,"40":1}}],["associative",{"2":{"31":1}}],["assert",{"2":{"11":1}}],["as",{"2":{"2":3,"3":1,"4":2,"5":7,"10":2,"11":1,"18":1,"23":2,"25":1,"26":2,"28":1,"29":1,"30":2,"31":2,"34":2,"39":3,"40":2,"42":3}}],["althoug",{"2":{"33":1}}],["although",{"2":{"29":1,"41":1}}],["already",{"2":{"11":1}}],["always",{"2":{"6":1,"7":2}}],["algebra",{"2":{"26":1,"39":1,"42":1}}],["alghough",{"2":{"4":2}}],["algorithms",{"2":{"31":1}}],["algorithm",{"2":{"0":3,"17":1}}],["alias",{"2":{"4":1}}],["also",{"2":{"2":8,"4":1,"5":13,"6":3,"18":1,"25":1,"29":1,"31":1,"33":1,"42":1}}],["along",{"2":{"1":1}}],["allows",{"2":{"42":2}}],["alleviate",{"2":{"7":1}}],["all",{"2":{"1":1,"2":3,"4":6,"5":6,"6":1,"7":1,"10":1,"23":1,"25":1,"26":1,"29":1,"37":1,"42":1}}],["access",{"2":{"25":1,"28":1,"40":1}}],["accepts",{"2":{"5":2}}],["accordingly",{"2":{"4":1,"5":1,"26":1}}],["according",{"2":{"0":1,"1":1,"4":2}}],["actually",{"2":{"31":1}}],["act",{"2":{"0":1,"10":1,"41":1}}],["array",{"2":{"4":5,"25":1,"31":2,"40":7,"41":1,"42":1}}],["arrays",{"2":{"1":6,"5":2,"31":1,"39":1}}],["argument",{"2":{"0":1,"1":2,"11":2}}],["arguments",{"2":{"0":8,"1":5,"4":5,"5":5,"6":4,"30":1,"41":1}}],["are",{"2":{"0":10,"1":8,"2":13,"4":4,"5":1,"6":1,"11":2,"18":3,"19":2,"21":1,"23":1,"25":3,"26":2,"27":1,"28":4,"29":1,"30":1,"31":1,"33":1,"36":1,"37":1,"38":2,"39":2,"40":2,"41":1,"42":2}}],["aka",{"2":{"0":1,"5":1,"31":1}}],["at=site",{"2":{"25":2}}],["at=",{"2":{"25":1}}],["atol",{"2":{"6":5}}],["at",{"2":{"0":4,"1":2,"4":3,"5":2,"21":1}}],["another",{"2":{"27":1}}],["anti",{"2":{"6":1}}],["antidiagonalgauging",{"2":{"6":1}}],["any",{"2":{"4":1,"5":1,"7":1,"25":1,"30":1,"38":1}}],["annotation",{"2":{"2":1}}],["an",{"2":{"0":10,"1":1,"2":7,"3":4,"4":1,"7":1,"19":1,"23":1,"25":1,"27":4,"28":1,"30":1,"31":2,"40":2}}],["and",{"0":{"10":1},"2":{"0":18,"1":6,"2":5,"4":10,"5":7,"7":2,"10":4,"11":2,"13":1,"19":2,"21":1,"22":1,"23":2,"25":6,"26":7,"27":3,"28":9,"29":3,"30":3,"31":5,"32":1,"33":1,"34":1,"36":1,"39":5,"40":5,"41":5,"42":3}}],["ansatz",{"0":{"0":1,"12":1,"14":1,"20":1},"1":{"13":1,"14":1,"15":1,"16":1,"17":1},"2":{"0":5,"1":2,"3":1,"10":5,"14":1,"16":1,"18":1,"19":1}}],["a",{"2":{"0":45,"1":10,"2":33,"3":2,"4":33,"5":27,"6":8,"7":6,"10":2,"11":5,"13":2,"14":3,"17":1,"18":2,"21":4,"23":8,"24":5,"25":6,"26":1,"27":10,"28":4,"29":6,"30":6,"31":11,"32":2,"33":2,"34":4,"35":1,"36":4,"37":4,"38":3,"39":15,"40":8,"41":11,"42":13}}]],"serializationVersion":2}';export{e as default}; diff --git a/dev/assets/chunks/VPLocalSearchBox.lKuXHoIf.js b/dev/assets/chunks/VPLocalSearchBox.RMvoiZTn.js similarity index 99% rename from dev/assets/chunks/VPLocalSearchBox.lKuXHoIf.js rename to dev/assets/chunks/VPLocalSearchBox.RMvoiZTn.js index d2677f582..f9b3bea5d 100644 --- a/dev/assets/chunks/VPLocalSearchBox.lKuXHoIf.js +++ b/dev/assets/chunks/VPLocalSearchBox.RMvoiZTn.js @@ -1,4 +1,4 @@ -var Ot=Object.defineProperty;var Ft=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as ge,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as nt,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as fe,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as qt,k as L,at as Ut,au as Gt,av as Ht,c as Z,n as st,e as Se,C as it,F as rt,a as he,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as en,_ as tn}from"./framework.B1oJu5R7.js";import{u as nn,c as sn}from"./theme.Cx9ooDF0.js";const rn={root:()=>Ct(()=>import("./@localSearchIndexroot.-jLok-8K.js"),[])};/*! +var Ot=Object.defineProperty;var Ft=(a,e,t)=>e in a?Ot(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as ge,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as nt,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as fe,O as _e,ar as Vt,as as $t,W as Bt,R as Wt,$ as Kt,o as H,b as Jt,j as _,a0 as qt,k as L,at as Ut,au as Gt,av as Ht,c as Z,n as st,e as Se,C as it,F as rt,a as he,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as en,_ as tn}from"./framework.B1oJu5R7.js";import{u as nn,c as sn}from"./theme.nTp9SXyW.js";const rn={root:()=>Ct(()=>import("./@localSearchIndexroot.BaM3Q09T.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var gt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=gt.join(","),vt=typeof Element>"u",ae=vt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Oe=!vt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Fe=function a(e,t){var n;t===void 0&&(t=!0);var s=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),r=s===""||s==="true",i=r||t&&e&&a(e.parentNode);return i},an=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},bt=function(e,t,n){if(Fe(e))return[];var s=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&s.unshift(e),s=s.filter(n),s},yt=function a(e,t,n){for(var s=[],r=Array.from(e);r.length;){var i=r.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,n);n.flatten?s.push.apply(s,c):s.push({scopeParent:i,candidates:c})}else{var f=ae.call(i,Ne);f&&n.filter(i)&&(t||!e.includes(i))&&s.push(i);var g=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),h=!Fe(g,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(g&&h){var b=a(g===!0?i.children:g.children,!0,n);n.flatten?s.push.apply(s,b):s.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return s},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||an(e))&&!wt(e)?0:e.tabIndex},on=function(e,t){var n=re(e);return n<0&&t&&!wt(e)?0:n},ln=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},cn=function(e){return xt(e)&&e.type==="hidden"},un=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},dn=function(e,t){for(var n=0;nsummary:first-of-type"),i=r?e.parentElement:e;if(ae.call(i,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="legacy-full"){if(typeof s=="function"){for(var o=e;e;){var l=e.parentElement,c=Oe(e);if(l&&!l.shadowRoot&&s(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(mn(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return ot(e);return!1},vn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},yn=function a(e){var t=[],n=[];return e.forEach(function(s,r){var i=!!s.scopeParent,o=i?s.scopeParent:s,l=on(o,i),c=i?a(s.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):n.push({documentOrder:r,tabIndex:l,item:s,isScope:i,content:c})}),n.sort(ln).reduce(function(s,r){return r.isScope?s.push.apply(s,r.content):s.push(r.content),s},[]).concat(t)},wn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:bn}):n=bt(e,t.includeContainer,Be.bind(null,t)),yn(n)},xn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=bt(e,t.includeContainer,Ce.bind(null,t)),n},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},_n=gt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,_n)===!1?!1:Ce(t,e)};/*! diff --git a/dev/assets/chunks/theme.Cx9ooDF0.js b/dev/assets/chunks/theme.nTp9SXyW.js similarity index 99% rename from dev/assets/chunks/theme.Cx9ooDF0.js rename to dev/assets/chunks/theme.nTp9SXyW.js index d1b15d519..ca2f3c717 100644 --- a/dev/assets/chunks/theme.Cx9ooDF0.js +++ b/dev/assets/chunks/theme.nTp9SXyW.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.lKuXHoIf.js","assets/chunks/framework.B1oJu5R7.js"])))=>i.map(i=>d[i]); -import{d as m,o as a,c,r as u,n as I,a as j,t as N,b,w as v,e as h,T as de,_ as $,u as je,i as ze,f as Ke,g as fe,h as y,j as p,k as i,l as z,m as re,p as T,q as H,s as x,v as F,x as pe,y as ve,z as We,A as qe,B as K,F as M,C as A,D as Le,E as ee,G as g,H as O,I as Te,J as Y,K as G,L as q,M as Je,N as we,O as ie,P as he,Q as Ne,R as te,S as Ye,U as Xe,V as Qe,W as Ie,X as me,Y as Ze,Z as xe,$ as et,a0 as tt,a1 as Me,a2 as nt,a3 as st,a4 as ot}from"./framework.B1oJu5R7.js";const at=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:I(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[j(N(e.text),1)])],2))}}),rt={key:0,class:"VPBackdrop"},it=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),b(de,{name:"fade"},{default:v(()=>[e.show?(a(),c("div",rt)):h("",!0)]),_:1}))}}),lt=$(it,[["__scopeId","data-v-b06cdb19"]]),L=je;function ut(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(ze(o)||o.startsWith("#")||!n.startsWith("http")||!Ke(e))return o;const{site:r}=L(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function X({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:r}=L(),l=y(()=>{var f,k;return{label:(f=e.value.locales[t.value])==null?void 0:f.label,link:((k=e.value.locales[t.value])==null?void 0:k.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([f,k])=>l.value.label===k.label?[]:{text:k.label,link:ct(k.link||(f==="root"?"/":`/${f}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function ct(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const dt={class:"NotFound"},ft={class:"code"},pt={class:"title"},vt={class:"quote"},ht={class:"action"},mt=["href","aria-label"],_t=m({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=X();return(s,n)=>{var r,l,d,f,k;return a(),c("div",dt,[p("p",ft,N(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),p("h1",pt,N(((l=i(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=p("div",{class:"divider"},null,-1)),p("blockquote",vt,N(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",ht,[p("a",{class:"link",href:i(fe)(i(t).link),"aria-label":((f=i(e).notFound)==null?void 0:f.linkLabel)??"go to home"},N(((k=i(e).notFound)==null?void 0:k.linkText)??"Take me home"),9,mt)])])}}}),bt=$(_t,[["__scopeId","data-v-951cab6c"]]);function Ee(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?Q(s):Q(s.items,s.base)}function kt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function gt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):z(o,e.link)?!0:e.items?ue(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Q(s.items,n)),s})}function R(){const{frontmatter:o,page:e,theme:t}=L(),s=re("(min-width: 960px)"),n=T(!1),r=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Ee(C,w):[]}),l=T(r.value);H(r,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=r.value)});const d=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),f=y(()=>k?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),k=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>d.value&&s.value),_=y(()=>d.value?kt(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function E(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:_,hasSidebar:d,hasAside:k,leftAside:f,isSidebarEnabled:V,open:P,close:S,toggle:E}}function $t(o,e){let t;x(()=>{t=o.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",s)}),pe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function yt(o){const{page:e,hash:t}=L(),s=T(!1),n=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),l=T(!1),d=()=>{l.value=z(e.value.relativePath,o.value.link)};H([e,o,t],d),F(d);const f=y(()=>l.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),k=y(()=>!!(o.value.items&&o.value.items.length));x(()=>{s.value=!!(n.value&&o.value.collapsed)}),ve(()=>{(l.value||f.value)&&(s.value=!1)});function V(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:k,toggle:V}}function Pt(){const{hasSidebar:o}=R(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ce=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:St(t),link:"#"+t.id,level:s}});return Vt(e,o)}function St(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Vt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return wt(o,s,n)}function Lt(o,e){const{isAsideEnabled:t}=Pt(),s=ut(r,100);let n=null;F(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),We(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const d=window.scrollY,f=window.innerHeight,k=document.body.offsetHeight,V=Math.abs(d+f-k)<1,_=ce.map(({element:S,link:E})=>({link:E,top:Tt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,E)=>S.top-E.top);if(!_.length){l(null);return}if(d<1){l(null);return}if(V){l(_[_.length-1].link);return}let P=null;for(const{link:S,top:E}of _){if(E>d+qe()+4)break;P=S}l(P)}function l(d){n&&n.classList.remove("active"),d==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const f=n;f?(f.classList.add("active"),e.value.style.top=f.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Tt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function wt(o,e,t){ce.length=0;const s=[],n=[];return o.forEach(r=>{const l={...r,children:[]};let d=n[n.length-1];for(;d&&d.level>=l.level;)n.pop(),d=n[n.length-1];if(l.element.classList.contains("ignore-header")||d&&"shouldIgnore"in d){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=K("VPDocOutlineItem",!0);return a(),c("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,A(t.headers,({children:r,link:l,title:d})=>(a(),c("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},N(d),9,Nt),r!=null&&r.length?(a(),b(n,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ae=$(It,[["__scopeId","data-v-3f927ebe"]]),Mt={class:"content"},Et={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ct=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Le([]);ee(()=>{s.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return Lt(n,r),(l,d)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[p("div",Mt,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",Et,N(i(Ce)(i(t))),1),g(Ae,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),At=$(Ct,[["__scopeId","data-v-b38bf2ff"]]),Bt={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",Bt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ot={class:"VPDocAside"},Dt=m({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),c("div",Ot,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),g(At),u(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=p("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),b(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=$(Dt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ut(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var k,V,_,P,S,E,C,w;const s=Ee(e.value.sidebar,o.value.relativePath),n=gt(s),r=Gt(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>z(o.value.relativePath,B.link)),d=((k=e.value.docFooter)==null?void 0:k.prev)===!1&&!t.value.prev||t.value.prev===!1,f=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[l-1])==null?void 0:_.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[l-1])==null?void 0:S.link)},next:f?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((E=r[l+1])==null?void 0:E.docFooterText)??((C=r[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=r[l+1])==null?void 0:w.link)}}})}function Gt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Te.test(e.href)||e.target==="_blank");return(n,r)=>(a(),b(O(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:v(()=>[u(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],Kt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=L(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return F(()=>{x(()=>{var d,f,k;l.value=new Intl.DateTimeFormat((f=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&f.forceLocale?s.value:void 0,((k=e.value.lastUpdated)==null?void 0:k.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,f)=>{var k;return a(),c("p",jt,[j(N(((k=i(e).lastUpdated)==null?void 0:k.text)||i(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:r.value},N(l.value),9,zt)])}}}),Wt=$(Kt,[["__scopeId","data-v-475f71b8"]]),qt={key:0,class:"VPDocFooter"},Jt={key:0,class:"edit-info"},Yt={key:0,class:"edit-link"},Xt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Zt={class:"pager"},xt=["innerHTML"],en=["innerHTML"],tn={class:"pager"},nn=["innerHTML"],sn=["innerHTML"],on=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=Rt(),r=Ut(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),f=y(()=>l.value||d.value||r.value.prev||r.value.next);return(k,V)=>{var _,P,S,E;return f.value?(a(),c("footer",qt,[u(k.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),c("div",Jt,[l.value?(a(),c("div",Yt,[g(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:v(()=>[V[0]||(V[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+N(i(n).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),c("div",Xt,[g(Wt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),c("nav",Qt,[V[1]||(V[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",Zt,[(S=i(r).prev)!=null&&S.link?(a(),b(D,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:v(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,xt),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,en)]}),_:1},8,["href"])):h("",!0)]),p("div",tn,[(E=i(r).next)!=null&&E.link?(a(),b(D,{key:0,class:"pager-link next",href:i(r).next.link},{default:v(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,nn),p("span",{class:"title",innerHTML:i(r).next.text},null,8,sn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),an=$(on,[["__scopeId","data-v-4f9813fa"]]),rn={class:"container"},ln={class:"aside-container"},un={class:"aside-content"},cn={class:"content"},dn={class:"content-container"},fn={class:"main"},pn=m({__name:"VPDoc",setup(o){const{theme:e}=L(),t=Y(),{hasSidebar:s,hasAside:n,leftAside:r}=R(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,f)=>{const k=K("Content");return a(),c("div",{class:I(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[u(d.$slots,"doc-top",{},void 0,!0),p("div",rn,[i(n)?(a(),c("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ln,[p("div",un,[g(Ft,null,{"aside-top":v(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",cn,[p("div",dn,[u(d.$slots,"doc-before",{},void 0,!0),p("main",fn,[g(k,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(an,null,{"doc-footer-before":v(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(d.$slots,"doc-after",{},void 0,!0)])])]),u(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),vn=$(pn,[["__scopeId","data-v-83890dd9"]]),hn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Te.test(e.href)),s=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),b(O(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?i(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[j(N(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),mn=$(hn,[["__scopeId","data-v-906d7fb4"]]),_n=["src","alt"],bn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,_n)):(a(),c(M,{key:1},[g(s,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(s,G({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Z=$(bn,[["__scopeId","data-v-35a7d0b8"]]),kn={class:"container"},gn={class:"main"},$n={key:0,class:"name"},yn=["innerHTML"],Pn=["innerHTML"],Sn=["innerHTML"],Vn={key:0,class:"actions"},Ln={key:0,class:"image"},Tn={class:"image-container"},wn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[p("div",kn,[p("div",gn,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",$n,[p("span",{innerHTML:t.name,class:"clip"},null,8,yn)])):h("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,Pn)):h("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Sn)):h("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Vn,[(a(!0),c(M,null,A(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[g(mn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),c("div",Ln,[p("div",Tn,[s[0]||(s[0]=p("div",{class:"image-bg"},null,-1)),u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Nn=$(wn,[["__scopeId","data-v-955009fc"]]),In=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).hero?(a(),b(Nn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Mn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],An=["innerHTML"],Bn=["innerHTML"],Hn={key:4,class:"link-text"},On={class:"link-text-value"},Dn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),b(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[p("article",Mn,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",En,[g(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,An),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Bn)):h("",!0),e.linkText?(a(),c("div",Hn,[p("p",On,[j(N(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=$(Dn,[["__scopeId","data-v-f5e9645b"]]),Rn={key:0,class:"VPFeatures"},Un={class:"container"},Gn={class:"items"},jn=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Rn,[p("div",Un,[p("div",Gn,[(a(!0),c(M,null,A(s.features,r=>(a(),c("div",{key:r.title,class:I(["item",[t.value]])},[g(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),zn=$(jn,[["__scopeId","data-v-d0a190d7"]]),Kn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).features?(a(),b(zn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=m({__name:"VPHomeContent",setup(o){const{width:e}=Je({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:we(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),qn=$(Wn,[["__scopeId","data-v-7a48a447"]]),Jn={class:"VPHome"},Yn=m({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=K("Content");return a(),c("div",Jn,[u(t.$slots,"home-hero-before",{},void 0,!0),g(In,null,{"home-hero-info-before":v(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),g(Kn),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(qn,{key:0},{default:v(()=>[g(n)]),_:1})):(a(),b(n,{key:1}))])}}}),Xn=$(Yn,[["__scopeId","data-v-cbb6ec48"]]),Qn={},Zn={class:"VPPage"};function xn(o,e){const t=K("Content");return a(),c("div",Zn,[u(o.$slots,"page-top"),g(t),u(o.$slots,"page-bottom")])}const es=$(Qn,[["render",xn]]),ts=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>(a(),c("div",{class:I(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(n.$slots,"not-found",{key:0},()=>[g(bt)],!0):i(t).layout==="page"?(a(),b(es,{key:1},{"page-top":v(()=>[u(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(Xn,{key:2},{"home-hero-before":v(()=>[u(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[u(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),b(O(i(t).layout),{key:3})):(a(),b(vn,{key:4},{"doc-top":v(()=>[u(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[u(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[u(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[u(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[u(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ns=$(ts,[["__scopeId","data-v-91765379"]]),ss={class:"container"},os=["innerHTML"],as=["innerHTML"],rs=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),c("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(s)}])},[p("div",ss,[i(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,os)):h("",!0),i(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,as)):h("",!0)])],2)):h("",!0)}}),is=$(rs,[["__scopeId","data-v-c970a860"]]);function ls(){const{theme:o,frontmatter:e}=L(),t=Le([]),s=y(()=>t.value.length>0);return ee(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const us={class:"menu-text"},cs={class:"header"},ds={class:"outline"},fs=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(s.value=!1)}H(s,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{s.value=!1}),ee(()=>{s.value=!1});function f(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function k(_){_.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),he(()=>{s.value=!1}))}function V(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:we({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),c("button",{key:0,onClick:f,class:I({open:s.value})},[p("span",us,N(i(Ce)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),c("button",{key:1,onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)),g(de,{name:"flyout"},{default:v(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:k},[p("div",cs,[p("a",{class:"top-link",href:"#",onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)]),p("div",ds,[g(Ae,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),ps=$(fs,[["__scopeId","data-v-bc9dc845"]]),vs={class:"container"},hs=["aria-expanded"],ms={class:"menu-text"},_s=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R(),{headers:n}=ls(),{y:r}=Ne(),l=T(0);F(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{n.value=be(t.value.outline??e.value.outline)});const d=y(()=>n.value.length===0),f=y(()=>d.value&&!s.value),k=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:f.value}));return(V,_)=>i(t).layout!=="home"&&(!f.value||i(r)>=l.value)?(a(),c("div",{key:0,class:I(k.value)},[p("div",vs,[i(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>V.$emit("open-menu"))},[_[1]||(_[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",ms,N(i(e).sidebarMenuLabel||"Menu"),1)],8,hs)):h("",!0),g(ps,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),bs=$(_s,[["__scopeId","data-v-070ab83d"]]);function ks(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=Y();return H(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const gs={},$s={class:"VPSwitch",type:"button",role:"switch"},ys={class:"check"},Ps={key:0,class:"icon"};function Ss(o,e){return a(),c("button",$s,[p("span",ys,[o.$slots.default?(a(),c("span",Ps,[u(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Vs=$(gs,[["render",Ss],["__scopeId","data-v-4a1c76db"]]),Ls=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return ve(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),b(Vs,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:v(()=>l[0]||(l[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=$(Ls,[["__scopeId","data-v-e40a8bb6"]]),Ts={key:0,class:"VPNavBarAppearance"},ws=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",Ts,[g(ke)])):h("",!0)}}),Ns=$(ws,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Is(o){const e=T(!1);if(te){!Be&&Ms(),ae++;const t=H(ge,s=>{var n,r,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});pe(()=>{t(),ae--,ae||Es()})}return Ye(e)}function Ms(){document.addEventListener("focusin",He),Be=!0,ge.value=document.activeElement}function Es(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const Cs={class:"VPMenuLink"},As=["innerHTML"],Bs=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),c("div",Cs,[g(D,{class:I({active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Bs,[["__scopeId","data-v-acbfed09"]]),Hs={class:"VPMenuGroup"},Os={key:0,class:"title"},Ds=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Hs,[e.text?(a(),c("p",Os,N(e.text),1)):h("",!0),(a(!0),c(M,null,A(e.items,s=>(a(),c(M,null,["link"in s?(a(),b(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Fs=$(Ds,[["__scopeId","data-v-48c802d0"]]),Rs={class:"VPMenu"},Us={key:0,class:"items"},Gs=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Rs,[e.items?(a(),c("div",Us,[(a(!0),c(M,null,A(e.items,s=>(a(),c(M,{key:JSON.stringify(s)},["link"in s?(a(),b(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),b(O(s.component),G({key:1,ref_for:!0},s.props),null,16)):(a(),b(Fs,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),js=$(Gs,[["__scopeId","data-v-7dd3104a"]]),zs=["aria-expanded","aria-label"],Ks={key:0,class:"text"},Ws=["innerHTML"],qs={key:1,class:"vpi-more-horizontal icon"},Js={class:"menu"},Ys=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Is({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=l=>e.value=!0),onMouseleave:r[2]||(r[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",Ks,[n.icon?(a(),c("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,Ws)):h("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),c("span",qs))],8,zs),p("div",Js,[g(js,{items:n.items},{default:v(()=>[u(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(Ys,[["__scopeId","data-v-04f5c5e9"]]),Xs=["href","aria-label","innerHTML"],Qs=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=T();F(async()=>{var r;await he();const n=(r=t.value)==null?void 0:r.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),c("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,Xs))}}),Zs=$(Qs,[["__scopeId","data-v-d26d30cb"]]),xs={class:"VPSocialLinks"},eo=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",xs,[(a(!0),c(M,null,A(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),b(Zs,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(eo,[["__scopeId","data-v-ee7a9424"]]),to={key:0,class:"group translations"},no={class:"trans-title"},so={key:1,class:"group"},oo={class:"item appearance"},ao={class:"label"},ro={class:"appearance-action"},io={key:2,class:"group"},lo={class:"item social-links"},uo=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=X({correspondingLink:!0}),r=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>r.value?(a(),b($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(s).length&&i(n).label?(a(),c("div",to,[p("p",no,N(i(n).label),1),(a(!0),c(M,null,A(i(s),f=>(a(),b(ne,{key:f.link,item:f},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",so,[p("div",oo,[p("p",ao,N(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",ro,[g(ke)])])])):h("",!0),i(t).socialLinks?(a(),c("div",io,[p("div",lo,[g(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),co=$(uo,[["__scopeId","data-v-925effce"]]),fo=["aria-expanded"],po=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,fo))}}),vo=$(po,[["__scopeId","data-v-5dea55bf"]]),ho=["innerHTML"],mo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),b(D,{class:I({VPNavBarMenuLink:!0,active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,ho)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_o=$(mo,[["__scopeId","data-v-956ec74c"]]),Oe=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=r=>"component"in r?!1:"link"in r?z(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=y(()=>s(e.item));return(r,l)=>(a(),b($e,{class:I({VPNavBarMenuGroup:!0,active:i(z)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),bo={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ko=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",bo,[s[0]||(s[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),c(M,null,A(i(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),b(_o,{key:0,item:n},null,8,["item"])):"component"in n?(a(),b(O(n.component),G({key:1,ref_for:!0},n.props),null,16)):(a(),b(Oe,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),go=$(ko,[["__scopeId","data-v-e6d46098"]]);function $o(o){const{localeIndex:e,theme:t}=L();function s(n){var E,C,w;const r=n.split("."),l=(E=t.value.search)==null?void 0:E.options,d=l&&typeof l=="object",f=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,k=d&&l.translations||null;let V=f,_=k,P=o;const S=r.pop();for(const B of r){let U=null;const W=P==null?void 0:P[B];W&&(U=P=W);const se=_==null?void 0:_[B];se&&(U=_=se);const oe=V==null?void 0:V[B];oe&&(U=V=oe),W||(P=U),se||(_=U),oe||(V=U)}return(V==null?void 0:V[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return s}const yo=["aria-label"],Po={class:"DocSearch-Button-Container"},So={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(o){const t=$o({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",Po,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",So,N(i(t)("button.buttonText")),1)]),n[1]||(n[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,yo))}}),Vo={class:"VPNavBarSearch"},Lo={id:"local-search"},To={key:1,id:"docsearch"},wo=m({__name:"VPNavBarSearch",setup(o){const e=Xe(()=>Qe(()=>import("./VPLocalSearchBox.lKuXHoIf.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=T(!1),r=T(!1);F(()=>{});function l(){n.value||(n.value=!0,setTimeout(d,16))}function d(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function f(_){const P=_.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const k=T(!1);ie("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),k.value=!0)}),ie("/",_=>{f(_)||(_.preventDefault(),k.value=!0)});const V="local";return(_,P)=>{var S;return a(),c("div",Vo,[i(V)==="local"?(a(),c(M,{key:0},[k.value?(a(),b(i(e),{key:0,onClose:P[0]||(P[0]=E=>k.value=!1)})):h("",!0),p("div",Lo,[g(Pe,{onClick:P[1]||(P[1]=E=>k.value=!0)})])],64)):i(V)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((S=i(s).search)==null?void 0:S.options)??i(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),c("div",To,[g(Pe,{onClick:l})]))],64)):h("",!0)])}}}),No=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),Io=$(No,[["__scopeId","data-v-164c457f"]]),Mo=["href","rel","target"],Eo=["innerHTML"],Co={key:2},Ao=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=R(),{currentLang:n}=X(),r=y(()=>{var f;return typeof t.value.logoLink=="string"?t.value.logoLink:(f=t.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.rel}),d=y(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.target});return(f,k)=>(a(),c("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(s)}])},[p("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[u(f.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),b(Z,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(a(),c("span",{key:1,innerHTML:i(t).siteTitle},null,8,Eo)):i(t).siteTitle===void 0?(a(),c("span",Co,N(i(e).title),1)):h("",!0),u(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,Mo)],2))}}),Bo=$(Ao,[["__scopeId","data-v-0f4f798b"]]),Ho={class:"items"},Oo={class:"title"},Do=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=X({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),b($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[p("div",Ho,[p("p",Oo,N(i(s).label),1),(a(!0),c(M,null,A(i(t),l=>(a(),b(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fo=$(Do,[["__scopeId","data-v-c80d9ad0"]]),Ro={class:"wrapper"},Uo={class:"container"},Go={class:"title"},jo={class:"content"},zo={class:"content-body"},Ko=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Ne(),{hasSidebar:s}=R(),{frontmatter:n}=L(),r=T({});return ve(()=>{r.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),c("div",{class:I(["VPNavBar",r.value])},[p("div",Ro,[p("div",Uo,[p("div",Go,[g(Bo,null,{"nav-bar-title-before":v(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",jo,[p("div",zo,[u(l.$slots,"nav-bar-content-before",{},void 0,!0),g(wo,{class:"search"}),g(go,{class:"menu"}),g(Fo,{class:"translations"}),g(Ns,{class:"appearance"}),g(Io,{class:"social-links"}),g(co,{class:"extra"}),u(l.$slots,"nav-bar-content-after",{},void 0,!0),g(vo,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Wo=$(Ko,[["__scopeId","data-v-822684d1"]]),qo={key:0,class:"VPNavScreenAppearance"},Jo={class:"text"},Yo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",qo,[p("p",Jo,N(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):h("",!0)}}),Xo=$(Yo,[["__scopeId","data-v-ffb44008"]]),Qo=["innerHTML"],Zo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),b(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,Qo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xo=$(Zo,[["__scopeId","data-v-735512b8"]]),ea=["innerHTML"],ta=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),b(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,ea)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),De=$(ta,[["__scopeId","data-v-372ae7c0"]]),na={class:"VPNavScreenMenuGroupSection"},sa={key:0,class:"title"},oa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",na,[e.text?(a(),c("p",sa,N(e.text),1)):h("",!0),(a(!0),c(M,null,A(e.items,s=>(a(),b(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),aa=$(oa,[["__scopeId","data-v-4b8941ac"]]),ra=["aria-controls","aria-expanded"],ia=["innerHTML"],la=["id"],ua={key:0,class:"item"},ca={key:1,class:"item"},da={key:2,class:"group"},fa=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),c("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:r.text},null,8,ia),l[0]||(l[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ra),p("div",{id:s.value,class:"items"},[(a(!0),c(M,null,A(r.items,d=>(a(),c(M,{key:JSON.stringify(d)},["link"in d?(a(),c("div",ua,[g(De,{item:d},null,8,["item"])])):"component"in d?(a(),c("div",ca,[(a(),b(O(d.component),G({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),c("div",da,[g(aa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,la)],2))}}),Fe=$(fa,[["__scopeId","data-v-875057a5"]]),pa={key:0,class:"VPNavScreenMenu"},va=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",pa,[(a(!0),c(M,null,A(i(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),b(xo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),b(O(n.component),G({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),b(Fe,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),ha=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),ma={class:"list"},_a=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(r,l)=>i(e).length&&i(t).label?(a(),c("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:n},[l[0]||(l[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+N(i(t).label)+" ",1),l[1]||(l[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",ma,[(a(!0),c(M,null,A(i(e),d=>(a(),c("li",{key:d.link,class:"item"},[g(D,{class:"link",href:d.link},{default:v(()=>[j(N(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),ba=$(_a,[["__scopeId","data-v-362991c2"]]),ka={class:"container"},ga=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),b(de,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:v(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ka,[u(s.$slots,"nav-screen-content-before",{},void 0,!0),g(va,{class:"menu"}),g(ba,{class:"translations"}),g(Xo,{class:"appearance"}),g(ha,{class:"social-links"}),u(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),$a=$(ga,[["__scopeId","data-v-833aabba"]]),ya={key:0,class:"VPNav"},Pa=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=ks(),{frontmatter:n}=L(),r=y(()=>n.value.navbar!==!1);return me("close-screen",t),x(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,d)=>r.value?(a(),c("header",ya,[g(Wo,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":v(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g($a,{open:i(e)},{"nav-screen-content-before":v(()=>[u(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Sa=$(Pa,[["__scopeId","data-v-f1e365da"]]),Va=["role","tabindex"],La={key:1,class:"items"},Ta=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:f}=yt(y(()=>e.item)),k=y(()=>d.value?"section":"div"),V=y(()=>n.value?"a":"div"),_=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":l.value}]);function E(w){"key"in w&&w.key!=="Enter"||!e.item.link&&f()}function C(){e.item.link&&f()}return(w,B)=>{const U=K("VPSidebarItem",!0);return a(),b(O(k.value),{class:I(["VPSidebarItem",S.value])},{default:v(()=>[w.item.text?(a(),c("div",G({key:0,class:"item",role:P.value},xe(w.item.items?{click:E,keydown:E}:{},!0),{tabindex:w.item.items&&0}),[B[1]||(B[1]=p("div",{class:"indicator"},null,-1)),w.item.link?(a(),b(D,{key:0,tag:V.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:v(()=>[(a(),b(O(_.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(O(_.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Ze(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,Va)):h("",!0),w.item.items&&w.item.items.length?(a(),c("div",La,[w.depth<5?(a(!0),c(M,{key:0},A(w.item.items,W=>(a(),b(U,{key:W.text,item:W,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),wa=$(Ta,[["__scopeId","data-v-196b2e5f"]]),Na=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return F(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),et(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),c(M,null,A(s.items,r=>(a(),c("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[g(wa,{item:r,depth:0},null,8,["item"])],2))),128))}}),Ia=$(Na,[["__scopeId","data-v-9e426adc"]]),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ea=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=R(),s=o,n=T(null),r=Ie(te?document.body:null);H([s,n],()=>{var d;s.open?(r.value=!0,(d=n.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=T(0);return H(e,()=>{l.value+=1},{deep:!0}),(d,f)=>i(t)?(a(),c("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:f[0]||(f[0]=tt(()=>{},["stop"]))},[f[2]||(f[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ma,[f[1]||(f[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),b(Ia,{items:i(e),key:l.value},null,8,["items"])),u(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Ea,[["__scopeId","data-v-18756405"]]),Aa=m({__name:"VPSkipLink",setup(o){const e=Y(),t=T();H(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),c(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ba=$(Aa,[["__scopeId","data-v-c3508ec8"]]),Ha=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=R(),n=Y();H(()=>n.path,s),$t(e,s);const{frontmatter:r}=L(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(f,k)=>{const V=K("Content");return i(r).layout!==!1?(a(),c("div",{key:0,class:I(["Layout",i(r).pageClass])},[u(f.$slots,"layout-top",{},void 0,!0),g(Ba),g(lt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),g(Sa,null,{"nav-bar-title-before":v(()=>[u(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[u(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(bs,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Ca,{open:i(e)},{"sidebar-nav-before":v(()=>[u(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[u(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(ns,null,{"page-top":v(()=>[u(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[u(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[u(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[u(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[u(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[u(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[u(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(is),u(f.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(V,{key:1}))}}}),Oa=$(Ha,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Oa,enhanceApp:({app:o})=>{o.component("Badge",at)}},Da=m({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){Y();const e=T([]),t=T("Versions"),s=()=>new Promise(n=>{const r=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(r),n({versions:window.DOC_VERSIONS,currentVersion:window.DOCUMENTER_CURRENT_VERSION}))},100)});return F(async()=>{const n=await s();e.value=n.versions.map(r=>({text:r,link:`${window.location.origin}/${r}/`})),t.value=n.currentVersion}),(n,r)=>n.screenMenu?(a(),b(Fe,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):(a(),b(Oe,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"]))}}),Fa=$(Da,[["__scopeId","data-v-31b36ab6"]]),Ra=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const d=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-d,r}}},Re="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ue="vitepress:tabsSharedState",Ua=()=>{const o=J==null?void 0:J.getItem(Ue);if(o)try{return JSON.parse(o)}catch{}return{}},Ga=o=>{J&&J.setItem(Ue,JSON.stringify(o))},ja=o=>{const e=nt({});H(()=>e.content,(t,s)=>{t&&s&&Ga(t)},{deep:!0}),o.provide(Re,e)},za=(o,e)=>{const t=q(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ua())});const s=T(),n=y({get(){var f;const l=e.value,d=o.value;if(l){const k=(f=t.content)==null?void 0:f[l];if(k&&d.includes(k))return k}else{const k=s.value;if(k)return k}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Ve=0;const Ka=()=>(Ve++,""+Ve);function Wa(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Ge="vitepress:tabSingleState",qa=o=>{me(Ge,o)},Ja=()=>{const o=q(Ge);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},Ya={class:"plugin-tabs"},Xa=["id","aria-selected","aria-controls","tabindex","onClick"],Qa=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Wa(),{selected:s,select:n}=za(t,st(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Ra(r),d=l(n),f=T([]),k=_=>{var E;const P=t.value.indexOf(s.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),c("div",Ya,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:k},[(a(!0),c(M,null,A(i(t),S=>(a(),c("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:f,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(s),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(s)?0:-1,onClick:()=>i(d)(S)},N(S),9,Xa))),128))],544),u(_.$slots,"default")]))}}),Za=["id","aria-labelledby"],xa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Ja();return(s,n)=>i(t)===s.label?(a(),c("div",{key:0,id:`panel-${s.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${i(e)}`},[u(s.$slots,"default",{},void 0,!0)],8,Za)):h("",!0)}}),er=$(xa,[["__scopeId","data-v-9b0d03d2"]]),tr=o=>{ja(o),o.component("PluginTabs",Qa),o.component("PluginTabsTab",er)},sr={extends:Se,Layout(){return ot(Se.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){if(tr(o),o.component("VersionPicker",Fa),typeof window<"u"){let s=function(){if(!(window.DOCUMENTER_NEWEST===void 0||window.DOCUMENTER_CURRENT_VERSION===void 0||window.DOCUMENTER_STABLE===void 0)&&window.DOCUMENTER_NEWEST===window.DOCUMENTER_CURRENT_VERSION){const n=window.location.href.replace(window.DOCUMENTER_CURRENT_VERSION,window.DOCUMENTER_STABLE);window.history.replaceState({additionalInformation:"URL rewritten to stable"},"Makie",n);return}};H(()=>e.route.data.relativePath,s,{immediate:!0}),document.addEventListener("DOMContentLoaded",s)}}};export{sr as R,$o as c,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.RMvoiZTn.js","assets/chunks/framework.B1oJu5R7.js"])))=>i.map(i=>d[i]); +import{d as m,o as a,c,r as u,n as I,a as j,t as N,b,w as v,e as h,T as de,_ as $,u as je,i as ze,f as Ke,g as fe,h as y,j as p,k as i,l as z,m as re,p as T,q as H,s as x,v as F,x as pe,y as ve,z as We,A as qe,B as K,F as M,C as A,D as Le,E as ee,G as g,H as O,I as Te,J as Y,K as G,L as q,M as Je,N as we,O as ie,P as he,Q as Ne,R as te,S as Ye,U as Xe,V as Qe,W as Ie,X as me,Y as Ze,Z as xe,$ as et,a0 as tt,a1 as Me,a2 as nt,a3 as st,a4 as ot}from"./framework.B1oJu5R7.js";const at=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(a(),c("span",{class:I(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[j(N(e.text),1)])],2))}}),rt={key:0,class:"VPBackdrop"},it=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(a(),b(de,{name:"fade"},{default:v(()=>[e.show?(a(),c("div",rt)):h("",!0)]),_:1}))}}),lt=$(it,[["__scopeId","data-v-b06cdb19"]]),L=je;function ut(o,e){let t,s=!1;return()=>{t&&clearTimeout(t),s?t=setTimeout(o,e):(o(),(s=!0)&&setTimeout(()=>s=!1,e))}}function le(o){return/^\//.test(o)?o:`/${o}`}function _e(o){const{pathname:e,search:t,hash:s,protocol:n}=new URL(o,"http://a.com");if(ze(o)||o.startsWith("#")||!n.startsWith("http")||!Ke(e))return o;const{site:r}=L(),l=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${s}`);return fe(l)}function X({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:s,theme:n,hash:r}=L(),l=y(()=>{var f,k;return{label:(f=e.value.locales[t.value])==null?void 0:f.label,link:((k=e.value.locales[t.value])==null?void 0:k.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([f,k])=>l.value.label===k.label?[]:{text:k.label,link:ct(k.link||(f==="root"?"/":`/${f}/`),n.value.i18nRouting!==!1&&o,s.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function ct(o,e,t,s){return e?o.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,s?".html":"")):o}const dt={class:"NotFound"},ft={class:"code"},pt={class:"title"},vt={class:"quote"},ht={class:"action"},mt=["href","aria-label"],_t=m({__name:"NotFound",setup(o){const{theme:e}=L(),{currentLang:t}=X();return(s,n)=>{var r,l,d,f,k;return a(),c("div",dt,[p("p",ft,N(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),p("h1",pt,N(((l=i(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=p("div",{class:"divider"},null,-1)),p("blockquote",vt,N(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",ht,[p("a",{class:"link",href:i(fe)(i(t).link),"aria-label":((f=i(e).notFound)==null?void 0:f.linkLabel)??"go to home"},N(((k=i(e).notFound)==null?void 0:k.linkText)??"Take me home"),9,mt)])])}}}),bt=$(_t,[["__scopeId","data-v-951cab6c"]]);function Ee(o,e){if(Array.isArray(o))return Q(o);if(o==null)return[];e=le(e);const t=Object.keys(o).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),s=t?o[t]:[];return Array.isArray(s)?Q(s):Q(s.items,s.base)}function kt(o){const e=[];let t=0;for(const s in o){const n=o[s];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function gt(o){const e=[];function t(s){for(const n of s)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(o),e}function ue(o,e){return Array.isArray(e)?e.some(t=>ue(o,t)):z(o,e.link)?!0:e.items?ue(o,e.items):!1}function Q(o,e){return[...o].map(t=>{const s={...t},n=s.base||e;return n&&s.link&&(s.link=n+s.link),s.items&&(s.items=Q(s.items,n)),s})}function R(){const{frontmatter:o,page:e,theme:t}=L(),s=re("(min-width: 960px)"),n=T(!1),r=y(()=>{const C=t.value.sidebar,w=e.value.relativePath;return C?Ee(C,w):[]}),l=T(r.value);H(r,(C,w)=>{JSON.stringify(C)!==JSON.stringify(w)&&(l.value=r.value)});const d=y(()=>o.value.sidebar!==!1&&l.value.length>0&&o.value.layout!=="home"),f=y(()=>k?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),k=y(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),V=y(()=>d.value&&s.value),_=y(()=>d.value?kt(l.value):[]);function P(){n.value=!0}function S(){n.value=!1}function E(){n.value?S():P()}return{isOpen:n,sidebar:l,sidebarGroups:_,hasSidebar:d,hasAside:k,leftAside:f,isSidebarEnabled:V,open:P,close:S,toggle:E}}function $t(o,e){let t;x(()=>{t=o.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",s)}),pe(()=>{window.removeEventListener("keyup",s)});function s(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function yt(o){const{page:e,hash:t}=L(),s=T(!1),n=y(()=>o.value.collapsed!=null),r=y(()=>!!o.value.link),l=T(!1),d=()=>{l.value=z(e.value.relativePath,o.value.link)};H([e,o,t],d),F(d);const f=y(()=>l.value?!0:o.value.items?ue(e.value.relativePath,o.value.items):!1),k=y(()=>!!(o.value.items&&o.value.items.length));x(()=>{s.value=!!(n.value&&o.value.collapsed)}),ve(()=>{(l.value||f.value)&&(s.value=!1)});function V(){n.value&&(s.value=!s.value)}return{collapsed:s,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:f,hasChildren:k,toggle:V}}function Pt(){const{hasSidebar:o}=R(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const ce=[];function Ce(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function be(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const s=Number(t.tagName[1]);return{element:t,title:St(t),link:"#"+t.id,level:s}});return Vt(e,o)}function St(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function Vt(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[s,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return wt(o,s,n)}function Lt(o,e){const{isAsideEnabled:t}=Pt(),s=ut(r,100);let n=null;F(()=>{requestAnimationFrame(r),window.addEventListener("scroll",s)}),We(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",s)});function r(){if(!t.value)return;const d=window.scrollY,f=window.innerHeight,k=document.body.offsetHeight,V=Math.abs(d+f-k)<1,_=ce.map(({element:S,link:E})=>({link:E,top:Tt(S)})).filter(({top:S})=>!Number.isNaN(S)).sort((S,E)=>S.top-E.top);if(!_.length){l(null);return}if(d<1){l(null);return}if(V){l(_[_.length-1].link);return}let P=null;for(const{link:S,top:E}of _){if(E>d+qe()+4)break;P=S}l(P)}function l(d){n&&n.classList.remove("active"),d==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const f=n;f?(f.classList.add("active"),e.value.style.top=f.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Tt(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}function wt(o,e,t){ce.length=0;const s=[],n=[];return o.forEach(r=>{const l={...r,children:[]};let d=n[n.length-1];for(;d&&d.level>=l.level;)n.pop(),d=n[n.length-1];if(l.element.classList.contains("ignore-header")||d&&"shouldIgnore"in d){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=K("VPDocOutlineItem",!0);return a(),c("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),c(M,null,A(t.headers,({children:r,link:l,title:d})=>(a(),c("li",null,[p("a",{class:"outline-link",href:l,onClick:e,title:d},N(d),9,Nt),r!=null&&r.length?(a(),b(n,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ae=$(It,[["__scopeId","data-v-3f927ebe"]]),Mt={class:"content"},Et={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Ct=m({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=L(),s=Le([]);ee(()=>{s.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return Lt(n,r),(l,d)=>(a(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":s.value.length>0}]),ref_key:"container",ref:n},[p("div",Mt,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",Et,N(i(Ce)(i(t))),1),g(Ae,{headers:s.value,root:!0},null,8,["headers"])])],2))}}),At=$(Ct,[["__scopeId","data-v-b38bf2ff"]]),Bt={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,s)=>(a(),c("div",Bt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ot={class:"VPDocAside"},Dt=m({__name:"VPDocAside",setup(o){const{theme:e}=L();return(t,s)=>(a(),c("div",Ot,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),g(At),u(t.$slots,"aside-outline-after",{},void 0,!0),s[0]||(s[0]=p("div",{class:"spacer"},null,-1)),u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),b(Ht,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=$(Dt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:o,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:s=""}=o.value.editLink||{};let n;return typeof s=="function"?n=s(e.value):n=s.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ut(){const{page:o,theme:e,frontmatter:t}=L();return y(()=>{var k,V,_,P,S,E,C,w;const s=Ee(e.value.sidebar,o.value.relativePath),n=gt(s),r=Gt(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>z(o.value.relativePath,B.link)),d=((k=e.value.docFooter)==null?void 0:k.prev)===!1&&!t.value.prev||t.value.prev===!1,f=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[l-1])==null?void 0:_.docFooterText)??((P=r[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((S=r[l-1])==null?void 0:S.link)},next:f?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((E=r[l+1])==null?void 0:E.docFooterText)??((C=r[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((w=r[l+1])==null?void 0:w.link)}}})}function Gt(o,e){const t=new Set;return o.filter(s=>{const n=e(s);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.tag??(e.href?"a":"span")),s=y(()=>e.href&&Te.test(e.href)||e.target==="_blank");return(n,r)=>(a(),b(O(t.value),{class:I(["VPLink",{link:n.href,"vp-external-link-icon":s.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(s.value?"_blank":void 0),rel:n.rel??(s.value?"noreferrer":void 0)},{default:v(()=>[u(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],Kt=m({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:s}=L(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return F(()=>{x(()=>{var d,f,k;l.value=new Intl.DateTimeFormat((f=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&f.forceLocale?s.value:void 0,((k=e.value.lastUpdated)==null?void 0:k.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,f)=>{var k;return a(),c("p",jt,[j(N(((k=i(e).lastUpdated)==null?void 0:k.text)||i(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:r.value},N(l.value),9,zt)])}}}),Wt=$(Kt,[["__scopeId","data-v-475f71b8"]]),qt={key:0,class:"VPDocFooter"},Jt={key:0,class:"edit-info"},Yt={key:0,class:"edit-link"},Xt={key:1,class:"last-updated"},Qt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Zt={class:"pager"},xt=["innerHTML"],en=["innerHTML"],tn={class:"pager"},nn=["innerHTML"],sn=["innerHTML"],on=m({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:s}=L(),n=Rt(),r=Ut(),l=y(()=>e.value.editLink&&s.value.editLink!==!1),d=y(()=>t.value.lastUpdated),f=y(()=>l.value||d.value||r.value.prev||r.value.next);return(k,V)=>{var _,P,S,E;return f.value?(a(),c("footer",qt,[u(k.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),c("div",Jt,[l.value?(a(),c("div",Yt,[g(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:v(()=>[V[0]||(V[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),j(" "+N(i(n).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(a(),c("div",Xt,[g(Wt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),c("nav",Qt,[V[1]||(V[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",Zt,[(S=i(r).prev)!=null&&S.link?(a(),b(D,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:v(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,xt),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,en)]}),_:1},8,["href"])):h("",!0)]),p("div",tn,[(E=i(r).next)!=null&&E.link?(a(),b(D,{key:0,class:"pager-link next",href:i(r).next.link},{default:v(()=>{var C;return[p("span",{class:"desc",innerHTML:((C=i(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,nn),p("span",{class:"title",innerHTML:i(r).next.text},null,8,sn)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),an=$(on,[["__scopeId","data-v-4f9813fa"]]),rn={class:"container"},ln={class:"aside-container"},un={class:"aside-content"},cn={class:"content"},dn={class:"content-container"},fn={class:"main"},pn=m({__name:"VPDoc",setup(o){const{theme:e}=L(),t=Y(),{hasSidebar:s,hasAside:n,leftAside:r}=R(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,f)=>{const k=K("Content");return a(),c("div",{class:I(["VPDoc",{"has-sidebar":i(s),"has-aside":i(n)}])},[u(d.$slots,"doc-top",{},void 0,!0),p("div",rn,[i(n)?(a(),c("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[f[0]||(f[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ln,[p("div",un,[g(Ft,null,{"aside-top":v(()=>[u(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",cn,[p("div",dn,[u(d.$slots,"doc-before",{},void 0,!0),p("main",fn,[g(k,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(an,null,{"doc-footer-before":v(()=>[u(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(d.$slots,"doc-after",{},void 0,!0)])])]),u(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),vn=$(pn,[["__scopeId","data-v-83890dd9"]]),hn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=y(()=>e.href&&Te.test(e.href)),s=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),b(O(s.value),{class:I(["VPButton",[n.size,n.theme]]),href:n.href?i(_e)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:v(()=>[j(N(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),mn=$(hn,[["__scopeId","data-v-906d7fb4"]]),_n=["src","alt"],bn=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const s=K("VPImage",!0);return e.image?(a(),c(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),c("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(fe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,_n)):(a(),c(M,{key:1},[g(s,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(s,G({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),Z=$(bn,[["__scopeId","data-v-35a7d0b8"]]),kn={class:"container"},gn={class:"main"},$n={key:0,class:"name"},yn=["innerHTML"],Pn=["innerHTML"],Sn=["innerHTML"],Vn={key:0,class:"actions"},Ln={key:0,class:"image"},Tn={class:"image-container"},wn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=q("hero-image-slot-exists");return(t,s)=>(a(),c("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[p("div",kn,[p("div",gn,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),c("h1",$n,[p("span",{innerHTML:t.name,class:"clip"},null,8,yn)])):h("",!0),t.text?(a(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,Pn)):h("",!0),t.tagline?(a(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Sn)):h("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),c("div",Vn,[(a(!0),c(M,null,A(t.actions,n=>(a(),c("div",{key:n.link,class:"action"},[g(mn,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),c("div",Ln,[p("div",Tn,[s[0]||(s[0]=p("div",{class:"image-bg"},null,-1)),u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),b(Z,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),Nn=$(wn,[["__scopeId","data-v-955009fc"]]),In=m({__name:"VPHomeHero",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).hero?(a(),b(Nn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":v(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":v(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":v(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":v(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),Mn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],An=["innerHTML"],Bn=["innerHTML"],Hn={key:4,class:"link-text"},On={class:"link-text-value"},Dn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(a(),b(D,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:v(()=>[p("article",Mn,[typeof e.icon=="object"&&e.icon.wrap?(a(),c("div",En,[g(Z,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),b(Z,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,An),e.details?(a(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Bn)):h("",!0),e.linkText?(a(),c("div",Hn,[p("p",On,[j(N(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=$(Dn,[["__scopeId","data-v-f5e9645b"]]),Rn={key:0,class:"VPFeatures"},Un={class:"container"},Gn={class:"items"},jn=m({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=y(()=>{const s=e.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s>3)return"grid-4"}else return});return(s,n)=>s.features?(a(),c("div",Rn,[p("div",Un,[p("div",Gn,[(a(!0),c(M,null,A(s.features,r=>(a(),c("div",{key:r.title,class:I(["item",[t.value]])},[g(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),zn=$(jn,[["__scopeId","data-v-d0a190d7"]]),Kn=m({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=L();return(t,s)=>i(e).features?(a(),b(zn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=m({__name:"VPHomeContent",setup(o){const{width:e}=Je({initialWidth:0,includeScrollbar:!1});return(t,s)=>(a(),c("div",{class:"vp-doc container",style:we(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[u(t.$slots,"default",{},void 0,!0)],4))}}),qn=$(Wn,[["__scopeId","data-v-7a48a447"]]),Jn={class:"VPHome"},Yn=m({__name:"VPHome",setup(o){const{frontmatter:e}=L();return(t,s)=>{const n=K("Content");return a(),c("div",Jn,[u(t.$slots,"home-hero-before",{},void 0,!0),g(In,null,{"home-hero-info-before":v(()=>[u(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(t.$slots,"home-hero-after",{},void 0,!0),u(t.$slots,"home-features-before",{},void 0,!0),g(Kn),u(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(qn,{key:0},{default:v(()=>[g(n)]),_:1})):(a(),b(n,{key:1}))])}}}),Xn=$(Yn,[["__scopeId","data-v-cbb6ec48"]]),Qn={},Zn={class:"VPPage"};function xn(o,e){const t=K("Content");return a(),c("div",Zn,[u(o.$slots,"page-top"),g(t),u(o.$slots,"page-bottom")])}const es=$(Qn,[["render",xn]]),ts=m({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>(a(),c("div",{class:I(["VPContent",{"has-sidebar":i(s),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(n.$slots,"not-found",{key:0},()=>[g(bt)],!0):i(t).layout==="page"?(a(),b(es,{key:1},{"page-top":v(()=>[u(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(Xn,{key:2},{"home-hero-before":v(()=>[u(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[u(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),b(O(i(t).layout),{key:3})):(a(),b(vn,{key:4},{"doc-top":v(()=>[u(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[u(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[u(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[u(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[u(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),ns=$(ts,[["__scopeId","data-v-91765379"]]),ss={class:"container"},os=["innerHTML"],as=["innerHTML"],rs=m({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),c("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(s)}])},[p("div",ss,[i(e).footer.message?(a(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,os)):h("",!0),i(e).footer.copyright?(a(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,as)):h("",!0)])],2)):h("",!0)}}),is=$(rs,[["__scopeId","data-v-c970a860"]]);function ls(){const{theme:o,frontmatter:e}=L(),t=Le([]),s=y(()=>t.value.length>0);return ee(()=>{t.value=be(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:s}}const us={class:"menu-text"},cs={class:"header"},ds={class:"outline"},fs=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=L(),s=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(s.value=!1)}H(s,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{s.value=!1}),ee(()=>{s.value=!1});function f(){s.value=!s.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function k(_){_.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),he(()=>{s.value=!1}))}function V(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),c("div",{class:"VPLocalNavOutlineDropdown",style:we({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),c("button",{key:0,onClick:f,class:I({open:s.value})},[p("span",us,N(i(Ce)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),c("button",{key:1,onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)),g(de,{name:"flyout"},{default:v(()=>[s.value?(a(),c("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:k},[p("div",cs,[p("a",{class:"top-link",href:"#",onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)]),p("div",ds,[g(Ae,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),ps=$(fs,[["__scopeId","data-v-bc9dc845"]]),vs={class:"container"},hs=["aria-expanded"],ms={class:"menu-text"},_s=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=L(),{hasSidebar:s}=R(),{headers:n}=ls(),{y:r}=Ne(),l=T(0);F(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ee(()=>{n.value=be(t.value.outline??e.value.outline)});const d=y(()=>n.value.length===0),f=y(()=>d.value&&!s.value),k=y(()=>({VPLocalNav:!0,"has-sidebar":s.value,empty:d.value,fixed:f.value}));return(V,_)=>i(t).layout!=="home"&&(!f.value||i(r)>=l.value)?(a(),c("div",{key:0,class:I(k.value)},[p("div",vs,[i(s)?(a(),c("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>V.$emit("open-menu"))},[_[1]||(_[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",ms,N(i(e).sidebarMenuLabel||"Menu"),1)],8,hs)):h("",!0),g(ps,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),bs=$(_s,[["__scopeId","data-v-070ab83d"]]);function ks(){const o=T(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function s(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=Y();return H(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:s}}const gs={},$s={class:"VPSwitch",type:"button",role:"switch"},ys={class:"check"},Ps={key:0,class:"icon"};function Ss(o,e){return a(),c("button",$s,[p("span",ys,[o.$slots.default?(a(),c("span",Ps,[u(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Vs=$(gs,[["render",Ss],["__scopeId","data-v-4a1c76db"]]),Ls=m({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=L(),s=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return ve(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),b(Vs,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(s)},{default:v(()=>l[0]||(l[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ke=$(Ls,[["__scopeId","data-v-e40a8bb6"]]),Ts={key:0,class:"VPNavBarAppearance"},ws=m({__name:"VPNavBarAppearance",setup(o){const{site:e}=L();return(t,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",Ts,[g(ke)])):h("",!0)}}),Ns=$(ws,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Is(o){const e=T(!1);if(te){!Be&&Ms(),ae++;const t=H(ge,s=>{var n,r,l;s===o.el.value||(n=o.el.value)!=null&&n.contains(s)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(l=o.onBlur)==null||l.call(o))});pe(()=>{t(),ae--,ae||Es()})}return Ye(e)}function Ms(){document.addEventListener("focusin",He),Be=!0,ge.value=document.activeElement}function Es(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const Cs={class:"VPMenuLink"},As=["innerHTML"],Bs=m({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),c("div",Cs,[g(D,{class:I({active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,As)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Bs,[["__scopeId","data-v-acbfed09"]]),Hs={class:"VPMenuGroup"},Os={key:0,class:"title"},Ds=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",Hs,[e.text?(a(),c("p",Os,N(e.text),1)):h("",!0),(a(!0),c(M,null,A(e.items,s=>(a(),c(M,null,["link"in s?(a(),b(ne,{key:0,item:s},null,8,["item"])):h("",!0)],64))),256))]))}}),Fs=$(Ds,[["__scopeId","data-v-48c802d0"]]),Rs={class:"VPMenu"},Us={key:0,class:"items"},Gs=m({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(a(),c("div",Rs,[e.items?(a(),c("div",Us,[(a(!0),c(M,null,A(e.items,s=>(a(),c(M,{key:JSON.stringify(s)},["link"in s?(a(),b(ne,{key:0,item:s},null,8,["item"])):"component"in s?(a(),b(O(s.component),G({key:1,ref_for:!0},s.props),null,16)):(a(),b(Fs,{key:2,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):h("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),js=$(Gs,[["__scopeId","data-v-7dd3104a"]]),zs=["aria-expanded","aria-label"],Ks={key:0,class:"text"},Ws=["innerHTML"],qs={key:1,class:"vpi-more-horizontal icon"},Js={class:"menu"},Ys=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=T(!1),t=T();Is({el:t,onBlur:s});function s(){e.value=!1}return(n,r)=>(a(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=l=>e.value=!0),onMouseleave:r[2]||(r[2]=l=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),c("span",Ks,[n.icon?(a(),c("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),c("span",{key:1,innerHTML:n.button},null,8,Ws)):h("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),c("span",qs))],8,zs),p("div",Js,[g(js,{items:n.items},{default:v(()=>[u(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(Ys,[["__scopeId","data-v-04f5c5e9"]]),Xs=["href","aria-label","innerHTML"],Qs=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=T();F(async()=>{var r;await he();const n=(r=t.value)==null?void 0:r.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const s=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),c("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:s.value},null,8,Xs))}}),Zs=$(Qs,[["__scopeId","data-v-d26d30cb"]]),xs={class:"VPSocialLinks"},eo=m({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(a(),c("div",xs,[(a(!0),c(M,null,A(e.links,({link:s,icon:n,ariaLabel:r})=>(a(),b(Zs,{key:s,icon:n,link:s,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(eo,[["__scopeId","data-v-ee7a9424"]]),to={key:0,class:"group translations"},no={class:"trans-title"},so={key:1,class:"group"},oo={class:"item appearance"},ao={class:"label"},ro={class:"appearance-action"},io={key:2,class:"group"},lo={class:"item social-links"},uo=m({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=L(),{localeLinks:s,currentLang:n}=X({correspondingLink:!0}),r=y(()=>s.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,d)=>r.value?(a(),b($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[i(s).length&&i(n).label?(a(),c("div",to,[p("p",no,N(i(n).label),1),(a(!0),c(M,null,A(i(s),f=>(a(),b(ne,{key:f.link,item:f},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",so,[p("div",oo,[p("p",ao,N(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",ro,[g(ke)])])])):h("",!0),i(t).socialLinks?(a(),c("div",io,[p("div",lo,[g(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),co=$(uo,[["__scopeId","data-v-925effce"]]),fo=["aria-expanded"],po=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(a(),c("button",{type:"button",class:I(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=s=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,fo))}}),vo=$(po,[["__scopeId","data-v-5dea55bf"]]),ho=["innerHTML"],mo=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=L();return(t,s)=>(a(),b(D,{class:I({VPNavBarMenuLink:!0,active:i(z)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,ho)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_o=$(mo,[["__scopeId","data-v-956ec74c"]]),Oe=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=L(),s=r=>"component"in r?!1:"link"in r?z(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(s),n=y(()=>s(e.item));return(r,l)=>(a(),b($e,{class:I({VPNavBarMenuGroup:!0,active:i(z)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),bo={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ko=m({__name:"VPNavBarMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",bo,[s[0]||(s[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),c(M,null,A(i(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),b(_o,{key:0,item:n},null,8,["item"])):"component"in n?(a(),b(O(n.component),G({key:1,ref_for:!0},n.props),null,16)):(a(),b(Oe,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),go=$(ko,[["__scopeId","data-v-e6d46098"]]);function $o(o){const{localeIndex:e,theme:t}=L();function s(n){var E,C,w;const r=n.split("."),l=(E=t.value.search)==null?void 0:E.options,d=l&&typeof l=="object",f=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,k=d&&l.translations||null;let V=f,_=k,P=o;const S=r.pop();for(const B of r){let U=null;const W=P==null?void 0:P[B];W&&(U=P=W);const se=_==null?void 0:_[B];se&&(U=_=se);const oe=V==null?void 0:V[B];oe&&(U=V=oe),W||(P=U),se||(_=U),oe||(V=U)}return(V==null?void 0:V[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return s}const yo=["aria-label"],Po={class:"DocSearch-Button-Container"},So={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(o){const t=$o({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(s,n)=>(a(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",Po,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",So,N(i(t)("button.buttonText")),1)]),n[1]||(n[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,yo))}}),Vo={class:"VPNavBarSearch"},Lo={id:"local-search"},To={key:1,id:"docsearch"},wo=m({__name:"VPNavBarSearch",setup(o){const e=Xe(()=>Qe(()=>import("./VPLocalSearchBox.RMvoiZTn.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:s}=L(),n=T(!1),r=T(!1);F(()=>{});function l(){n.value||(n.value=!0,setTimeout(d,16))}function d(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function f(_){const P=_.target,S=P.tagName;return P.isContentEditable||S==="INPUT"||S==="SELECT"||S==="TEXTAREA"}const k=T(!1);ie("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),k.value=!0)}),ie("/",_=>{f(_)||(_.preventDefault(),k.value=!0)});const V="local";return(_,P)=>{var S;return a(),c("div",Vo,[i(V)==="local"?(a(),c(M,{key:0},[k.value?(a(),b(i(e),{key:0,onClose:P[0]||(P[0]=E=>k.value=!1)})):h("",!0),p("div",Lo,[g(Pe,{onClick:P[1]||(P[1]=E=>k.value=!0)})])],64)):i(V)==="algolia"?(a(),c(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((S=i(s).search)==null?void 0:S.options)??i(s).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),c("div",To,[g(Pe,{onClick:l})]))],64)):h("",!0)])}}}),No=m({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),Io=$(No,[["__scopeId","data-v-164c457f"]]),Mo=["href","rel","target"],Eo=["innerHTML"],Co={key:2},Ao=m({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=L(),{hasSidebar:s}=R(),{currentLang:n}=X(),r=y(()=>{var f;return typeof t.value.logoLink=="string"?t.value.logoLink:(f=t.value.logoLink)==null?void 0:f.link}),l=y(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.rel}),d=y(()=>{var f;return typeof t.value.logoLink=="string"||(f=t.value.logoLink)==null?void 0:f.target});return(f,k)=>(a(),c("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(s)}])},[p("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[u(f.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),b(Z,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(a(),c("span",{key:1,innerHTML:i(t).siteTitle},null,8,Eo)):i(t).siteTitle===void 0?(a(),c("span",Co,N(i(e).title),1)):h("",!0),u(f.$slots,"nav-bar-title-after",{},void 0,!0)],8,Mo)],2))}}),Bo=$(Ao,[["__scopeId","data-v-0f4f798b"]]),Ho={class:"items"},Oo={class:"title"},Do=m({__name:"VPNavBarTranslations",setup(o){const{theme:e}=L(),{localeLinks:t,currentLang:s}=X({correspondingLink:!0});return(n,r)=>i(t).length&&i(s).label?(a(),b($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:v(()=>[p("div",Ho,[p("p",Oo,N(i(s).label),1),(a(!0),c(M,null,A(i(t),l=>(a(),b(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fo=$(Do,[["__scopeId","data-v-c80d9ad0"]]),Ro={class:"wrapper"},Uo={class:"container"},Go={class:"title"},jo={class:"content"},zo={class:"content-body"},Ko=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=Ne(),{hasSidebar:s}=R(),{frontmatter:n}=L(),r=T({});return ve(()=>{r.value={"has-sidebar":s.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),c("div",{class:I(["VPNavBar",r.value])},[p("div",Ro,[p("div",Uo,[p("div",Go,[g(Bo,null,{"nav-bar-title-before":v(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",jo,[p("div",zo,[u(l.$slots,"nav-bar-content-before",{},void 0,!0),g(wo,{class:"search"}),g(go,{class:"menu"}),g(Fo,{class:"translations"}),g(Ns,{class:"appearance"}),g(Io,{class:"social-links"}),g(co,{class:"extra"}),u(l.$slots,"nav-bar-content-after",{},void 0,!0),g(vo,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=f=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Wo=$(Ko,[["__scopeId","data-v-822684d1"]]),qo={key:0,class:"VPNavScreenAppearance"},Jo={class:"text"},Yo=m({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=L();return(s,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),c("div",qo,[p("p",Jo,N(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):h("",!0)}}),Xo=$(Yo,[["__scopeId","data-v-ffb44008"]]),Qo=["innerHTML"],Zo=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),b(D,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,Qo)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xo=$(Zo,[["__scopeId","data-v-735512b8"]]),ea=["innerHTML"],ta=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=q("close-screen");return(t,s)=>(a(),b(D,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:i(e)},{default:v(()=>[p("span",{innerHTML:t.item.text},null,8,ea)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),De=$(ta,[["__scopeId","data-v-372ae7c0"]]),na={class:"VPNavScreenMenuGroupSection"},sa={key:0,class:"title"},oa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(a(),c("div",na,[e.text?(a(),c("p",sa,N(e.text),1)):h("",!0),(a(!0),c(M,null,A(e.items,s=>(a(),b(De,{key:s.text,item:s},null,8,["item"]))),128))]))}}),aa=$(oa,[["__scopeId","data-v-4b8941ac"]]),ra=["aria-controls","aria-expanded"],ia=["innerHTML"],la=["id"],ua={key:0,class:"item"},ca={key:1,class:"item"},da={key:2,class:"group"},fa=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=T(!1),s=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),c("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":s.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:r.text},null,8,ia),l[0]||(l[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,ra),p("div",{id:s.value,class:"items"},[(a(!0),c(M,null,A(r.items,d=>(a(),c(M,{key:JSON.stringify(d)},["link"in d?(a(),c("div",ua,[g(De,{item:d},null,8,["item"])])):"component"in d?(a(),c("div",ca,[(a(),b(O(d.component),G({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),c("div",da,[g(aa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,la)],2))}}),Fe=$(fa,[["__scopeId","data-v-875057a5"]]),pa={key:0,class:"VPNavScreenMenu"},va=m({__name:"VPNavScreenMenu",setup(o){const{theme:e}=L();return(t,s)=>i(e).nav?(a(),c("nav",pa,[(a(!0),c(M,null,A(i(e).nav,n=>(a(),c(M,{key:JSON.stringify(n)},["link"in n?(a(),b(xo,{key:0,item:n},null,8,["item"])):"component"in n?(a(),b(O(n.component),G({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),b(Fe,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),ha=m({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=L();return(t,s)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),ma={class:"list"},_a=m({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),s=T(!1);function n(){s.value=!s.value}return(r,l)=>i(e).length&&i(t).label?(a(),c("div",{key:0,class:I(["VPNavScreenTranslations",{open:s.value}])},[p("button",{class:"title",onClick:n},[l[0]||(l[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),j(" "+N(i(t).label)+" ",1),l[1]||(l[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",ma,[(a(!0),c(M,null,A(i(e),d=>(a(),c("li",{key:d.link,class:"item"},[g(D,{class:"link",href:d.link},{default:v(()=>[j(N(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),ba=$(_a,[["__scopeId","data-v-362991c2"]]),ka={class:"container"},ga=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=T(null),t=Ie(te?document.body:null);return(s,n)=>(a(),b(de,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:v(()=>[s.open?(a(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ka,[u(s.$slots,"nav-screen-content-before",{},void 0,!0),g(va,{class:"menu"}),g(ba,{class:"translations"}),g(Xo,{class:"appearance"}),g(ha,{class:"social-links"}),u(s.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),$a=$(ga,[["__scopeId","data-v-833aabba"]]),ya={key:0,class:"VPNav"},Pa=m({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:s}=ks(),{frontmatter:n}=L(),r=y(()=>n.value.navbar!==!1);return me("close-screen",t),x(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(l,d)=>r.value?(a(),c("header",ya,[g(Wo,{"is-screen-open":i(e),onToggleScreen:i(s)},{"nav-bar-title-before":v(()=>[u(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g($a,{open:i(e)},{"nav-screen-content-before":v(()=>[u(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Sa=$(Pa,[["__scopeId","data-v-f1e365da"]]),Va=["role","tabindex"],La={key:1,class:"items"},Ta=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:s,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:f}=yt(y(()=>e.item)),k=y(()=>d.value?"section":"div"),V=y(()=>n.value?"a":"div"),_=y(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),S=y(()=>[[`level-${e.depth}`],{collapsible:s.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":l.value}]);function E(w){"key"in w&&w.key!=="Enter"||!e.item.link&&f()}function C(){e.item.link&&f()}return(w,B)=>{const U=K("VPSidebarItem",!0);return a(),b(O(k.value),{class:I(["VPSidebarItem",S.value])},{default:v(()=>[w.item.text?(a(),c("div",G({key:0,class:"item",role:P.value},xe(w.item.items?{click:E,keydown:E}:{},!0),{tabindex:w.item.items&&0}),[B[1]||(B[1]=p("div",{class:"indicator"},null,-1)),w.item.link?(a(),b(D,{key:0,tag:V.value,class:"link",href:w.item.link,rel:w.item.rel,target:w.item.target},{default:v(()=>[(a(),b(O(_.value),{class:"text",innerHTML:w.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),b(O(_.value),{key:1,class:"text",innerHTML:w.item.text},null,8,["innerHTML"])),w.item.collapsed!=null&&w.item.items&&w.item.items.length?(a(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:Ze(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,Va)):h("",!0),w.item.items&&w.item.items.length?(a(),c("div",La,[w.depth<5?(a(!0),c(M,{key:0},A(w.item.items,W=>(a(),b(U,{key:W.text,item:W,depth:w.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),wa=$(Ta,[["__scopeId","data-v-196b2e5f"]]),Na=m({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=T(!0);let t=null;return F(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),et(()=>{t!=null&&(clearTimeout(t),t=null)}),(s,n)=>(a(!0),c(M,null,A(s.items,r=>(a(),c("div",{key:r.text,class:I(["group",{"no-transition":e.value}])},[g(wa,{item:r,depth:0},null,8,["item"])],2))),128))}}),Ia=$(Na,[["__scopeId","data-v-9e426adc"]]),Ma={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Ea=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=R(),s=o,n=T(null),r=Ie(te?document.body:null);H([s,n],()=>{var d;s.open?(r.value=!0,(d=n.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const l=T(0);return H(e,()=>{l.value+=1},{deep:!0}),(d,f)=>i(t)?(a(),c("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:f[0]||(f[0]=tt(()=>{},["stop"]))},[f[2]||(f[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ma,[f[1]||(f[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),u(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),b(Ia,{items:i(e),key:l.value},null,8,["items"])),u(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Ea,[["__scopeId","data-v-18756405"]]),Aa=m({__name:"VPSkipLink",setup(o){const e=Y(),t=T();H(()=>e.path,()=>t.value.focus());function s({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const l=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",l)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",l),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),c(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}}),Ba=$(Aa,[["__scopeId","data-v-c3508ec8"]]),Ha=m({__name:"Layout",setup(o){const{isOpen:e,open:t,close:s}=R(),n=Y();H(()=>n.path,s),$t(e,s);const{frontmatter:r}=L(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(f,k)=>{const V=K("Content");return i(r).layout!==!1?(a(),c("div",{key:0,class:I(["Layout",i(r).pageClass])},[u(f.$slots,"layout-top",{},void 0,!0),g(Ba),g(lt,{class:"backdrop",show:i(e),onClick:i(s)},null,8,["show","onClick"]),g(Sa,null,{"nav-bar-title-before":v(()=>[u(f.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[u(f.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[u(f.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[u(f.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[u(f.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[u(f.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(bs,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Ca,{open:i(e)},{"sidebar-nav-before":v(()=>[u(f.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[u(f.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(ns,null,{"page-top":v(()=>[u(f.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[u(f.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[u(f.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[u(f.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":v(()=>[u(f.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":v(()=>[u(f.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":v(()=>[u(f.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":v(()=>[u(f.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":v(()=>[u(f.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[u(f.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[u(f.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[u(f.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[u(f.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[u(f.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[u(f.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[u(f.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[u(f.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[u(f.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[u(f.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[u(f.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[u(f.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[u(f.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[u(f.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(is),u(f.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(V,{key:1}))}}}),Oa=$(Ha,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Oa,enhanceApp:({app:o})=>{o.component("Badge",at)}},Da=m({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(o){Y();const e=T([]),t=T("Versions"),s=()=>new Promise(n=>{const r=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(r),n({versions:window.DOC_VERSIONS,currentVersion:window.DOCUMENTER_CURRENT_VERSION}))},100)});return F(async()=>{const n=await s();e.value=n.versions.map(r=>({text:r,link:`${window.location.origin}/${r}/`})),t.value=n.currentVersion}),(n,r)=>n.screenMenu?(a(),b(Fe,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):(a(),b(Oe,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"]))}}),Fa=$(Da,[["__scopeId","data-v-31b36ab6"]]),Ra=o=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:s=>async(...n)=>{const r=s(...n),l=o.value;if(!l)return r;const d=l.offsetTop-e.scrollTop;return await he(),e.scrollTop=l.offsetTop-d,r}}},Re="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ue="vitepress:tabsSharedState",Ua=()=>{const o=J==null?void 0:J.getItem(Ue);if(o)try{return JSON.parse(o)}catch{}return{}},Ga=o=>{J&&J.setItem(Ue,JSON.stringify(o))},ja=o=>{const e=nt({});H(()=>e.content,(t,s)=>{t&&s&&Ga(t)},{deep:!0}),o.provide(Re,e)},za=(o,e)=>{const t=q(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ua())});const s=T(),n=y({get(){var f;const l=e.value,d=o.value;if(l){const k=(f=t.content)==null?void 0:f[l];if(k&&d.includes(k))return k}else{const k=s.value;if(k)return k}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):s.value=l}});return{selected:n,select:l=>{n.value=l}}};let Ve=0;const Ka=()=>(Ve++,""+Ve);function Wa(){const o=Me();return y(()=>{var s;const t=(s=o.default)==null?void 0:s.call(o);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const Ge="vitepress:tabSingleState",qa=o=>{me(Ge,o)},Ja=()=>{const o=q(Ge);if(!o)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return o},Ya={class:"plugin-tabs"},Xa=["id","aria-selected","aria-controls","tabindex","onClick"],Qa=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(o){const e=o,t=Wa(),{selected:s,select:n}=za(t,st(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Ra(r),d=l(n),f=T([]),k=_=>{var E;const P=t.value.indexOf(s.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),c("div",Ya,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:k},[(a(!0),c(M,null,A(i(t),S=>(a(),c("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:f,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(s),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(s)?0:-1,onClick:()=>i(d)(S)},N(S),9,Xa))),128))],544),u(_.$slots,"default")]))}}),Za=["id","aria-labelledby"],xa=m({__name:"PluginTabsTab",props:{label:{}},setup(o){const{uid:e,selected:t}=Ja();return(s,n)=>i(t)===s.label?(a(),c("div",{key:0,id:`panel-${s.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${s.label}-${i(e)}`},[u(s.$slots,"default",{},void 0,!0)],8,Za)):h("",!0)}}),er=$(xa,[["__scopeId","data-v-9b0d03d2"]]),tr=o=>{ja(o),o.component("PluginTabs",Qa),o.component("PluginTabsTab",er)},sr={extends:Se,Layout(){return ot(Se.Layout,null,{})},enhanceApp({app:o,router:e,siteData:t}){if(tr(o),o.component("VersionPicker",Fa),typeof window<"u"){let s=function(){if(!(window.DOCUMENTER_NEWEST===void 0||window.DOCUMENTER_CURRENT_VERSION===void 0||window.DOCUMENTER_STABLE===void 0)&&window.DOCUMENTER_NEWEST===window.DOCUMENTER_CURRENT_VERSION){const n=window.location.href.replace(window.DOCUMENTER_CURRENT_VERSION,window.DOCUMENTER_STABLE);window.history.replaceState({additionalInformation:"URL rewritten to stable"},"Makie",n);return}};H(()=>e.route.data.relativePath,s,{immediate:!0}),document.addEventListener("DOMContentLoaded",s)}}};export{sr as R,$o as c,L as u}; diff --git a/dev/assets/kbokwjv.CYEaoWcy.png b/dev/assets/cnavjwh.CYEaoWcy.png similarity index 100% rename from dev/assets/kbokwjv.CYEaoWcy.png rename to dev/assets/cnavjwh.CYEaoWcy.png diff --git a/dev/assets/developer_cached-field.md.B_AWlHVq.js b/dev/assets/developer_cached-field.md.Cmyiwq3r.js similarity index 83% rename from dev/assets/developer_cached-field.md.B_AWlHVq.js rename to dev/assets/developer_cached-field.md.Cmyiwq3r.js index 509ee9889..428d31955 100644 --- a/dev/assets/developer_cached-field.md.B_AWlHVq.js +++ b/dev/assets/developer_cached-field.md.Cmyiwq3r.js @@ -5,5 +5,5 @@ import{_ as e,c as a,a5 as i,o as t}from"./chunks/framework.B1oJu5R7.js";const c tensors(tn) .|> inds
3-element Vector{Tuple{Symbol, Vararg{Symbol}}}:
  (:a,)
  (:i, :j)
- (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.9088379345081677, 0.19175585557059793], [0.9474236865107496 0.22802219992745554; 0.5138008417135007 0.537256508739335], [0.7426230548599317 0.4311975915690427; 0.553552238090315 0.6639498557198327]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
+ (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.23065139652454292, 0.39238973008403166], [0.22193836209836748 0.38278223481669893; 0.0839499635703298 0.40546728387604225], [0.11481509045441651 0.7306413990119035; 0.1758989718332704 0.8437147928830764]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
 tn.sorted_tensors.isvalid
false
`,11)]))}const E=e(n,[["render",h]]);export{c as __pageData,E as default}; diff --git a/dev/assets/developer_cached-field.md.B_AWlHVq.lean.js b/dev/assets/developer_cached-field.md.Cmyiwq3r.lean.js similarity index 83% rename from dev/assets/developer_cached-field.md.B_AWlHVq.lean.js rename to dev/assets/developer_cached-field.md.Cmyiwq3r.lean.js index 509ee9889..428d31955 100644 --- a/dev/assets/developer_cached-field.md.B_AWlHVq.lean.js +++ b/dev/assets/developer_cached-field.md.Cmyiwq3r.lean.js @@ -5,5 +5,5 @@ import{_ as e,c as a,a5 as i,o as t}from"./chunks/framework.B1oJu5R7.js";const c tensors(tn) .|> inds
3-element Vector{Tuple{Symbol, Vararg{Symbol}}}:
  (:a,)
  (:i, :j)
- (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.9088379345081677, 0.19175585557059793], [0.9474236865107496 0.22802219992745554; 0.5138008417135007 0.537256508739335], [0.7426230548599317 0.4311975915690427; 0.553552238090315 0.6639498557198327]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
+ (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.23065139652454292, 0.39238973008403166], [0.22193836209836748 0.38278223481669893; 0.0839499635703298 0.40546728387604225], [0.11481509045441651 0.7306413990119035; 0.1758989718332704 0.8437147928830764]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
 tn.sorted_tensors.isvalid
false
`,11)]))}const E=e(n,[["render",h]]);export{c as __pageData,E as default}; diff --git a/dev/assets/developer_type-hierarchy.md.DcV_8jOT.js b/dev/assets/developer_type-hierarchy.md.BjTa1Aju.js similarity index 98% rename from dev/assets/developer_type-hierarchy.md.DcV_8jOT.js rename to dev/assets/developer_type-hierarchy.md.BjTa1Aju.js index 59cc91eec..e511f457a 100644 --- a/dev/assets/developer_type-hierarchy.md.DcV_8jOT.js +++ b/dev/assets/developer_type-hierarchy.md.BjTa1Aju.js @@ -1,4 +1,4 @@ -import{_ as a,c as i,a5 as n,o as t}from"./chunks/framework.B1oJu5R7.js";const e="/Tenet.jl/dev/assets/kbokwjv.CYEaoWcy.png",F=JSON.parse('{"title":"Inheritance and Traits","description":"","frontmatter":{},"headers":[],"relativePath":"developer/type-hierarchy.md","filePath":"developer/type-hierarchy.md","lastUpdated":null}'),r={name:"developer/type-hierarchy.md"};function l(p,s,h,d,c,o){return t(),i("div",null,s[0]||(s[0]=[n(`

Inheritance and Traits

Julia (and in general, all modern languages like Rust or Go) implement Object Oriented Programming (OOP) in a rather restricted form compared to popular OOP languages like Java, C++ or Python. In particular, they forbid structural inheritance; i.e. inheriting fields from parent superclass(es).

In recent years, structural inheritance has increasingly been considered a bad practice, favouring composition instead.

Julia design space on this topic is not completely clear. Julia has abstract types, which can be "inherited" but do not have fields and can't be instantiated, and concrete types, which cannot be inherited from them but have fields and can be instantiated. In this sense, implementing methods with Julia's abstract types act as some kind of polymorphic base class.

As of the time of writing, the type hierarchy of Tenet looks like this:

julia
mermaid"""graph TD
+import{_ as a,c as i,a5 as n,o as t}from"./chunks/framework.B1oJu5R7.js";const e="/Tenet.jl/dev/assets/cnavjwh.CYEaoWcy.png",F=JSON.parse('{"title":"Inheritance and Traits","description":"","frontmatter":{},"headers":[],"relativePath":"developer/type-hierarchy.md","filePath":"developer/type-hierarchy.md","lastUpdated":null}'),r={name:"developer/type-hierarchy.md"};function l(p,s,h,d,c,o){return t(),i("div",null,s[0]||(s[0]=[n(`

Inheritance and Traits

Julia (and in general, all modern languages like Rust or Go) implement Object Oriented Programming (OOP) in a rather restricted form compared to popular OOP languages like Java, C++ or Python. In particular, they forbid structural inheritance; i.e. inheriting fields from parent superclass(es).

In recent years, structural inheritance has increasingly been considered a bad practice, favouring composition instead.

Julia design space on this topic is not completely clear. Julia has abstract types, which can be "inherited" but do not have fields and can't be instantiated, and concrete types, which cannot be inherited from them but have fields and can be instantiated. In this sense, implementing methods with Julia's abstract types act as some kind of polymorphic base class.

As of the time of writing, the type hierarchy of Tenet looks like this:

julia
mermaid"""graph TD
     id1(AbstractTensorNetwork)
     id2(AbstractQuantum)
     id3(AbstractAnsatz)
diff --git a/dev/assets/developer_type-hierarchy.md.DcV_8jOT.lean.js b/dev/assets/developer_type-hierarchy.md.BjTa1Aju.lean.js
similarity index 98%
rename from dev/assets/developer_type-hierarchy.md.DcV_8jOT.lean.js
rename to dev/assets/developer_type-hierarchy.md.BjTa1Aju.lean.js
index 59cc91eec..e511f457a 100644
--- a/dev/assets/developer_type-hierarchy.md.DcV_8jOT.lean.js
+++ b/dev/assets/developer_type-hierarchy.md.BjTa1Aju.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as i,a5 as n,o as t}from"./chunks/framework.B1oJu5R7.js";const e="/Tenet.jl/dev/assets/kbokwjv.CYEaoWcy.png",F=JSON.parse('{"title":"Inheritance and Traits","description":"","frontmatter":{},"headers":[],"relativePath":"developer/type-hierarchy.md","filePath":"developer/type-hierarchy.md","lastUpdated":null}'),r={name:"developer/type-hierarchy.md"};function l(p,s,h,d,c,o){return t(),i("div",null,s[0]||(s[0]=[n(`

Inheritance and Traits

Julia (and in general, all modern languages like Rust or Go) implement Object Oriented Programming (OOP) in a rather restricted form compared to popular OOP languages like Java, C++ or Python. In particular, they forbid structural inheritance; i.e. inheriting fields from parent superclass(es).

In recent years, structural inheritance has increasingly been considered a bad practice, favouring composition instead.

Julia design space on this topic is not completely clear. Julia has abstract types, which can be "inherited" but do not have fields and can't be instantiated, and concrete types, which cannot be inherited from them but have fields and can be instantiated. In this sense, implementing methods with Julia's abstract types act as some kind of polymorphic base class.

As of the time of writing, the type hierarchy of Tenet looks like this:

julia
mermaid"""graph TD
+import{_ as a,c as i,a5 as n,o as t}from"./chunks/framework.B1oJu5R7.js";const e="/Tenet.jl/dev/assets/cnavjwh.CYEaoWcy.png",F=JSON.parse('{"title":"Inheritance and Traits","description":"","frontmatter":{},"headers":[],"relativePath":"developer/type-hierarchy.md","filePath":"developer/type-hierarchy.md","lastUpdated":null}'),r={name:"developer/type-hierarchy.md"};function l(p,s,h,d,c,o){return t(),i("div",null,s[0]||(s[0]=[n(`

Inheritance and Traits

Julia (and in general, all modern languages like Rust or Go) implement Object Oriented Programming (OOP) in a rather restricted form compared to popular OOP languages like Java, C++ or Python. In particular, they forbid structural inheritance; i.e. inheriting fields from parent superclass(es).

In recent years, structural inheritance has increasingly been considered a bad practice, favouring composition instead.

Julia design space on this topic is not completely clear. Julia has abstract types, which can be "inherited" but do not have fields and can't be instantiated, and concrete types, which cannot be inherited from them but have fields and can be instantiated. In this sense, implementing methods with Julia's abstract types act as some kind of polymorphic base class.

As of the time of writing, the type hierarchy of Tenet looks like this:

julia
mermaid"""graph TD
     id1(AbstractTensorNetwork)
     id2(AbstractQuantum)
     id3(AbstractAnsatz)
diff --git a/dev/assets/qmushen.DCSEWFbY.png b/dev/assets/dnyvvec.DCSEWFbY.png
similarity index 100%
rename from dev/assets/qmushen.DCSEWFbY.png
rename to dev/assets/dnyvvec.DCSEWFbY.png
diff --git a/dev/assets/vozhwyd.BSPoQFMq.png b/dev/assets/ipwewba.BSPoQFMq.png
similarity index 100%
rename from dev/assets/vozhwyd.BSPoQFMq.png
rename to dev/assets/ipwewba.BSPoQFMq.png
diff --git a/dev/assets/crkzkcf.CAVjj1nl.png b/dev/assets/jkhnglw.CAVjj1nl.png
similarity index 100%
rename from dev/assets/crkzkcf.CAVjj1nl.png
rename to dev/assets/jkhnglw.CAVjj1nl.png
diff --git a/dev/assets/manual_ansatz_mps.md.C62jyDkY.js b/dev/assets/manual_ansatz_mps.md.DpMxNGsl.js
similarity index 93%
rename from dev/assets/manual_ansatz_mps.md.C62jyDkY.js
rename to dev/assets/manual_ansatz_mps.md.DpMxNGsl.js
index 3306cabe4..22589113e 100644
--- a/dev/assets/manual_ansatz_mps.md.C62jyDkY.js
+++ b/dev/assets/manual_ansatz_mps.md.DpMxNGsl.js
@@ -1 +1 @@
-import{_ as e,c as a,a5 as r,o}from"./chunks/framework.B1oJu5R7.js";const s="/Tenet.jl/dev/assets/vozhwyd.BSPoQFMq.png",n="/Tenet.jl/dev/assets/crkzkcf.CAVjj1nl.png",h=JSON.parse('{"title":"Matrix Product States (MPS)","description":"","frontmatter":{},"headers":[],"relativePath":"manual/ansatz/mps.md","filePath":"manual/ansatz/mps.md","lastUpdated":null}'),i={name:"manual/ansatz/mps.md"};function d(c,t,p,u,l,P){return o(),a("div",null,t[0]||(t[0]=[r('

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

',5)]))}const M=e(i,[["render",d]]);export{h as __pageData,M as default}; +import{_ as e,c as a,a5 as r,o}from"./chunks/framework.B1oJu5R7.js";const s="/Tenet.jl/dev/assets/ipwewba.BSPoQFMq.png",n="/Tenet.jl/dev/assets/jkhnglw.CAVjj1nl.png",h=JSON.parse('{"title":"Matrix Product States (MPS)","description":"","frontmatter":{},"headers":[],"relativePath":"manual/ansatz/mps.md","filePath":"manual/ansatz/mps.md","lastUpdated":null}'),i={name:"manual/ansatz/mps.md"};function d(c,t,p,u,l,P){return o(),a("div",null,t[0]||(t[0]=[r('

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

',5)]))}const M=e(i,[["render",d]]);export{h as __pageData,M as default}; diff --git a/dev/assets/manual_ansatz_mps.md.C62jyDkY.lean.js b/dev/assets/manual_ansatz_mps.md.DpMxNGsl.lean.js similarity index 93% rename from dev/assets/manual_ansatz_mps.md.C62jyDkY.lean.js rename to dev/assets/manual_ansatz_mps.md.DpMxNGsl.lean.js index 3306cabe4..22589113e 100644 --- a/dev/assets/manual_ansatz_mps.md.C62jyDkY.lean.js +++ b/dev/assets/manual_ansatz_mps.md.DpMxNGsl.lean.js @@ -1 +1 @@ -import{_ as e,c as a,a5 as r,o}from"./chunks/framework.B1oJu5R7.js";const s="/Tenet.jl/dev/assets/vozhwyd.BSPoQFMq.png",n="/Tenet.jl/dev/assets/crkzkcf.CAVjj1nl.png",h=JSON.parse('{"title":"Matrix Product States (MPS)","description":"","frontmatter":{},"headers":[],"relativePath":"manual/ansatz/mps.md","filePath":"manual/ansatz/mps.md","lastUpdated":null}'),i={name:"manual/ansatz/mps.md"};function d(c,t,p,u,l,P){return o(),a("div",null,t[0]||(t[0]=[r('

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

',5)]))}const M=e(i,[["render",d]]);export{h as __pageData,M as default}; +import{_ as e,c as a,a5 as r,o}from"./chunks/framework.B1oJu5R7.js";const s="/Tenet.jl/dev/assets/ipwewba.BSPoQFMq.png",n="/Tenet.jl/dev/assets/jkhnglw.CAVjj1nl.png",h=JSON.parse('{"title":"Matrix Product States (MPS)","description":"","frontmatter":{},"headers":[],"relativePath":"manual/ansatz/mps.md","filePath":"manual/ansatz/mps.md","lastUpdated":null}'),i={name:"manual/ansatz/mps.md"};function d(c,t,p,u,l,P){return o(),a("div",null,t[0]||(t[0]=[r('

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

',5)]))}const M=e(i,[["render",d]]);export{h as __pageData,M as default}; diff --git a/dev/assets/manual_quantum.md.WCVF5RCt.js b/dev/assets/manual_quantum.md.BunFFBiF.js similarity index 99% rename from dev/assets/manual_quantum.md.WCVF5RCt.js rename to dev/assets/manual_quantum.md.BunFFBiF.js index d263dbccb..7306df890 100644 --- a/dev/assets/manual_quantum.md.WCVF5RCt.js +++ b/dev/assets/manual_quantum.md.BunFFBiF.js @@ -1,4 +1,4 @@ -import{_ as l,c as t,j as i,a,a5 as n,o as e}from"./chunks/framework.B1oJu5R7.js";const h="/Tenet.jl/dev/assets/qmushen.DCSEWFbY.png",p="/Tenet.jl/dev/assets/gmrnxrd.C4FqEdjF.png",T=JSON.parse('{"title":"Quantum Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/quantum.md","filePath":"manual/quantum.md","lastUpdated":null}'),k={name:"manual/quantum.md"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.204ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4510.1 1000","aria-hidden":"true"};function g(c,s,y,u,F,C){return e(),t("div",null,[s[10]||(s[10]=i("h1",{id:"Quantum-Tensor-Networks",tabindex:"-1"},[a("Quantum Tensor Networks "),i("a",{class:"header-anchor",href:"#Quantum-Tensor-Networks","aria-label":'Permalink to "Quantum Tensor Networks {#Quantum-Tensor-Networks}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Quantum mechanics is a generalization of probability theory to complex probabilities")),s[3]||(s[3]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),s[4]||(s[4]=a(" with a very nice property: all of its objects are linear entities")),s[5]||(s[5]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),s[6]||(s[6]=a(". A quantum state can be viewed as a vector-like object that represents a complex probability distribution, and a quantum operator can be viewed as a matrix-like object that represents a transformation of the probability distribution (so it preserves that the sum of probabilities is ")),i("mjx-container",r,[(e(),t("svg",d,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mn"},[i("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mn",null,"1")])],-1))]),s[7]||(s[7]=a(")."))]),s[11]||(s[11]=n(`

⚠️ WIP

... Tensor Network states and operators can efficiently represent some vectors living in an exponentially large vector space! ...

The Site type

A Site is a helper type for representing sites.

julia
julia> Site(1)
+import{_ as l,c as t,j as i,a,a5 as n,o as e}from"./chunks/framework.B1oJu5R7.js";const h="/Tenet.jl/dev/assets/dnyvvec.DCSEWFbY.png",p="/Tenet.jl/dev/assets/szaubeg.C4FqEdjF.png",T=JSON.parse('{"title":"Quantum Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/quantum.md","filePath":"manual/quantum.md","lastUpdated":null}'),k={name:"manual/quantum.md"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.204ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4510.1 1000","aria-hidden":"true"};function g(c,s,y,u,F,C){return e(),t("div",null,[s[10]||(s[10]=i("h1",{id:"Quantum-Tensor-Networks",tabindex:"-1"},[a("Quantum Tensor Networks "),i("a",{class:"header-anchor",href:"#Quantum-Tensor-Networks","aria-label":'Permalink to "Quantum Tensor Networks {#Quantum-Tensor-Networks}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Quantum mechanics is a generalization of probability theory to complex probabilities")),s[3]||(s[3]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),s[4]||(s[4]=a(" with a very nice property: all of its objects are linear entities")),s[5]||(s[5]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),s[6]||(s[6]=a(". A quantum state can be viewed as a vector-like object that represents a complex probability distribution, and a quantum operator can be viewed as a matrix-like object that represents a transformation of the probability distribution (so it preserves that the sum of probabilities is ")),i("mjx-container",r,[(e(),t("svg",d,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mn"},[i("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mn",null,"1")])],-1))]),s[7]||(s[7]=a(")."))]),s[11]||(s[11]=n(`

⚠️ WIP

... Tensor Network states and operators can efficiently represent some vectors living in an exponentially large vector space! ...

The Site type

A Site is a helper type for representing sites.

julia
julia> Site(1)
 1
 
 julia> site"1"
diff --git a/dev/assets/manual_quantum.md.WCVF5RCt.lean.js b/dev/assets/manual_quantum.md.BunFFBiF.lean.js
similarity index 99%
rename from dev/assets/manual_quantum.md.WCVF5RCt.lean.js
rename to dev/assets/manual_quantum.md.BunFFBiF.lean.js
index d263dbccb..7306df890 100644
--- a/dev/assets/manual_quantum.md.WCVF5RCt.lean.js
+++ b/dev/assets/manual_quantum.md.BunFFBiF.lean.js
@@ -1,4 +1,4 @@
-import{_ as l,c as t,j as i,a,a5 as n,o as e}from"./chunks/framework.B1oJu5R7.js";const h="/Tenet.jl/dev/assets/qmushen.DCSEWFbY.png",p="/Tenet.jl/dev/assets/gmrnxrd.C4FqEdjF.png",T=JSON.parse('{"title":"Quantum Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/quantum.md","filePath":"manual/quantum.md","lastUpdated":null}'),k={name:"manual/quantum.md"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.204ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4510.1 1000","aria-hidden":"true"};function g(c,s,y,u,F,C){return e(),t("div",null,[s[10]||(s[10]=i("h1",{id:"Quantum-Tensor-Networks",tabindex:"-1"},[a("Quantum Tensor Networks "),i("a",{class:"header-anchor",href:"#Quantum-Tensor-Networks","aria-label":'Permalink to "Quantum Tensor Networks {#Quantum-Tensor-Networks}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Quantum mechanics is a generalization of probability theory to complex probabilities")),s[3]||(s[3]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),s[4]||(s[4]=a(" with a very nice property: all of its objects are linear entities")),s[5]||(s[5]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),s[6]||(s[6]=a(". A quantum state can be viewed as a vector-like object that represents a complex probability distribution, and a quantum operator can be viewed as a matrix-like object that represents a transformation of the probability distribution (so it preserves that the sum of probabilities is ")),i("mjx-container",r,[(e(),t("svg",d,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mn"},[i("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mn",null,"1")])],-1))]),s[7]||(s[7]=a(")."))]),s[11]||(s[11]=n(`

⚠️ WIP

... Tensor Network states and operators can efficiently represent some vectors living in an exponentially large vector space! ...

The Site type

A Site is a helper type for representing sites.

julia
julia> Site(1)
+import{_ as l,c as t,j as i,a,a5 as n,o as e}from"./chunks/framework.B1oJu5R7.js";const h="/Tenet.jl/dev/assets/dnyvvec.DCSEWFbY.png",p="/Tenet.jl/dev/assets/szaubeg.C4FqEdjF.png",T=JSON.parse('{"title":"Quantum Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/quantum.md","filePath":"manual/quantum.md","lastUpdated":null}'),k={name:"manual/quantum.md"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.131ex",height:"1.507ex",role:"img",focusable:"false",viewBox:"0 -666 500 666","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"10.204ex",height:"2.262ex",role:"img",focusable:"false",viewBox:"0 -750 4510.1 1000","aria-hidden":"true"};function g(c,s,y,u,F,C){return e(),t("div",null,[s[10]||(s[10]=i("h1",{id:"Quantum-Tensor-Networks",tabindex:"-1"},[a("Quantum Tensor Networks "),i("a",{class:"header-anchor",href:"#Quantum-Tensor-Networks","aria-label":'Permalink to "Quantum Tensor Networks {#Quantum-Tensor-Networks}"'},"​")],-1)),i("p",null,[s[2]||(s[2]=a("Quantum mechanics is a generalization of probability theory to complex probabilities")),s[3]||(s[3]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),s[4]||(s[4]=a(" with a very nice property: all of its objects are linear entities")),s[5]||(s[5]=i("sup",{class:"footnote-ref"},[i("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),s[6]||(s[6]=a(". A quantum state can be viewed as a vector-like object that represents a complex probability distribution, and a quantum operator can be viewed as a matrix-like object that represents a transformation of the probability distribution (so it preserves that the sum of probabilities is ")),i("mjx-container",r,[(e(),t("svg",d,s[0]||(s[0]=[i("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[i("g",{"data-mml-node":"math"},[i("g",{"data-mml-node":"mn"},[i("path",{"data-c":"31",d:"M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z",style:{"stroke-width":"3"}})])])],-1)]))),s[1]||(s[1]=i("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[i("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[i("mn",null,"1")])],-1))]),s[7]||(s[7]=a(")."))]),s[11]||(s[11]=n(`

⚠️ WIP

... Tensor Network states and operators can efficiently represent some vectors living in an exponentially large vector space! ...

The Site type

A Site is a helper type for representing sites.

julia
julia> Site(1)
 1
 
 julia> site"1"
diff --git a/dev/assets/manual_tensor-network.md.uezHtmX5.js b/dev/assets/manual_tensor-network.md.BBYri5cY.js
similarity index 99%
rename from dev/assets/manual_tensor-network.md.uezHtmX5.js
rename to dev/assets/manual_tensor-network.md.BBYri5cY.js
index 176eb7e0c..e809f55ea 100644
--- a/dev/assets/manual_tensor-network.md.uezHtmX5.js
+++ b/dev/assets/manual_tensor-network.md.BBYri5cY.js
@@ -1,4 +1,4 @@
-import{_ as h,c as n,j as s,a,a5 as t,o as e}from"./chunks/framework.B1oJu5R7.js";const l="/Tenet.jl/dev/assets/tn-sketch-light.DTB1F17p.svg",k="/Tenet.jl/dev/assets/tn-sketch-dark.DEejwNzs.svg",p="/Tenet.jl/dev/assets/tensor-matmul-light.DCi0WEHh.svg",r="/Tenet.jl/dev/assets/tensor-matmul-dark.xhCz3rZB.svg",d="/Tenet.jl/dev/assets/cblfvlm.B6-AUJNQ.png",T="/Tenet.jl/dev/assets/fqsyfdd.DoxsvESl.png",o="/Tenet.jl/dev/assets/yzghtzv.BAfAYm2R.png",Q="/Tenet.jl/dev/assets/eeyglrh.CiEHhneS.png",E="/Tenet.jl/dev/assets/dmoxukl.B1dF7YaL.png",D=JSON.parse('{"title":"Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensor-network.md","filePath":"manual/tensor-network.md","lastUpdated":null}'),g={name:"manual/tensor-network.md"},y={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"30.932ex",height:"5.208ex",role:"img",focusable:"false",viewBox:"0 -950 13672 2302","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.148ex"},xmlns:"http://www.w3.org/2000/svg",width:"43.986ex",height:"5.428ex",role:"img",focusable:"false",viewBox:"0 -1449.5 19441.6 2399","aria-hidden":"true"};function C(u,i,f,B,w,b){return e(),n("div",null,[i[4]||(i[4]=s("h1",{id:"Tensor-Networks",tabindex:"-1"},[a("Tensor Networks "),s("a",{class:"header-anchor",href:"#Tensor-Networks","aria-label":'Permalink to "Tensor Networks {#Tensor-Networks}"'},"​")],-1)),i[5]||(i[5]=s("p",null,[a("When the number of tensors in some einsum expression starts to grow, the traditional written mathematical notation starts being inadecuate and it's prone to errors. Physicists noticed about this and developed"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),a(" a graphical notation called "),s("em",null,"Tensor Networks"),a(", in which tensors of a einsum are represented by the vertices of a graph and the edges are the tensor indices connecting tensors.")],-1)),i[6]||(i[6]=s("p",null,"For example, the following equation...",-1)),s("mjx-container",y,[(e(),n("svg",c,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"k"),s("mi",null,"l"),s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"m")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"n"),s("mi",null,"j"),s("mi",null,"k")])]),s("msub",null,[s("mi",null,"D"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"p"),s("mi",null,"k"),s("mi",null,"l")])]),s("msub",null,[s("mi",null,"E"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o")])]),s("msub",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"o"),s("mi",null,"l")])])])],-1))]),i[7]||(i[7]=t('

...can be represented visually as Sketch of a Tensor NetworkSketch of a Tensor Network (dark mode)

Not exclusively, but much of the research on Tensor Networks comes from the physics fields, so it's to be expected that the majority of Tensor Network libraries are written from the physics point of view. This has some consequences on how the abstractions are implemented and what interface is offered to the user. For example, some libraries only offer access to certain structured Tensor Networks like MPS or PEPS, forbiding modification of the graph topology. This is completely fine, but it's not the design philosophy of Tenet.

Instead, Tenet constructs abstractions layer by layer, starting from the most essential and adding more and more details for sofistification. Each layers consists of an abstract type, that defines the interface to be consumed, and a concrete type, that implements the interface. Layers build up by concrete types inheriting from the parent abstract type and composing the parent concrete type. More information can be found in Inheritance and Traits. The most essential of these layers in Tenet is the TensorNetwork type.

The TensorNetwork type

In Tenet, Tensor Networks are represented by the TensorNetwork type. In order to fit all posible use-cases of TensorNetwork implements a hypergraph[2] of Tensor objects, with support for open-indices.

For example, the example above can be constructed as follows:

julia
julia> tn = TensorNetwork([
+import{_ as h,c as n,j as s,a,a5 as t,o as e}from"./chunks/framework.B1oJu5R7.js";const l="/Tenet.jl/dev/assets/tn-sketch-light.DTB1F17p.svg",k="/Tenet.jl/dev/assets/tn-sketch-dark.DEejwNzs.svg",p="/Tenet.jl/dev/assets/tensor-matmul-light.DCi0WEHh.svg",r="/Tenet.jl/dev/assets/tensor-matmul-dark.xhCz3rZB.svg",d="/Tenet.jl/dev/assets/rmmtjxg.B6-AUJNQ.png",T="/Tenet.jl/dev/assets/utsnnjz.DoxsvESl.png",o="/Tenet.jl/dev/assets/szofggk.xhSXnThi.png",Q="/Tenet.jl/dev/assets/mvyjnss.CiEHhneS.png",E="/Tenet.jl/dev/assets/mbvmgwa.B1dF7YaL.png",D=JSON.parse('{"title":"Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensor-network.md","filePath":"manual/tensor-network.md","lastUpdated":null}'),g={name:"manual/tensor-network.md"},y={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"30.932ex",height:"5.208ex",role:"img",focusable:"false",viewBox:"0 -950 13672 2302","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.148ex"},xmlns:"http://www.w3.org/2000/svg",width:"43.986ex",height:"5.428ex",role:"img",focusable:"false",viewBox:"0 -1449.5 19441.6 2399","aria-hidden":"true"};function C(u,i,f,B,w,b){return e(),n("div",null,[i[4]||(i[4]=s("h1",{id:"Tensor-Networks",tabindex:"-1"},[a("Tensor Networks "),s("a",{class:"header-anchor",href:"#Tensor-Networks","aria-label":'Permalink to "Tensor Networks {#Tensor-Networks}"'},"​")],-1)),i[5]||(i[5]=s("p",null,[a("When the number of tensors in some einsum expression starts to grow, the traditional written mathematical notation starts being inadecuate and it's prone to errors. Physicists noticed about this and developed"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),a(" a graphical notation called "),s("em",null,"Tensor Networks"),a(", in which tensors of a einsum are represented by the vertices of a graph and the edges are the tensor indices connecting tensors.")],-1)),i[6]||(i[6]=s("p",null,"For example, the following equation...",-1)),s("mjx-container",y,[(e(),n("svg",c,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"k"),s("mi",null,"l"),s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"m")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"n"),s("mi",null,"j"),s("mi",null,"k")])]),s("msub",null,[s("mi",null,"D"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"p"),s("mi",null,"k"),s("mi",null,"l")])]),s("msub",null,[s("mi",null,"E"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o")])]),s("msub",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"o"),s("mi",null,"l")])])])],-1))]),i[7]||(i[7]=t('

...can be represented visually as Sketch of a Tensor NetworkSketch of a Tensor Network (dark mode)

Not exclusively, but much of the research on Tensor Networks comes from the physics fields, so it's to be expected that the majority of Tensor Network libraries are written from the physics point of view. This has some consequences on how the abstractions are implemented and what interface is offered to the user. For example, some libraries only offer access to certain structured Tensor Networks like MPS or PEPS, forbiding modification of the graph topology. This is completely fine, but it's not the design philosophy of Tenet.

Instead, Tenet constructs abstractions layer by layer, starting from the most essential and adding more and more details for sofistification. Each layers consists of an abstract type, that defines the interface to be consumed, and a concrete type, that implements the interface. Layers build up by concrete types inheriting from the parent abstract type and composing the parent concrete type. More information can be found in Inheritance and Traits. The most essential of these layers in Tenet is the TensorNetwork type.

The TensorNetwork type

In Tenet, Tensor Networks are represented by the TensorNetwork type. In order to fit all posible use-cases of TensorNetwork implements a hypergraph[2] of Tensor objects, with support for open-indices.

For example, the example above can be constructed as follows:

julia
julia> tn = TensorNetwork([
            Tensor(zeros(2,2), (:i, :m)), # A
            Tensor(zeros(2,2,2), (:i, :j, :p)), # B
            Tensor(zeros(2,2,2), (:n, :j, :k)), # C
diff --git a/dev/assets/manual_tensor-network.md.uezHtmX5.lean.js b/dev/assets/manual_tensor-network.md.BBYri5cY.lean.js
similarity index 99%
rename from dev/assets/manual_tensor-network.md.uezHtmX5.lean.js
rename to dev/assets/manual_tensor-network.md.BBYri5cY.lean.js
index 176eb7e0c..e809f55ea 100644
--- a/dev/assets/manual_tensor-network.md.uezHtmX5.lean.js
+++ b/dev/assets/manual_tensor-network.md.BBYri5cY.lean.js
@@ -1,4 +1,4 @@
-import{_ as h,c as n,j as s,a,a5 as t,o as e}from"./chunks/framework.B1oJu5R7.js";const l="/Tenet.jl/dev/assets/tn-sketch-light.DTB1F17p.svg",k="/Tenet.jl/dev/assets/tn-sketch-dark.DEejwNzs.svg",p="/Tenet.jl/dev/assets/tensor-matmul-light.DCi0WEHh.svg",r="/Tenet.jl/dev/assets/tensor-matmul-dark.xhCz3rZB.svg",d="/Tenet.jl/dev/assets/cblfvlm.B6-AUJNQ.png",T="/Tenet.jl/dev/assets/fqsyfdd.DoxsvESl.png",o="/Tenet.jl/dev/assets/yzghtzv.BAfAYm2R.png",Q="/Tenet.jl/dev/assets/eeyglrh.CiEHhneS.png",E="/Tenet.jl/dev/assets/dmoxukl.B1dF7YaL.png",D=JSON.parse('{"title":"Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensor-network.md","filePath":"manual/tensor-network.md","lastUpdated":null}'),g={name:"manual/tensor-network.md"},y={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"30.932ex",height:"5.208ex",role:"img",focusable:"false",viewBox:"0 -950 13672 2302","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.148ex"},xmlns:"http://www.w3.org/2000/svg",width:"43.986ex",height:"5.428ex",role:"img",focusable:"false",viewBox:"0 -1449.5 19441.6 2399","aria-hidden":"true"};function C(u,i,f,B,w,b){return e(),n("div",null,[i[4]||(i[4]=s("h1",{id:"Tensor-Networks",tabindex:"-1"},[a("Tensor Networks "),s("a",{class:"header-anchor",href:"#Tensor-Networks","aria-label":'Permalink to "Tensor Networks {#Tensor-Networks}"'},"​")],-1)),i[5]||(i[5]=s("p",null,[a("When the number of tensors in some einsum expression starts to grow, the traditional written mathematical notation starts being inadecuate and it's prone to errors. Physicists noticed about this and developed"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),a(" a graphical notation called "),s("em",null,"Tensor Networks"),a(", in which tensors of a einsum are represented by the vertices of a graph and the edges are the tensor indices connecting tensors.")],-1)),i[6]||(i[6]=s("p",null,"For example, the following equation...",-1)),s("mjx-container",y,[(e(),n("svg",c,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"k"),s("mi",null,"l"),s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"m")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"n"),s("mi",null,"j"),s("mi",null,"k")])]),s("msub",null,[s("mi",null,"D"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"p"),s("mi",null,"k"),s("mi",null,"l")])]),s("msub",null,[s("mi",null,"E"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o")])]),s("msub",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"o"),s("mi",null,"l")])])])],-1))]),i[7]||(i[7]=t('

...can be represented visually as Sketch of a Tensor NetworkSketch of a Tensor Network (dark mode)

Not exclusively, but much of the research on Tensor Networks comes from the physics fields, so it's to be expected that the majority of Tensor Network libraries are written from the physics point of view. This has some consequences on how the abstractions are implemented and what interface is offered to the user. For example, some libraries only offer access to certain structured Tensor Networks like MPS or PEPS, forbiding modification of the graph topology. This is completely fine, but it's not the design philosophy of Tenet.

Instead, Tenet constructs abstractions layer by layer, starting from the most essential and adding more and more details for sofistification. Each layers consists of an abstract type, that defines the interface to be consumed, and a concrete type, that implements the interface. Layers build up by concrete types inheriting from the parent abstract type and composing the parent concrete type. More information can be found in Inheritance and Traits. The most essential of these layers in Tenet is the TensorNetwork type.

The TensorNetwork type

In Tenet, Tensor Networks are represented by the TensorNetwork type. In order to fit all posible use-cases of TensorNetwork implements a hypergraph[2] of Tensor objects, with support for open-indices.

For example, the example above can be constructed as follows:

julia
julia> tn = TensorNetwork([
+import{_ as h,c as n,j as s,a,a5 as t,o as e}from"./chunks/framework.B1oJu5R7.js";const l="/Tenet.jl/dev/assets/tn-sketch-light.DTB1F17p.svg",k="/Tenet.jl/dev/assets/tn-sketch-dark.DEejwNzs.svg",p="/Tenet.jl/dev/assets/tensor-matmul-light.DCi0WEHh.svg",r="/Tenet.jl/dev/assets/tensor-matmul-dark.xhCz3rZB.svg",d="/Tenet.jl/dev/assets/rmmtjxg.B6-AUJNQ.png",T="/Tenet.jl/dev/assets/utsnnjz.DoxsvESl.png",o="/Tenet.jl/dev/assets/szofggk.xhSXnThi.png",Q="/Tenet.jl/dev/assets/mvyjnss.CiEHhneS.png",E="/Tenet.jl/dev/assets/mbvmgwa.B1dF7YaL.png",D=JSON.parse('{"title":"Tensor Networks","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensor-network.md","filePath":"manual/tensor-network.md","lastUpdated":null}'),g={name:"manual/tensor-network.md"},y={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},c={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.059ex"},xmlns:"http://www.w3.org/2000/svg",width:"30.932ex",height:"5.208ex",role:"img",focusable:"false",viewBox:"0 -950 13672 2302","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},F={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.148ex"},xmlns:"http://www.w3.org/2000/svg",width:"43.986ex",height:"5.428ex",role:"img",focusable:"false",viewBox:"0 -1449.5 19441.6 2399","aria-hidden":"true"};function C(u,i,f,B,w,b){return e(),n("div",null,[i[4]||(i[4]=s("h1",{id:"Tensor-Networks",tabindex:"-1"},[a("Tensor Networks "),s("a",{class:"header-anchor",href:"#Tensor-Networks","aria-label":'Permalink to "Tensor Networks {#Tensor-Networks}"'},"​")],-1)),i[5]||(i[5]=s("p",null,[a("When the number of tensors in some einsum expression starts to grow, the traditional written mathematical notation starts being inadecuate and it's prone to errors. Physicists noticed about this and developed"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),a(" a graphical notation called "),s("em",null,"Tensor Networks"),a(", in which tensors of a einsum are represented by the vertices of a graph and the edges are the tensor indices connecting tensors.")],-1)),i[6]||(i[6]=s("p",null,"For example, the following equation...",-1)),s("mjx-container",y,[(e(),n("svg",c,i[0]||(i[0]=[t('',1)]))),i[1]||(i[1]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"k"),s("mi",null,"l"),s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"m")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j"),s("mi",null,"p")])]),s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"n"),s("mi",null,"j"),s("mi",null,"k")])]),s("msub",null,[s("mi",null,"D"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"p"),s("mi",null,"k"),s("mi",null,"l")])]),s("msub",null,[s("mi",null,"E"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"m"),s("mi",null,"n"),s("mi",null,"o")])]),s("msub",null,[s("mi",null,"F"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"o"),s("mi",null,"l")])])])],-1))]),i[7]||(i[7]=t('

...can be represented visually as Sketch of a Tensor NetworkSketch of a Tensor Network (dark mode)

Not exclusively, but much of the research on Tensor Networks comes from the physics fields, so it's to be expected that the majority of Tensor Network libraries are written from the physics point of view. This has some consequences on how the abstractions are implemented and what interface is offered to the user. For example, some libraries only offer access to certain structured Tensor Networks like MPS or PEPS, forbiding modification of the graph topology. This is completely fine, but it's not the design philosophy of Tenet.

Instead, Tenet constructs abstractions layer by layer, starting from the most essential and adding more and more details for sofistification. Each layers consists of an abstract type, that defines the interface to be consumed, and a concrete type, that implements the interface. Layers build up by concrete types inheriting from the parent abstract type and composing the parent concrete type. More information can be found in Inheritance and Traits. The most essential of these layers in Tenet is the TensorNetwork type.

The TensorNetwork type

In Tenet, Tensor Networks are represented by the TensorNetwork type. In order to fit all posible use-cases of TensorNetwork implements a hypergraph[2] of Tensor objects, with support for open-indices.

For example, the example above can be constructed as follows:

julia
julia> tn = TensorNetwork([
            Tensor(zeros(2,2), (:i, :m)), # A
            Tensor(zeros(2,2,2), (:i, :j, :p)), # B
            Tensor(zeros(2,2,2), (:n, :j, :k)), # C
diff --git a/dev/assets/manual_tensors.md.a3W2w8t2.js b/dev/assets/manual_tensors.md.CzWy8o0t.js
similarity index 96%
rename from dev/assets/manual_tensors.md.a3W2w8t2.js
rename to dev/assets/manual_tensors.md.CzWy8o0t.js
index 5c45c2904..774afcf9a 100644
--- a/dev/assets/manual_tensors.md.a3W2w8t2.js
+++ b/dev/assets/manual_tensors.md.CzWy8o0t.js
@@ -1,24 +1,24 @@
 import{_ as l,c as i,j as s,a as n,a5 as e,o as t}from"./chunks/framework.B1oJu5R7.js";const R=JSON.parse('{"title":"Tensors","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensors.md","filePath":"manual/tensors.md","lastUpdated":null}'),h={name:"manual/tensors.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Q={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.593ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -677 704 677","aria-hidden":"true"},k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},T={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.072ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.876ex",height:"1.618ex",role:"img",focusable:"false",viewBox:"0 -683 829 715","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.072ex"},xmlns:"http://www.w3.org/2000/svg",width:"31.017ex",height:"2.207ex",role:"img",focusable:"false",viewBox:"0 -943.3 13709.6 975.3","aria-hidden":"true"},c={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"49.273ex",height:"2.7ex",role:"img",focusable:"false",viewBox:"0 -943.3 21778.8 1193.3","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},u={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},x={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.944ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 6605.1 2142.2","aria-hidden":"true"},H={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},w={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.885ex"},xmlns:"http://www.w3.org/2000/svg",width:"9.208ex",height:"2.903ex",role:"img",focusable:"false",viewBox:"0 -891.7 4070.1 1283","aria-hidden":"true"},f={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.006ex"},xmlns:"http://www.w3.org/2000/svg",width:"16.345ex",height:"5.155ex",role:"img",focusable:"false",viewBox:"0 -950 7224.6 2278.6","aria-hidden":"true"},L={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"12.75ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 5635.5 2142.2","aria-hidden":"true"},v={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},M={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.536ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 6866.8 2142.2","aria-hidden":"true"};function D(j,a,A,Z,V,O){return t(),i("div",null,[a[35]||(a[35]=s("h1",{id:"tensors",tabindex:"-1"},[n("Tensors "),s("a",{class:"header-anchor",href:"#tensors","aria-label":'Permalink to "Tensors"'},"​")],-1)),a[36]||(a[36]=s("p",null,[n("If you have reached here, you probably know what a tensor is, and probably have heard many jokes about "),s("em",null,"what a tensor is"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),n(". Nevertheless, we are gonna give a brief remainder.")],-1)),s("p",null,[a[8]||(a[8]=n("A tensor ")),s("mjx-container",p,[(t(),i("svg",Q,a[0]||(a[0]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D447",d:"M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z",style:{"stroke-width":"3"}})])])],-1)]))),a[1]||(a[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"T")])],-1))]),a[9]||(a[9]=n(" of order")),a[10]||(a[10]=s("sup",{class:"footnote-ref"},[s("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),a[11]||(a[11]=n()),s("mjx-container",k,[(t(),i("svg",T,a[2]||(a[2]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[3]||(a[3]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[12]||(a[12]=n(" is a multilinear")),a[13]||(a[13]=s("sup",{class:"footnote-ref"},[s("a",{href:"#fn3",id:"fnref3"},"[3]")],-1)),a[14]||(a[14]=n(" function between ")),s("mjx-container",d,[(t(),i("svg",r,a[4]||(a[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[5]||(a[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[15]||(a[15]=n(" vector spaces over a field ")),s("mjx-container",o,[(t(),i("svg",g,a[6]||(a[6]=[e('',1)]))),a[7]||(a[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[16]||(a[16]=n("."))]),s("mjx-container",m,[(t(),i("svg",y,a[17]||(a[17]=[e('',1)]))),a[18]||(a[18]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"T"),s("mo",null,":"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",{stretchy:"false"},")")])]),s("mo",null,"×"),s("mo",null,"⋯"),s("mo",null,"×"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mi",null,"n"),s("mo",{stretchy:"false"},")")])]),s("mo",{stretchy:"false"},"↦"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[37]||(a[37]=s("p",null,"In layman's terms, you can view a tensor as a linear function that maps a set of vectors to a scalar.",-1)),s("mjx-container",c,[(t(),i("svg",E,a[19]||(a[19]=[e('',1)]))),a[20]||(a[20]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"T"),s("mo",{stretchy:"false"},"("),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",{stretchy:"false"},")")])]),s("mo",null,","),s("mo",null,"…"),s("mo",null,","),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mi",null,"n"),s("mo",{stretchy:"false"},")")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mi",null,"c"),s("mo",null,"∈"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mstyle",{scriptlevel:"0"},[s("mspace",{width:"2em"})]),s("mstyle",{scriptlevel:"0"},[s("mspace",{width:"2em"})]),s("mi",{mathvariant:"normal"},"∀"),s("mi",null,"i"),s("mo",null,","),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mi",null,"i"),s("mo",{stretchy:"false"},")")])]),s("mo",null,"∈"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mi",null,"i"),s("mo",{stretchy:"false"},")")])])])],-1))]),s("p",null,[a[23]||(a[23]=n("Just like with matrices and vectors, ")),s("mjx-container",F,[(t(),i("svg",C,a[21]||(a[21]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[22]||(a[22]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[24]||(a[24]=n("-dimensional arrays of numbers can be used to represent tensors. Furthermore, scalars, vectors and matrices can be viewed as tensors of order 0, 1 and 2, respectively."))]),a[38]||(a[38]=s("p",null,"The dimensions of the tensors are usually identified with labels and known as tensor indices or just indices. By appropeately fixing the indices in a expression, a lot of different linear algebra operations can be described.",-1)),a[39]||(a[39]=s("p",null,"For example, the trace operation...",-1)),s("mjx-container",u,[(t(),i("svg",x,a[25]||(a[25]=[e('',1)]))),a[26]||(a[26]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"r"),s("mo",{stretchy:"false"},"("),s("mi",null,"A"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mi",null,"i")]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"i")])])])],-1))]),a[40]||(a[40]=s("p",null,"... a tranposition of dimensions...",-1)),s("mjx-container",H,[(t(),i("svg",w,a[27]||(a[27]=[e('',1)]))),a[28]||(a[28]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"j"),s("mi",null,"i")])]),s("mo",null,"="),s("msubsup",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j")]),s("mi",null,"T")])])],-1))]),a[41]||(a[41]=s("p",null,"... or a matrix multiplication.",-1)),s("mjx-container",f,[(t(),i("svg",B,a[29]||(a[29]=[e('',1)]))),a[30]||(a[30]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"k")])]),s("mo",null,"="),s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mi",null,"j")]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"j"),s("mi",null,"k")])])])],-1))]),a[42]||(a[42]=e(`

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of index names. As it subtypes AbstractArray, many array operations are automatically dispatched.

You can create a Tensor by passing an AbstractArray and a Vector or Tuple of Symbols.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
 3×5×2 Array{Float64, 3}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709
 
 julia> inds(Tᵢⱼₖ)
 (:i, :j, :k)

The dimensionality or size of each index can be consulted using the size function.

julia
julia> size(Tᵢⱼₖ)
diff --git a/dev/assets/manual_tensors.md.a3W2w8t2.lean.js b/dev/assets/manual_tensors.md.CzWy8o0t.lean.js
similarity index 96%
rename from dev/assets/manual_tensors.md.a3W2w8t2.lean.js
rename to dev/assets/manual_tensors.md.CzWy8o0t.lean.js
index 5c45c2904..774afcf9a 100644
--- a/dev/assets/manual_tensors.md.a3W2w8t2.lean.js
+++ b/dev/assets/manual_tensors.md.CzWy8o0t.lean.js
@@ -1,24 +1,24 @@
 import{_ as l,c as i,j as s,a as n,a5 as e,o as t}from"./chunks/framework.B1oJu5R7.js";const R=JSON.parse('{"title":"Tensors","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensors.md","filePath":"manual/tensors.md","lastUpdated":null}'),h={name:"manual/tensors.md"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},Q={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"0"},xmlns:"http://www.w3.org/2000/svg",width:"1.593ex",height:"1.532ex",role:"img",focusable:"false",viewBox:"0 -677 704 677","aria-hidden":"true"},k={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},T={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},d={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},r={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},o={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},g={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.072ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.876ex",height:"1.618ex",role:"img",focusable:"false",viewBox:"0 -683 829 715","aria-hidden":"true"},m={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},y={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.072ex"},xmlns:"http://www.w3.org/2000/svg",width:"31.017ex",height:"2.207ex",role:"img",focusable:"false",viewBox:"0 -943.3 13709.6 975.3","aria-hidden":"true"},c={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},E={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.566ex"},xmlns:"http://www.w3.org/2000/svg",width:"49.273ex",height:"2.7ex",role:"img",focusable:"false",viewBox:"0 -943.3 21778.8 1193.3","aria-hidden":"true"},F={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},C={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.025ex"},xmlns:"http://www.w3.org/2000/svg",width:"1.357ex",height:"1.025ex",role:"img",focusable:"false",viewBox:"0 -442 600 453","aria-hidden":"true"},u={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},x={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"14.944ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 6605.1 2142.2","aria-hidden":"true"},H={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},w={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-0.885ex"},xmlns:"http://www.w3.org/2000/svg",width:"9.208ex",height:"2.903ex",role:"img",focusable:"false",viewBox:"0 -891.7 4070.1 1283","aria-hidden":"true"},f={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},B={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-3.006ex"},xmlns:"http://www.w3.org/2000/svg",width:"16.345ex",height:"5.155ex",role:"img",focusable:"false",viewBox:"0 -950 7224.6 2278.6","aria-hidden":"true"},L={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},b={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"12.75ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 5635.5 2142.2","aria-hidden":"true"},v={class:"MathJax",jax:"SVG",display:"true",style:{direction:"ltr",display:"block","text-align":"center",margin:"1em 0",position:"relative"}},M={style:{overflow:"visible","min-height":"1px","min-width":"1px","vertical-align":"-2.697ex"},xmlns:"http://www.w3.org/2000/svg",width:"15.536ex",height:"4.847ex",role:"img",focusable:"false",viewBox:"0 -950 6866.8 2142.2","aria-hidden":"true"};function D(j,a,A,Z,V,O){return t(),i("div",null,[a[35]||(a[35]=s("h1",{id:"tensors",tabindex:"-1"},[n("Tensors "),s("a",{class:"header-anchor",href:"#tensors","aria-label":'Permalink to "Tensors"'},"​")],-1)),a[36]||(a[36]=s("p",null,[n("If you have reached here, you probably know what a tensor is, and probably have heard many jokes about "),s("em",null,"what a tensor is"),s("sup",{class:"footnote-ref"},[s("a",{href:"#fn1",id:"fnref1"},"[1]")]),n(". Nevertheless, we are gonna give a brief remainder.")],-1)),s("p",null,[a[8]||(a[8]=n("A tensor ")),s("mjx-container",p,[(t(),i("svg",Q,a[0]||(a[0]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D447",d:"M40 437Q21 437 21 445Q21 450 37 501T71 602L88 651Q93 669 101 677H569H659Q691 677 697 676T704 667Q704 661 687 553T668 444Q668 437 649 437Q640 437 637 437T631 442L629 445Q629 451 635 490T641 551Q641 586 628 604T573 629Q568 630 515 631Q469 631 457 630T439 622Q438 621 368 343T298 60Q298 48 386 46Q418 46 427 45T436 36Q436 31 433 22Q429 4 424 1L422 0Q419 0 415 0Q410 0 363 1T228 2Q99 2 64 0H49Q43 6 43 9T45 27Q49 40 55 46H83H94Q174 46 189 55Q190 56 191 56Q196 59 201 76T241 233Q258 301 269 344Q339 619 339 625Q339 630 310 630H279Q212 630 191 624Q146 614 121 583T67 467Q60 445 57 441T43 437H40Z",style:{"stroke-width":"3"}})])])],-1)]))),a[1]||(a[1]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"T")])],-1))]),a[9]||(a[9]=n(" of order")),a[10]||(a[10]=s("sup",{class:"footnote-ref"},[s("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),a[11]||(a[11]=n()),s("mjx-container",k,[(t(),i("svg",T,a[2]||(a[2]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[3]||(a[3]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[12]||(a[12]=n(" is a multilinear")),a[13]||(a[13]=s("sup",{class:"footnote-ref"},[s("a",{href:"#fn3",id:"fnref3"},"[3]")],-1)),a[14]||(a[14]=n(" function between ")),s("mjx-container",d,[(t(),i("svg",r,a[4]||(a[4]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[5]||(a[5]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[15]||(a[15]=n(" vector spaces over a field ")),s("mjx-container",o,[(t(),i("svg",g,a[6]||(a[6]=[e('',1)]))),a[7]||(a[7]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[16]||(a[16]=n("."))]),s("mjx-container",m,[(t(),i("svg",y,a[17]||(a[17]=[e('',1)]))),a[18]||(a[18]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"T"),s("mo",null,":"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",{stretchy:"false"},")")])]),s("mo",null,"×"),s("mo",null,"⋯"),s("mo",null,"×"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mi",null,"n"),s("mo",{stretchy:"false"},")")])]),s("mo",{stretchy:"false"},"↦"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[37]||(a[37]=s("p",null,"In layman's terms, you can view a tensor as a linear function that maps a set of vectors to a scalar.",-1)),s("mjx-container",c,[(t(),i("svg",E,a[19]||(a[19]=[e('',1)]))),a[20]||(a[20]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"T"),s("mo",{stretchy:"false"},"("),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mn",null,"1"),s("mo",{stretchy:"false"},")")])]),s("mo",null,","),s("mo",null,"…"),s("mo",null,","),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mi",null,"n"),s("mo",{stretchy:"false"},")")])]),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("mi",null,"c"),s("mo",null,"∈"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mstyle",{scriptlevel:"0"},[s("mspace",{width:"2em"})]),s("mstyle",{scriptlevel:"0"},[s("mspace",{width:"2em"})]),s("mi",{mathvariant:"normal"},"∀"),s("mi",null,"i"),s("mo",null,","),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{mathvariant:"bold"},"v")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mo",{stretchy:"false"},"("),s("mi",null,"i"),s("mo",{stretchy:"false"},")")])]),s("mo",null,"∈"),s("msup",null,[s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"dim"),s("mo",{"data-mjx-texclass":"NONE"},"⁡"),s("mo",{stretchy:"false"},"("),s("mi",null,"i"),s("mo",{stretchy:"false"},")")])])])],-1))]),s("p",null,[a[23]||(a[23]=n("Just like with matrices and vectors, ")),s("mjx-container",F,[(t(),i("svg",C,a[21]||(a[21]=[s("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[s("g",{"data-mml-node":"math"},[s("g",{"data-mml-node":"mi"},[s("path",{"data-c":"1D45B",d:"M21 287Q22 293 24 303T36 341T56 388T89 425T135 442Q171 442 195 424T225 390T231 369Q231 367 232 367L243 378Q304 442 382 442Q436 442 469 415T503 336T465 179T427 52Q427 26 444 26Q450 26 453 27Q482 32 505 65T540 145Q542 153 560 153Q580 153 580 145Q580 144 576 130Q568 101 554 73T508 17T439 -10Q392 -10 371 17T350 73Q350 92 386 193T423 345Q423 404 379 404H374Q288 404 229 303L222 291L189 157Q156 26 151 16Q138 -11 108 -11Q95 -11 87 -5T76 7T74 17Q74 30 112 180T152 343Q153 348 153 366Q153 405 129 405Q91 405 66 305Q60 285 60 284Q58 278 41 278H27Q21 284 21 287Z",style:{"stroke-width":"3"}})])])],-1)]))),a[22]||(a[22]=s("mjx-assistive-mml",{unselectable:"on",display:"inline",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",width:"auto",overflow:"hidden"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[s("mi",null,"n")])],-1))]),a[24]||(a[24]=n("-dimensional arrays of numbers can be used to represent tensors. Furthermore, scalars, vectors and matrices can be viewed as tensors of order 0, 1 and 2, respectively."))]),a[38]||(a[38]=s("p",null,"The dimensions of the tensors are usually identified with labels and known as tensor indices or just indices. By appropeately fixing the indices in a expression, a lot of different linear algebra operations can be described.",-1)),a[39]||(a[39]=s("p",null,"For example, the trace operation...",-1)),s("mjx-container",u,[(t(),i("svg",x,a[25]||(a[25]=[e('',1)]))),a[26]||(a[26]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("mi",null,"t"),s("mi",null,"r"),s("mo",{stretchy:"false"},"("),s("mi",null,"A"),s("mo",{stretchy:"false"},")"),s("mo",null,"="),s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mi",null,"i")]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"i")])])])],-1))]),a[40]||(a[40]=s("p",null,"... a tranposition of dimensions...",-1)),s("mjx-container",H,[(t(),i("svg",w,a[27]||(a[27]=[e('',1)]))),a[28]||(a[28]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"j"),s("mi",null,"i")])]),s("mo",null,"="),s("msubsup",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j")]),s("mi",null,"T")])])],-1))]),a[41]||(a[41]=s("p",null,"... or a matrix multiplication.",-1)),s("mjx-container",f,[(t(),i("svg",B,a[29]||(a[29]=[e('',1)]))),a[30]||(a[30]=s("mjx-assistive-mml",{unselectable:"on",display:"block",style:{top:"0px",left:"0px",clip:"rect(1px, 1px, 1px, 1px)","-webkit-touch-callout":"none","-webkit-user-select":"none","-khtml-user-select":"none","-moz-user-select":"none","-ms-user-select":"none","user-select":"none",position:"absolute",padding:"1px 0px 0px 0px",border:"0px",display:"block",overflow:"hidden",width:"100%"}},[s("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[s("msub",null,[s("mi",null,"C"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"k")])]),s("mo",null,"="),s("munder",null,[s("mo",{"data-mjx-texclass":"OP"},"∑"),s("mi",null,"j")]),s("msub",null,[s("mi",null,"A"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"i"),s("mi",null,"j")])]),s("msub",null,[s("mi",null,"B"),s("mrow",{"data-mjx-texclass":"ORD"},[s("mi",null,"j"),s("mi",null,"k")])])])],-1))]),a[42]||(a[42]=e(`

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of index names. As it subtypes AbstractArray, many array operations are automatically dispatched.

You can create a Tensor by passing an AbstractArray and a Vector or Tuple of Symbols.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
 3×5×2 Array{Float64, 3}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709
 
 julia> inds(Tᵢⱼₖ)
 (:i, :j, :k)

The dimensionality or size of each index can be consulted using the size function.

julia
julia> size(Tᵢⱼₖ)
diff --git a/dev/assets/dmoxukl.B1dF7YaL.png b/dev/assets/mbvmgwa.B1dF7YaL.png
similarity index 100%
rename from dev/assets/dmoxukl.B1dF7YaL.png
rename to dev/assets/mbvmgwa.B1dF7YaL.png
diff --git a/dev/assets/eeyglrh.CiEHhneS.png b/dev/assets/mvyjnss.CiEHhneS.png
similarity index 100%
rename from dev/assets/eeyglrh.CiEHhneS.png
rename to dev/assets/mvyjnss.CiEHhneS.png
diff --git a/dev/assets/cblfvlm.B6-AUJNQ.png b/dev/assets/rmmtjxg.B6-AUJNQ.png
similarity index 100%
rename from dev/assets/cblfvlm.B6-AUJNQ.png
rename to dev/assets/rmmtjxg.B6-AUJNQ.png
diff --git a/dev/assets/gmrnxrd.C4FqEdjF.png b/dev/assets/szaubeg.C4FqEdjF.png
similarity index 100%
rename from dev/assets/gmrnxrd.C4FqEdjF.png
rename to dev/assets/szaubeg.C4FqEdjF.png
diff --git a/dev/assets/szofggk.xhSXnThi.png b/dev/assets/szofggk.xhSXnThi.png
new file mode 100644
index 0000000000000000000000000000000000000000..89c5e671a16ecc7b790ec8cfcbffa6861af4b0bc
GIT binary patch
literal 41636
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
     
     
-    
+    
     
-    
+    
     
-    
+    
     
     
     
@@ -28,9 +28,9 @@
 tensors(tn) .|> inds
3-element Vector{Tuple{Symbol, Vararg{Symbol}}}:
  (:a,)
  (:i, :j)
- (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.9088379345081677, 0.19175585557059793], [0.9474236865107496 0.22802219992745554; 0.5138008417135007 0.537256508739335], [0.7426230548599317 0.4311975915690427; 0.553552238090315 0.6639498557198327]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
+ (:j, :k)

In order to avoid the repeated cost, we cache the results of tensors(::AbstractTensorNetwork) in a field of [TensorNetwork] with type CachedField. Such type just stores the result of the last call and a invalidation flag.

julia
tn.sorted_tensors
Tenet.CachedField{Vector{Tensor}}(true, Tensor[[0.23065139652454292, 0.39238973008403166], [0.22193836209836748 0.38278223481669893; 0.0839499635703298 0.40546728387604225], [0.11481509045441651 0.7306413990119035; 0.1758989718332704 0.8437147928830764]])

Calling push! or pop! invalidates the CachedField, so the next time tensors(::AbstractTensorNetwork) is called, it will reconstruct the cache. Because any other method that can modify the result of tensors(::AbstractTensorNetwork) relies on push! or pop!, the cache is always invalidated correctly.

julia
delete!(tn, C)
 tn.sorted_tensors.isvalid
false

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/developer/hypergraph.html b/dev/developer/hypergraph.html index a63268292..a90273ad8 100644 --- a/dev/developer/hypergraph.html +++ b/dev/developer/hypergraph.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/dev/developer/keyword-dispatch.html b/dev/developer/keyword-dispatch.html index f5e4ac7c5..cfab58109 100644 --- a/dev/developer/keyword-dispatch.html +++ b/dev/developer/keyword-dispatch.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/dev/developer/type-hierarchy.html b/dev/developer/type-hierarchy.html index 88a713b68..f582f6d80 100644 --- a/dev/developer/type-hierarchy.html +++ b/dev/developer/type-hierarchy.html @@ -9,11 +9,11 @@ - + - + - + @@ -43,8 +43,8 @@ style id3 stroke-dasharray: 5 5 style id4 stroke-dasharray: 5 5 style id5 stroke-dasharray: 5 5 -"""

Made with DocumenterVitepress.jl

- +"""

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/dev/developer/unsafe-region.html b/dev/developer/unsafe-region.html index 3f3b2f293..bb725cc0f 100644 --- a/dev/developer/unsafe-region.html +++ b/dev/developer/unsafe-region.html @@ -9,9 +9,9 @@ - + - + @@ -24,7 +24,7 @@
Skip to content

Unsafe regions

In order to avoid inconsistency issues, TensorNetwork checks the index sizes are correct whenever a Tensor is push!ed and it already contains some of the its indices. There are cases in which you may want to temporarily avoid index size checks (for performance or for ergonomy) on push! to a TensorNetwork. But mutating a TensorNetwork without checks is dangerous, as it can leave it in a inconsistent state which would lead to hard to trace errors.

Instead, we developed the @unsafe_region macro. The first argument is the AbstractTensorNetwork you want to disable the checks for, and the second argument is the code where you modify the AbstractTensorNetwork without checks.

julia
@unsafe_region tn begin
     ...
 end

When the scope of the @unsafe_region ends, it will automatically run a full check on tn to assert that the final state of the AbstractTensorNetwork is consistent.

Note that this only affects disables the checks for one AbstractTensorNetwork, but multiple @unsafe_regions can be nested.

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/hashmap.json b/dev/hashmap.json index d635874b5..76dd9f622 100644 --- a/dev/hashmap.json +++ b/dev/hashmap.json @@ -1 +1 @@ -{"api_ansatz.md":"DwU4iku3","api_mps.md":"B68ZXVF0","api_product.md":"Jubih3b1","api_quantum.md":"DXYfz5Id","api_tensor.md":"3pGAQMmL","api_tensornetwork.md":"DS4VfQ8V","api_transformations.md":"BjwsBxkj","developer_cached-field.md":"B_AWlHVq","developer_hypergraph.md":"DnUrR1jM","developer_keyword-dispatch.md":"DegxzL6h","developer_type-hierarchy.md":"DcV_8jOT","developer_unsafe-region.md":"BsAAuvMo","index.md":"PEFWTLwB","manual_ansatz_index.md":"BxGmUfl4","manual_ansatz_mps.md":"C62jyDkY","manual_ansatz_product.md":"p0l7lKKR","manual_interop.md":"Aw2QT-c5","manual_quantum.md":"WCVF5RCt","manual_tensor-network.md":"uezHtmX5","manual_tensors.md":"a3W2w8t2"} +{"api_ansatz.md":"DwU4iku3","api_mps.md":"B68ZXVF0","api_product.md":"Jubih3b1","api_quantum.md":"DXYfz5Id","api_tensor.md":"3pGAQMmL","api_tensornetwork.md":"DS4VfQ8V","api_transformations.md":"BjwsBxkj","developer_cached-field.md":"Cmyiwq3r","developer_hypergraph.md":"DnUrR1jM","developer_keyword-dispatch.md":"DegxzL6h","developer_type-hierarchy.md":"BjTa1Aju","developer_unsafe-region.md":"BsAAuvMo","index.md":"PEFWTLwB","manual_ansatz_index.md":"BxGmUfl4","manual_ansatz_mps.md":"DpMxNGsl","manual_ansatz_product.md":"p0l7lKKR","manual_interop.md":"Aw2QT-c5","manual_quantum.md":"BunFFBiF","manual_tensor-network.md":"BBYri5cY","manual_tensors.md":"CzWy8o0t"} diff --git a/dev/index.html b/dev/index.html index eeecdf53d..d83c75c9e 100644 --- a/dev/index.html +++ b/dev/index.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@
Skip to content

Tenet.jl

The Hackable Tensor Network Library

Tenet.jl

Tenet.jl is a Tensor Network library written in Julia and designed to be performant, hackable and intuitive.

BSC-Quantic's Registry

Tenet and some of its dependencies are located in our own Julia registry. In order to download Tenet, add our registry to your Julia installation by using the Pkg mode in a REPL session,

julia
using Pkg
 pkg"registry add https://github.com/bsc-quantic/Registry"

Features

  • Optimized Tensor Network contraction, powered by EinExprs

  • Tensor Network slicing/cuttings

  • Automatic Differentiation of TN contraction, powered by EinExprs and ChainRules

  • 3D visualization of large networks, powered by Makie

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/manual/ansatz/index.html b/dev/manual/ansatz/index.html index 927bd352e..638203ec7 100644 --- a/dev/manual/ansatz/index.html +++ b/dev/manual/ansatz/index.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@
Skip to content

Ansatz

The Lattice type

A Lattice is a graph whose vertices represent Sites and the edges represent the neighboring connectivity between them.

The Ansatz type

A Ansatz is a Quantum Tensor Network that stores information about Site connectivity in a Lattice.

Canonization

⚠️ WIP

The Form trait

Form dynamic trait represents the canonical form in which the Ansatz is right now. You can use the form function to consult it:

Time Evolution

In some sense, it's like the state has evolved through the operator.

[evolve!] is a high-level wrapper for different methods used for time-evolution, but currently only the "Simple Update" algorithm is implemented in simple_update!.

julia
julia> evolve!
 evolve! (generic function with 5 methods)

⚠️ WIP

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/manual/ansatz/mps.html b/dev/manual/ansatz/mps.html index bd1dbddc0..cacbee826 100644 --- a/dev/manual/ansatz/mps.html +++ b/dev/manual/ansatz/mps.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
Skip to content

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

Made with DocumenterVitepress.jl

- +
Skip to content

Matrix Product States (MPS)

Matrix Product States (MPS) are a Quantum Tensor Network ansatz whose tensors are laid out in a 1D chain. Due to this, these networks are also known as Tensor Trains in other mathematical fields. Depending on the boundary conditions, the chains can be open or closed (i.e. periodic boundary conditions).

Matrix Product Operators (MPO)

Matrix Product Operators (MPO) are the operator version of Matrix Product State (MPS). The major difference between them is that MPOs have 2 indices per site (1 input and 1 output) while MPSs only have 1 index per site (i.e. an output).

In Tenet, the generic MatrixProduct ansatz implements this topology. Type variables are used to address their functionality (State or Operator) and their boundary conditions (Open or Periodic).

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/dev/manual/ansatz/product.html b/dev/manual/ansatz/product.html index 03fcf0ae2..e62be1a81 100644 --- a/dev/manual/ansatz/product.html +++ b/dev/manual/ansatz/product.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/dev/manual/interop.html b/dev/manual/interop.html index 0ec419986..28557cf80 100644 --- a/dev/manual/interop.html +++ b/dev/manual/interop.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

Interoperation

If Tenet's design doesn't fit your case, ¡no problem!. There are other nice libraries in the wild, of which we recommend to take a look at:

  • quimb Flexible Tensor Network written in Python. Main source of inspiration for Tenet.

  • tenpy Tensor Network library written in Python with a strong focus on physics.

  • ITensors.jl and ITensorNetworks.jl Mature Tensor Network framework written in Julia.

  • tensorkrowch A new Tensor Network library built on top of PyTorch.

  • SeeMPS A recent addition to the game with support for resolution of PDEs.

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/manual/quantum.html b/dev/manual/quantum.html index 0cd6a6407..e7df1e832 100644 --- a/dev/manual/quantum.html +++ b/dev/manual/quantum.html @@ -9,11 +9,11 @@ - + - + - + @@ -43,7 +43,7 @@ TensorNetwork (#tensors=3, #inds=6) julia> qtn = Quantum(tn, Dict([site"1" => :p1, site"2" => :p2, site"3" => :p3])) -Quantum (inputs=0, outputs=3)

Note that Quantum implements the AbstractTensorNetwork contract, so it inherits all the functionality of TensorNetwork!

julia
julia> :i qtn
+Quantum (inputs=0, outputs=3)

Note that Quantum implements the AbstractTensorNetwork contract, so it inherits all the functionality of TensorNetwork!

julia
julia> :i qtn
 true
 
 julia> tensors(qtn; contains=:p1) .|> inds
@@ -94,7 +94,7 @@
 3-element Vector{Symbol}:
  :p1
  :p2
- :p3

Note

In Tenet, an open index ≠ a physical index. Physical indices are the ones used to connect and interact with other states or operators, and are only the ones marked with Sites in Quantum. Open indices not marked as physical are still virtual indices and can be later used to coomplement with other Quantum; e.g. like a quantum state purification.

Connectivity

The whole point of Quantum is to be able to connect TensorNetworks without requiring the user to manually match the indices. Quantum automatically takes care of matching input-output Sites, renaming the indices accordingly and finally connecting all tensors into one Quantum Tensor Network.

For example, the following expectation value...

ψOψ

...can be expressed in Tenet as:

julia
exp_val = merge(ψ, O, ψ')

Warning

Unlike linear algebra notation, in which time evolution goes from right-to-left, merge and merge! go from left-to-right to keep consistency with Julia semantics. This is not such a big deal as you can imagine: quantum circuits are drawn from left-to-right and there are Tensor Networks pictures in the literature where time goes down-to-up and up-to-down!

Note that adjoint and adjoint! just conjugate the tensors and switch the Sites from normal to dual (output to input) and viceversa.

The Socket trait

Depending on the number of inputs and outputs, a [Quantum] can be a state, a dual state or an operator. You can use the socket function to find out of which type it is your [Quantum] object:

julia
julia> socket(ψ)
+ :p3

Note

In Tenet, an open index ≠ a physical index. Physical indices are the ones used to connect and interact with other states or operators, and are only the ones marked with Sites in Quantum. Open indices not marked as physical are still virtual indices and can be later used to coomplement with other Quantum; e.g. like a quantum state purification.

Connectivity

The whole point of Quantum is to be able to connect TensorNetworks without requiring the user to manually match the indices. Quantum automatically takes care of matching input-output Sites, renaming the indices accordingly and finally connecting all tensors into one Quantum Tensor Network.

For example, the following expectation value...

ψOψ

...can be expressed in Tenet as:

julia
exp_val = merge(ψ, O, ψ')

Warning

Unlike linear algebra notation, in which time evolution goes from right-to-left, merge and merge! go from left-to-right to keep consistency with Julia semantics. This is not such a big deal as you can imagine: quantum circuits are drawn from left-to-right and there are Tensor Networks pictures in the literature where time goes down-to-up and up-to-down!

Note that adjoint and adjoint! just conjugate the tensors and switch the Sites from normal to dual (output to input) and viceversa.

The Socket trait

Depending on the number of inputs and outputs, a [Quantum] can be a state, a dual state or an operator. You can use the socket function to find out of which type it is your [Quantum] object:

julia
julia> socket(ψ)
 Tenet.State(false)
 
 julia> socket')
@@ -105,7 +105,7 @@
 
 julia> socket(exp_val)
 Tenet.Scalar()

socket is a dynamic trait: it returns an object whose type represents a property of the Quantum object, which in this case represents whether the Quantum object is a State (has information about being a normal or dual state), an Operator or a Scalar (a Tensor Network with no physical indices).

The motivation to use traits is that depending on the trait value, methods can dispatch to more specialized methods; i.e. you have a method optimized for State and another method optimized for Operator for instance. You can read more about it in Interfaces and Traits.


  1. Believe me, I'm not lying. If you want to read more about this perspective, I recommend you the book "Quantum Computing since Democritus" by Scott Aaronson. ↩︎

  2. Excepting measurements, but those are still an open problem. ↩︎

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/dev/manual/tensor-network.html b/dev/manual/tensor-network.html index b572c42b3..399d9988c 100644 --- a/dev/manual/tensor-network.html +++ b/dev/manual/tensor-network.html @@ -9,11 +9,11 @@ - + - + - + @@ -93,7 +93,7 @@ julia> contract(tn) 0-dimensional Tensor{Float64, 0, Array{Float64, 0}}: 0.0

If you want to manually perform the contractions, then you can indicate which index to contract by just passing the index. If you call contract!, the Tensor Network will be modified in-place and if contract is called, a mutated copy will be returned.

julia
julia> contract(tn, :i)
-TensorNetwork (#tensors=5, #inds=7)

Visualization

Tenet provides visualization support with GraphMakie. Import a Makie backend and call GraphMakie.graphplot on a TensorNetwork.

julia
graphplot(tn, layout=Stress(), labels=true)

Transformations

In Tensor Network computations, it is good practice transform before in order to prepare the network for further operations. In the case of exact Tensor Network contraction, a crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself (althoug it can), but more importantly, it reduces the size of the (hyper)graph. These transformations can modify the network's structure locally by permuting, contracting, factoring or truncating tensors. Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

Tenet provides a set of predefined transformations which you can apply to your TensorNetwork using the transform/transform! functions.

HyperFlatten

The HyperFlatten transformation converts hyperindices to COPY-tensors (i.e. Kronecker deltas). It is useful when some method requires the Tensor Network to be represented as a graph and not as a hypergraph. The opposite transformation is HyperGroup.

@example
fig = Figure() # hide
+TensorNetwork (#tensors=5, #inds=7)

Visualization

Tenet provides visualization support with GraphMakie. Import a Makie backend and call GraphMakie.graphplot on a TensorNetwork.

julia
graphplot(tn, layout=Stress(), labels=true)

Transformations

In Tensor Network computations, it is good practice transform before in order to prepare the network for further operations. In the case of exact Tensor Network contraction, a crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself (althoug it can), but more importantly, it reduces the size of the (hyper)graph. These transformations can modify the network's structure locally by permuting, contracting, factoring or truncating tensors. Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

Tenet provides a set of predefined transformations which you can apply to your TensorNetwork using the transform/transform! functions.

HyperFlatten

The HyperFlatten transformation converts hyperindices to COPY-tensors (i.e. Kronecker deltas). It is useful when some method requires the Tensor Network to be represented as a graph and not as a hypergraph. The opposite transformation is HyperGroup.

@example
fig = Figure() # hide
 
 A = Tensor(rand(2,2), [:i,:j])
 B = Tensor(rand(2,2), [:i,:k])
@@ -114,7 +114,7 @@
 E = Tensor(rand(2, 2, 2), (:o, :p, :j))
 
 tn = TensorNetwork([A, B, C, E])
-transformed = transform(tn, Tenet.ContractSimplification)

Diagonal reduction

The DiagonalReduction transformation tries to reduce the rank of tensors by looking up tensors that have pairs of indices with a diagonal structure between them.

Aijkl={Aiklfor i=j0for ijAijkl=Aαklδαij

In such cases, the diagonal structure between the indices can be extracted into a COPY-tensor and the two indices of the tensor are fused into one.

julia
data = zeros(Float64, 2, 2, 2, 2)
+transformed = transform(tn, Tenet.ContractSimplification)

Diagonal reduction

The DiagonalReduction transformation tries to reduce the rank of tensors by looking up tensors that have pairs of indices with a diagonal structure between them.

Aijkl={Aiklfor i=j0for ijAijkl=Aαklδαij

In such cases, the diagonal structure between the indices can be extracted into a COPY-tensor and the two indices of the tensor are fused into one.

julia
data = zeros(Float64, 2, 2, 2, 2)
 for i in 1:2
     for j in 1:2
         for k in 1:2
@@ -126,7 +126,7 @@
 A = Tensor(data, (:i, :j, :k, :l))
 
 tn = TensorNetwork([A])
-transformed = transform(tn, Tenet.DiagonalReduction)

Truncation

The Truncate transformation truncates the dimension of a Tensor if it founds slices of it where all elements are smaller than a given threshold.

julia
data = rand(3, 3, 3)
+transformed = transform(tn, Tenet.DiagonalReduction)

Truncation

The Truncate transformation truncates the dimension of a Tensor if it founds slices of it where all elements are smaller than a given threshold.

julia
data = rand(3, 3, 3)
 data[:, 1:2, :] .= 0
 
 A = Tensor(data, (:i, :j, :k))
@@ -134,7 +134,7 @@
 C = Tensor(rand(3, 3), (:l, :m))
 
 tn = TensorNetwork([A, B, C])
-transformed = transform(tn, Tenet.Truncate)

Split simplification

The SplitSimplification transformation decomposes a Tensor using the Singular Value Decomposition (SVD) if the rank of the decomposition is smaller than the original; i.e. there are singular values which can be truncated.

julia
# outer product has rank=1
+transformed = transform(tn, Tenet.Truncate)

Split simplification

The SplitSimplification transformation decomposes a Tensor using the Singular Value Decomposition (SVD) if the rank of the decomposition is smaller than the original; i.e. there are singular values which can be truncated.

julia
# outer product has rank=1
 v1 = Tensor([1, 2, 3], (:i,))
 v2 = Tensor([4, 5, 6], (:j,))
 t1 = contract(v1, v2)
@@ -147,8 +147,8 @@
     Tensor(rand(3, 3, 3), (:k, :m, :n)),
     Tensor(rand(3, 3, 3), (:l, :n, :o))
 ])
-transformed = transform(tn, Tenet.SplitSimplification)


  1. This manual is no place for history but first developments trace back to Penrose. ↩︎

  2. A hypergraph is the generalization of a graph but where edges are not restricted to connect 2 vertices, but any number of vertices. ↩︎

Made with DocumenterVitepress.jl

- +transformed = transform(tn, Tenet.SplitSimplification)


  1. This manual is no place for history but first developments trace back to Penrose. ↩︎

  2. A hypergraph is the generalization of a graph but where edges are not restricted to connect 2 vertices, but any number of vertices. ↩︎

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/dev/manual/tensors.html b/dev/manual/tensors.html index 7aa2a5b84..94e8dab16 100644 --- a/dev/manual/tensors.html +++ b/dev/manual/tensors.html @@ -9,11 +9,11 @@ - + - + - + @@ -24,24 +24,24 @@
Skip to content

Tensors

If you have reached here, you probably know what a tensor is, and probably have heard many jokes about what a tensor is[1]. Nevertheless, we are gonna give a brief remainder.

A tensor T of order[2] n is a multilinear[3] function between n vector spaces over a field F.

T:Fdim(1)××Fdim(n)F

In layman's terms, you can view a tensor as a linear function that maps a set of vectors to a scalar.

T(v(1),,v(n))=cFi,v(i)Fdim(i)

Just like with matrices and vectors, n-dimensional arrays of numbers can be used to represent tensors. Furthermore, scalars, vectors and matrices can be viewed as tensors of order 0, 1 and 2, respectively.

The dimensions of the tensors are usually identified with labels and known as tensor indices or just indices. By appropeately fixing the indices in a expression, a lot of different linear algebra operations can be described.

For example, the trace operation...

tr(A)=iAii

... a tranposition of dimensions...

Aji=AijT

... or a matrix multiplication.

Cik=jAijBjk

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of index names. As it subtypes AbstractArray, many array operations are automatically dispatched.

You can create a Tensor by passing an AbstractArray and a Vector or Tuple of Symbols.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709

Use parent and inds to access the underlying array and indices respectively.

julia
julia> parent(Tᵢⱼₖ)
 3×5×2 Array{Float64, 3}:
 [:, :, 1] =
- 0.96007   0.032284  0.332957  0.711646  0.0510473
- 0.869066  0.09403   0.352958  0.403171  0.526846
- 0.565556  0.532181  0.725101  0.553484  0.157816
+ 0.756033  0.214083  0.411257  0.836386   0.425421
+ 0.339943  0.842317  0.659311  0.0871055  0.545519
+ 0.495767  0.189055  0.989947  0.15077    0.0728537
 
 [:, :, 2] =
- 0.180907   0.781754  0.787702  0.568343  0.490043
- 0.0705776  0.977913  0.163714  0.275976  0.933661
- 0.845283   0.368839  0.421327  0.77294   0.642123
+ 0.617084  0.394522  0.670088  0.822442   0.418922
+ 0.580357  0.713604  0.738646  0.921874   0.21015
+ 0.159843  0.085073  0.865661  0.0423009  0.857709
 
 julia> inds(Tᵢⱼₖ)
 (:i, :j, :k)

The dimensionality or size of each index can be consulted using the size function.

julia
julia> size(Tᵢⱼₖ)
@@ -140,7 +140,7 @@
 2-element Tensor{Int64, 1, SubArray{Int64, 1, Matrix{Int64}, Tuple{Int64, Base.Slice{Base.OneTo{Int64}}}, true}}:
  3
  0

  1. For example, recursive definitions like a tensor is whatever that transforms as a tensor. ↩︎

  2. The order of a tensor may also be known as rank or dimensionality in other fields. However, these can be missleading, since it has nothing to do with the rank of linear algebra nor with the dimensionality of a vector space. Thus we prefer to use the word order. ↩︎

  3. Meaning that the relationships between the output and the inputs, and the inputs between them, are linear. ↩︎

Made with DocumenterVitepress.jl

- + \ No newline at end of file