From 2801b4db4758f119b1fe397949c0f0c40547545a Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 29 Nov 2024 10:56:52 +0000 Subject: [PATCH] build based on 65e6397 --- previews/PR264/404.html | 4 ++-- previews/PR264/api/ansatz.html | 10 ++++---- previews/PR264/api/quantum.html | 10 ++++---- previews/PR264/api/tensor.html | 10 ++++---- previews/PR264/api/tensornetwork.html | 22 +++++++++--------- ....DWb-XF3P.js => api_ansatz.md.2mzD4lK9.js} | 2 +- ...lean.js => api_ansatz.md.2mzD4lK9.lean.js} | 2 +- ...CVcixumW.js => api_quantum.md.BbOVBcUx.js} | 2 +- ...ean.js => api_quantum.md.BbOVBcUx.lean.js} | 2 +- ....BW2FfX_k.js => api_tensor.md.BPOPV5G-.js} | 2 +- ...lean.js => api_tensor.md.BPOPV5G-.lean.js} | 2 +- ...Mx.js => api_tensornetwork.md.BgtYFy5s.js} | 14 +++++------ ... => api_tensornetwork.md.BgtYFy5s.lean.js} | 14 +++++------ .../{app.B_Aj8mtr.js => app.CGOyR3-U.js} | 2 +- .../chunks/@localSearchIndexroot.CrmBCKsK.js | 1 - .../chunks/@localSearchIndexroot.DY7OwwSG.js | 1 + ..._AdfyQ.js => VPLocalSearchBox.CFxstaDW.js} | 2 +- .../{theme.COxracLc.js => theme.B6ti37H5.js} | 4 ++-- previews/PR264/assets/jlsiued.Dr5tWraZ.png | Bin 0 -> 42928 bytes previews/PR264/assets/jlsiued.xD7oqz2Q.png | Bin 41998 -> 0 bytes ...B.js => manual_contraction.md.MU-4TaXZ.js} | 2 +- ...=> manual_contraction.md.MU-4TaXZ.lean.js} | 2 +- ....lean.js => manual_tensors.md.LstjxskI.js} | 12 +++++----- ....js => manual_tensors.md.LstjxskI.lean.js} | 12 +++++----- ... => manual_transformations.md.lo8exH2E.js} | 2 +- ...anual_transformations.md.lo8exH2E.lean.js} | 2 +- ...p19pOt.js => visualization.md.CN2I4yqR.js} | 2 +- ...n.js => visualization.md.CN2I4yqR.lean.js} | 2 +- previews/PR264/developer/cached-field.html | 6 ++--- previews/PR264/developer/hypergraph.html | 6 ++--- .../PR264/developer/keyword-dispatch.html | 6 ++--- previews/PR264/developer/type-hierarchy.html | 6 ++--- previews/PR264/developer/unsafe-region.html | 6 ++--- previews/PR264/friends.html | 6 ++--- previews/PR264/hashmap.json | 2 +- previews/PR264/index.html | 6 ++--- previews/PR264/manual/ansatz/index.html | 6 ++--- previews/PR264/manual/ansatz/mps.html | 6 ++--- previews/PR264/manual/ansatz/product.html | 6 ++--- previews/PR264/manual/contraction.html | 10 ++++---- previews/PR264/manual/quantum.html | 6 ++--- previews/PR264/manual/tensor-network.html | 6 ++--- previews/PR264/manual/tensors.html | 20 ++++++++-------- previews/PR264/manual/transformations.html | 10 ++++---- previews/PR264/visualization.html | 10 ++++---- 45 files changed, 133 insertions(+), 133 deletions(-) rename previews/PR264/assets/{api_ansatz.md.DWb-XF3P.js => api_ansatz.md.2mzD4lK9.js} (92%) rename previews/PR264/assets/{api_ansatz.md.DWb-XF3P.lean.js => api_ansatz.md.2mzD4lK9.lean.js} (92%) rename previews/PR264/assets/{api_quantum.md.CVcixumW.js => api_quantum.md.BbOVBcUx.js} (88%) rename previews/PR264/assets/{api_quantum.md.CVcixumW.lean.js => api_quantum.md.BbOVBcUx.lean.js} (88%) rename previews/PR264/assets/{api_tensor.md.BW2FfX_k.js => api_tensor.md.BPOPV5G-.js} (93%) rename previews/PR264/assets/{api_tensor.md.BW2FfX_k.lean.js => api_tensor.md.BPOPV5G-.lean.js} (93%) rename previews/PR264/assets/{api_tensornetwork.md.DhUYDEMx.js => api_tensornetwork.md.BgtYFy5s.js} (92%) rename previews/PR264/assets/{api_tensornetwork.md.DhUYDEMx.lean.js => api_tensornetwork.md.BgtYFy5s.lean.js} (92%) rename previews/PR264/assets/{app.B_Aj8mtr.js => app.CGOyR3-U.js} (95%) delete mode 100644 previews/PR264/assets/chunks/@localSearchIndexroot.CrmBCKsK.js create mode 100644 previews/PR264/assets/chunks/@localSearchIndexroot.DY7OwwSG.js rename previews/PR264/assets/chunks/{VPLocalSearchBox.BQ_AdfyQ.js => VPLocalSearchBox.CFxstaDW.js} (99%) rename previews/PR264/assets/chunks/{theme.COxracLc.js => theme.B6ti37H5.js} (99%) create mode 100644 previews/PR264/assets/jlsiued.Dr5tWraZ.png delete mode 100644 previews/PR264/assets/jlsiued.xD7oqz2Q.png rename previews/PR264/assets/{manual_contraction.md.xv5N0-nB.js => manual_contraction.md.MU-4TaXZ.js} (94%) rename previews/PR264/assets/{manual_contraction.md.xv5N0-nB.lean.js => manual_contraction.md.MU-4TaXZ.lean.js} (94%) rename previews/PR264/assets/{manual_tensors.md.0_S8Iedp.lean.js => manual_tensors.md.LstjxskI.js} (95%) rename previews/PR264/assets/{manual_tensors.md.0_S8Iedp.js => manual_tensors.md.LstjxskI.lean.js} (95%) rename previews/PR264/assets/{manual_transformations.md.DvStKySo.js => manual_transformations.md.lo8exH2E.js} (98%) rename previews/PR264/assets/{manual_transformations.md.DvStKySo.lean.js => manual_transformations.md.lo8exH2E.lean.js} (98%) rename previews/PR264/assets/{visualization.md.Wnp19pOt.js => visualization.md.CN2I4yqR.js} (95%) rename previews/PR264/assets/{visualization.md.Wnp19pOt.lean.js => visualization.md.CN2I4yqR.lean.js} (95%) diff --git a/previews/PR264/404.html b/previews/PR264/404.html index f6938fbd..307be9be 100644 --- a/previews/PR264/404.html +++ b/previews/PR264/404.html @@ -9,7 +9,7 @@ - + @@ -19,7 +19,7 @@
- + \ No newline at end of file diff --git a/previews/PR264/api/ansatz.html b/previews/PR264/api/ansatz.html index 5decb70d..094a84c5 100644 --- a/previews/PR264/api/ansatz.html +++ b/previews/PR264/api/ansatz.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
- +
+ \ No newline at end of file diff --git a/previews/PR264/api/quantum.html b/previews/PR264/api/quantum.html index 9c139536..4d03015f 100644 --- a/previews/PR264/api/quantum.html +++ b/previews/PR264/api/quantum.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
Skip to content

Quantum

Tenet.Quantum Type
julia
Quantum

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

Notes

  • Indices are referenced by Sites.

source

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

Returns the underlying TensorNetwork of an AbstractQuantum.

source

Base.adjoint Method
julia
adjoint(q::Quantum)

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

source

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

Returns the sites of a AbstractQuantum Tensor Network.

source

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

Returns the number of sites of a AbstractQuantum Tensor Network.

source

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

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

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

source

Tenet.Scalar Type
julia
Scalar <: Socket

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

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.Operator Type
julia
Operator <: Socket

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

source

Missing docstring.

Missing docstring for Base.merge(::Quantum, ::Quantum...). Check Documenter's build log for details.

Made with DocumenterVitepress.jl

- +
Skip to content

Quantum

Tenet.Quantum Type
julia
Quantum

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

Notes

  • Indices are referenced by Sites.

source

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

Returns the underlying TensorNetwork of an AbstractQuantum.

source

Base.adjoint Method
julia
adjoint(q::Quantum)

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

source

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

Returns the sites of a AbstractQuantum Tensor Network.

source

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

Returns the number of sites of a AbstractQuantum Tensor Network.

source

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

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

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

source

Tenet.Scalar Type
julia
Scalar <: Socket

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

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.Operator Type
julia
Operator <: Socket

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

source

Missing docstring.

Missing docstring for Base.merge(::Quantum, ::Quantum...). Check Documenter's build log for details.

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/previews/PR264/api/tensor.html b/previews/PR264/api/tensor.html index 751cb2a7..8f92f628 100644 --- a/previews/PR264/api/tensor.html +++ b/previews/PR264/api/tensor.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
Skip to content

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

Base.size Method
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

Graphs.LinAlg.contract Method
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

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

Perform SVD factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the SVD factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the SVD factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

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

Perform QR factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the QR factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the QR factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

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

Perform LU factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the LU factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the LU factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

Made with DocumenterVitepress.jl

- +
Skip to content

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

Base.size Method
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

Graphs.LinAlg.contract Method
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

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

Perform SVD factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the SVD factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the SVD factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

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

Perform QR factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the QR factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the QR factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

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

Perform LU factorization on a tensor.

Keyword arguments

  • left_inds: left indices to be used in the LU factorization. Defaults to all indices of t except right_inds.

  • right_inds: right indices to be used in the LU factorization. Defaults to all indices of t except left_inds.

  • virtualind: name of the virtual bond. Defaults to a random Symbol.

source

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/previews/PR264/api/tensornetwork.html b/previews/PR264/api/tensornetwork.html index 4fdbaa72..c62264ac 100644 --- a/previews/PR264/api/tensornetwork.html +++ b/previews/PR264/api/tensornetwork.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,14 +21,14 @@ -
Skip to content

TensorNetwork

Tenet.TensorNetwork Type
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

Missing docstring.

Missing docstring for inds(::Tenet.TensorNetwork). Check Documenter's build log for details.

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

Missing docstring.

Missing docstring for tensors(::Tenet.TensorNetwork). Check Documenter's build log for details.

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

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

Base.pop! Method
julia
pop!(tn::TensorNetwork, tensor::Tensor)
-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.append! Method
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

Base.merge! Method
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
-merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

Base.delete! Method
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

Base.replace! Function
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:

  • If Symbols, it will correspond to a index renaming.

  • If Tensors, first element that satisfies egality ( or ===) will be replaced.

source

Base.selectdim Function
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

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

In-place projection of index on dimension i.

See also: selectdim, view.

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

Base.copy Method
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

Missing docstring.

Missing docstring for Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer). Check Documenter's build log for details.

Transformations

Tenet.transform Function
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.transform! Function
julia
transform!(tn::TensorNetwork, config::Transformation)
-transform!(tn::TensorNetwork, configs)

In-place version of transform.

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.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.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.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

Missing docstring.

Missing docstring for Tenet.SplitSimplificationd. Check Documenter's build log for details.

Made with DocumenterVitepress.jl

- +
Skip to content

TensorNetwork

Tenet.TensorNetwork Type
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

Missing docstring.

Missing docstring for inds(::Tenet.TensorNetwork). Check Documenter's build log for details.

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

Missing docstring.

Missing docstring for tensors(::Tenet.TensorNetwork). Check Documenter's build log for details.

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

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

Base.pop! Method
julia
pop!(tn::TensorNetwork, tensor::Tensor)
+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.append! Method
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

Base.merge! Method
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
+merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

Base.delete! Method
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

Base.replace! Function
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:

  • If Symbols, it will correspond to a index renaming.

  • If Tensors, first element that satisfies egality ( or ===) will be replaced.

source

Base.selectdim Function
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

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

In-place projection of index on dimension i.

See also: selectdim, view.

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

Base.copy Method
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

Missing docstring.

Missing docstring for Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer). Check Documenter's build log for details.

Transformations

Tenet.transform Function
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.transform! Function
julia
transform!(tn::TensorNetwork, config::Transformation)
+transform!(tn::TensorNetwork, configs)

In-place version of transform.

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.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.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.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

Missing docstring.

Missing docstring for Tenet.SplitSimplificationd. Check Documenter's build log for details.

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/previews/PR264/assets/api_ansatz.md.DWb-XF3P.js b/previews/PR264/assets/api_ansatz.md.2mzD4lK9.js similarity index 92% rename from previews/PR264/assets/api_ansatz.md.DWb-XF3P.js rename to previews/PR264/assets/api_ansatz.md.2mzD4lK9.js index 134ad109..1c1c5572 100644 --- a/previews/PR264/assets/api_ansatz.md.DWb-XF3P.js +++ b/previews/PR264/assets/api_ansatz.md.2mzD4lK9.js @@ -1 +1 @@ -import{_ as n,c as i,j as e,a as t,G as r,a5 as l,B as o,o as d}from"./chunks/framework.OJaHWZpq.js";const P=JSON.parse('{"title":"Ansatz","description":"","frontmatter":{},"headers":[],"relativePath":"api/ansatz.md","filePath":"api/ansatz.md","lastUpdated":null}'),p={name:"api/ansatz.md"},c={class:"jldocstring custom-block",open:""};function h(m,a,f,u,b,k){const s=o("Badge");return d(),i("div",null,[a[3]||(a[3]=e("h1",{id:"ansatz",tabindex:"-1"},[t("Ansatz "),e("a",{class:"header-anchor",href:"#ansatz","aria-label":'Permalink to "Ansatz"'},"​")],-1)),a[4]||(a[4]=e("h2",{id:"mps",tabindex:"-1"},[t("MPS "),e("a",{class:"header-anchor",href:"#mps","aria-label":'Permalink to "MPS"'},"​")],-1)),e("details",c,[e("summary",null,[a[0]||(a[0]=e("a",{id:"Tenet.MPS",href:"#Tenet.MPS"},[e("span",{class:"jlbinding"},"Tenet.MPS")],-1)),a[1]||(a[1]=t()),r(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),a[2]||(a[2]=l('
julia
MPS <: AbstractAnsatz

A Matrix Product State Ansatz Tensor Network.

source

',3))])])}const z=n(p,[["render",h]]);export{P as __pageData,z as default}; +import{_ as n,c as i,j as e,a as t,G as r,a5 as l,B as o,o as d}from"./chunks/framework.OJaHWZpq.js";const P=JSON.parse('{"title":"Ansatz","description":"","frontmatter":{},"headers":[],"relativePath":"api/ansatz.md","filePath":"api/ansatz.md","lastUpdated":null}'),p={name:"api/ansatz.md"},c={class:"jldocstring custom-block",open:""};function h(b,a,m,u,k,f){const s=o("Badge");return d(),i("div",null,[a[3]||(a[3]=e("h1",{id:"ansatz",tabindex:"-1"},[t("Ansatz "),e("a",{class:"header-anchor",href:"#ansatz","aria-label":'Permalink to "Ansatz"'},"​")],-1)),a[4]||(a[4]=e("h2",{id:"mps",tabindex:"-1"},[t("MPS "),e("a",{class:"header-anchor",href:"#mps","aria-label":'Permalink to "MPS"'},"​")],-1)),e("details",c,[e("summary",null,[a[0]||(a[0]=e("a",{id:"Tenet.MPS",href:"#Tenet.MPS"},[e("span",{class:"jlbinding"},"Tenet.MPS")],-1)),a[1]||(a[1]=t()),r(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),a[2]||(a[2]=l('
julia
MPS <: AbstractAnsatz

A Matrix Product State Ansatz Tensor Network.

source

',3))])])}const z=n(p,[["render",h]]);export{P as __pageData,z as default}; diff --git a/previews/PR264/assets/api_ansatz.md.DWb-XF3P.lean.js b/previews/PR264/assets/api_ansatz.md.2mzD4lK9.lean.js similarity index 92% rename from previews/PR264/assets/api_ansatz.md.DWb-XF3P.lean.js rename to previews/PR264/assets/api_ansatz.md.2mzD4lK9.lean.js index 134ad109..1c1c5572 100644 --- a/previews/PR264/assets/api_ansatz.md.DWb-XF3P.lean.js +++ b/previews/PR264/assets/api_ansatz.md.2mzD4lK9.lean.js @@ -1 +1 @@ -import{_ as n,c as i,j as e,a as t,G as r,a5 as l,B as o,o as d}from"./chunks/framework.OJaHWZpq.js";const P=JSON.parse('{"title":"Ansatz","description":"","frontmatter":{},"headers":[],"relativePath":"api/ansatz.md","filePath":"api/ansatz.md","lastUpdated":null}'),p={name:"api/ansatz.md"},c={class:"jldocstring custom-block",open:""};function h(m,a,f,u,b,k){const s=o("Badge");return d(),i("div",null,[a[3]||(a[3]=e("h1",{id:"ansatz",tabindex:"-1"},[t("Ansatz "),e("a",{class:"header-anchor",href:"#ansatz","aria-label":'Permalink to "Ansatz"'},"​")],-1)),a[4]||(a[4]=e("h2",{id:"mps",tabindex:"-1"},[t("MPS "),e("a",{class:"header-anchor",href:"#mps","aria-label":'Permalink to "MPS"'},"​")],-1)),e("details",c,[e("summary",null,[a[0]||(a[0]=e("a",{id:"Tenet.MPS",href:"#Tenet.MPS"},[e("span",{class:"jlbinding"},"Tenet.MPS")],-1)),a[1]||(a[1]=t()),r(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),a[2]||(a[2]=l('
julia
MPS <: AbstractAnsatz

A Matrix Product State Ansatz Tensor Network.

source

',3))])])}const z=n(p,[["render",h]]);export{P as __pageData,z as default}; +import{_ as n,c as i,j as e,a as t,G as r,a5 as l,B as o,o as d}from"./chunks/framework.OJaHWZpq.js";const P=JSON.parse('{"title":"Ansatz","description":"","frontmatter":{},"headers":[],"relativePath":"api/ansatz.md","filePath":"api/ansatz.md","lastUpdated":null}'),p={name:"api/ansatz.md"},c={class:"jldocstring custom-block",open:""};function h(b,a,m,u,k,f){const s=o("Badge");return d(),i("div",null,[a[3]||(a[3]=e("h1",{id:"ansatz",tabindex:"-1"},[t("Ansatz "),e("a",{class:"header-anchor",href:"#ansatz","aria-label":'Permalink to "Ansatz"'},"​")],-1)),a[4]||(a[4]=e("h2",{id:"mps",tabindex:"-1"},[t("MPS "),e("a",{class:"header-anchor",href:"#mps","aria-label":'Permalink to "MPS"'},"​")],-1)),e("details",c,[e("summary",null,[a[0]||(a[0]=e("a",{id:"Tenet.MPS",href:"#Tenet.MPS"},[e("span",{class:"jlbinding"},"Tenet.MPS")],-1)),a[1]||(a[1]=t()),r(s,{type:"info",class:"jlObjectType jlType",text:"Type"})]),a[2]||(a[2]=l('
julia
MPS <: AbstractAnsatz

A Matrix Product State Ansatz Tensor Network.

source

',3))])])}const z=n(p,[["render",h]]);export{P as __pageData,z as default}; diff --git a/previews/PR264/assets/api_quantum.md.CVcixumW.js b/previews/PR264/assets/api_quantum.md.BbOVBcUx.js similarity index 88% rename from previews/PR264/assets/api_quantum.md.CVcixumW.js rename to previews/PR264/assets/api_quantum.md.BbOVBcUx.js index 8ae56dc7..74a71ccd 100644 --- a/previews/PR264/assets/api_quantum.md.CVcixumW.js +++ b/previews/PR264/assets/api_quantum.md.BbOVBcUx.js @@ -1 +1 @@ -import{_ as l,c as o,j as t,a as e,G as n,a5 as i,B as d,o as p}from"./chunks/framework.OJaHWZpq.js";const Q=JSON.parse('{"title":"Quantum","description":"","frontmatter":{},"headers":[],"relativePath":"api/quantum.md","filePath":"api/quantum.md","lastUpdated":null}'),r={name:"api/quantum.md"},u={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function j(T,s,v,E,C,w){const a=d("Badge");return p(),o("div",null,[s[27]||(s[27]=t("h1",{id:"quantum",tabindex:"-1"},[e("Quantum "),t("a",{class:"header-anchor",href:"#quantum","aria-label":'Permalink to "Quantum"'},"​")],-1)),t("details",u,[t("summary",null,[s[0]||(s[0]=t("a",{id:"Tenet.Quantum",href:"#Tenet.Quantum"},[t("span",{class:"jlbinding"},"Tenet.Quantum")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=i('
julia
Quantum

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

Notes

source

',5))]),t("details",c,[t("summary",null,[s[3]||(s[3]=t("a",{id:"Tenet.TensorNetwork-Tuple{Quantum}",href:"#Tenet.TensorNetwork-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=i('
julia
TensorNetwork(q::AbstractQuantum)

Returns the underlying TensorNetwork of an AbstractQuantum.

source

',3))]),t("details",k,[t("summary",null,[s[6]||(s[6]=t("a",{id:"Base.adjoint-Tuple{Quantum}",href:"#Base.adjoint-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Base.adjoint")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=i('
julia
adjoint(q::Quantum)

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

source

',3))]),t("details",h,[t("summary",null,[s[9]||(s[9]=t("a",{id:"Tenet.sites",href:"#Tenet.sites"},[t("span",{class:"jlbinding"},"Tenet.sites")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=i('
julia
sites(q::AbstractQuantum)

Returns the sites of a AbstractQuantum Tensor Network.

source

',3))]),t("details",g,[t("summary",null,[s[12]||(s[12]=t("a",{id:"Tenet.nsites",href:"#Tenet.nsites"},[t("span",{class:"jlbinding"},"Tenet.nsites")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=i('
julia
nsites(q::AbstractQuantum)

Returns the number of sites of a AbstractQuantum Tensor Network.

source

',3))]),s[28]||(s[28]=i('

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

',9)),t("details",b,[t("summary",null,[s[15]||(s[15]=t("a",{id:"Tenet.socket-Tuple{Quantum}",href:"#Tenet.socket-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.socket")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=i('
julia
socket(q::Quantum)

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

source

',3))]),t("details",m,[t("summary",null,[s[18]||(s[18]=t("a",{id:"Tenet.Scalar",href:"#Tenet.Scalar"},[t("span",{class:"jlbinding"},"Tenet.Scalar")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[20]||(s[20]=i('
julia
Scalar <: Socket

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

source

',3))]),t("details",f,[t("summary",null,[s[21]||(s[21]=t("a",{id:"Tenet.State",href:"#Tenet.State"},[t("span",{class:"jlbinding"},"Tenet.State")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[23]||(s[23]=i('
julia
State <: Socket

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

source

',3))]),t("details",y,[t("summary",null,[s[24]||(s[24]=t("a",{id:"Tenet.Operator",href:"#Tenet.Operator"},[t("span",{class:"jlbinding"},"Tenet.Operator")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[26]||(s[26]=i('
julia
Operator <: Socket

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

source

',3))]),s[29]||(s[29]=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"Missing docstring."),t("p",null,[e("Missing docstring for "),t("code",null,"Base.merge(::Quantum, ::Quantum...)"),e(". Check Documenter's build log for details.")])],-1))])}const q=l(r,[["render",j]]);export{Q as __pageData,q as default}; +import{_ as l,c as o,j as t,a as e,G as n,a5 as i,B as p,o as r}from"./chunks/framework.OJaHWZpq.js";const Q=JSON.parse('{"title":"Quantum","description":"","frontmatter":{},"headers":[],"relativePath":"api/quantum.md","filePath":"api/quantum.md","lastUpdated":null}'),d={name:"api/quantum.md"},u={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""};function f(T,s,v,E,C,w){const a=p("Badge");return r(),o("div",null,[s[27]||(s[27]=t("h1",{id:"quantum",tabindex:"-1"},[e("Quantum "),t("a",{class:"header-anchor",href:"#quantum","aria-label":'Permalink to "Quantum"'},"​")],-1)),t("details",u,[t("summary",null,[s[0]||(s[0]=t("a",{id:"Tenet.Quantum",href:"#Tenet.Quantum"},[t("span",{class:"jlbinding"},"Tenet.Quantum")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=i('
julia
Quantum

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

Notes

source

',5))]),t("details",c,[t("summary",null,[s[3]||(s[3]=t("a",{id:"Tenet.TensorNetwork-Tuple{Quantum}",href:"#Tenet.TensorNetwork-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=i('
julia
TensorNetwork(q::AbstractQuantum)

Returns the underlying TensorNetwork of an AbstractQuantum.

source

',3))]),t("details",k,[t("summary",null,[s[6]||(s[6]=t("a",{id:"Base.adjoint-Tuple{Quantum}",href:"#Base.adjoint-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Base.adjoint")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=i('
julia
adjoint(q::Quantum)

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

source

',3))]),t("details",h,[t("summary",null,[s[9]||(s[9]=t("a",{id:"Tenet.sites",href:"#Tenet.sites"},[t("span",{class:"jlbinding"},"Tenet.sites")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=i('
julia
sites(q::AbstractQuantum)

Returns the sites of a AbstractQuantum Tensor Network.

source

',3))]),t("details",g,[t("summary",null,[s[12]||(s[12]=t("a",{id:"Tenet.nsites",href:"#Tenet.nsites"},[t("span",{class:"jlbinding"},"Tenet.nsites")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=i('
julia
nsites(q::AbstractQuantum)

Returns the number of sites of a AbstractQuantum Tensor Network.

source

',3))]),s[28]||(s[28]=i('

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

',9)),t("details",b,[t("summary",null,[s[15]||(s[15]=t("a",{id:"Tenet.socket-Tuple{Quantum}",href:"#Tenet.socket-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.socket")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=i('
julia
socket(q::Quantum)

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

source

',3))]),t("details",m,[t("summary",null,[s[18]||(s[18]=t("a",{id:"Tenet.Scalar",href:"#Tenet.Scalar"},[t("span",{class:"jlbinding"},"Tenet.Scalar")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[20]||(s[20]=i('
julia
Scalar <: Socket

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

source

',3))]),t("details",y,[t("summary",null,[s[21]||(s[21]=t("a",{id:"Tenet.State",href:"#Tenet.State"},[t("span",{class:"jlbinding"},"Tenet.State")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[23]||(s[23]=i('
julia
State <: Socket

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

source

',3))]),t("details",j,[t("summary",null,[s[24]||(s[24]=t("a",{id:"Tenet.Operator",href:"#Tenet.Operator"},[t("span",{class:"jlbinding"},"Tenet.Operator")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[26]||(s[26]=i('
julia
Operator <: Socket

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

source

',3))]),s[29]||(s[29]=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"Missing docstring."),t("p",null,[e("Missing docstring for "),t("code",null,"Base.merge(::Quantum, ::Quantum...)"),e(". Check Documenter's build log for details.")])],-1))])}const q=l(d,[["render",f]]);export{Q as __pageData,q as default}; diff --git a/previews/PR264/assets/api_quantum.md.CVcixumW.lean.js b/previews/PR264/assets/api_quantum.md.BbOVBcUx.lean.js similarity index 88% rename from previews/PR264/assets/api_quantum.md.CVcixumW.lean.js rename to previews/PR264/assets/api_quantum.md.BbOVBcUx.lean.js index 8ae56dc7..74a71ccd 100644 --- a/previews/PR264/assets/api_quantum.md.CVcixumW.lean.js +++ b/previews/PR264/assets/api_quantum.md.BbOVBcUx.lean.js @@ -1 +1 @@ -import{_ as l,c as o,j as t,a as e,G as n,a5 as i,B as d,o as p}from"./chunks/framework.OJaHWZpq.js";const Q=JSON.parse('{"title":"Quantum","description":"","frontmatter":{},"headers":[],"relativePath":"api/quantum.md","filePath":"api/quantum.md","lastUpdated":null}'),r={name:"api/quantum.md"},u={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""};function j(T,s,v,E,C,w){const a=d("Badge");return p(),o("div",null,[s[27]||(s[27]=t("h1",{id:"quantum",tabindex:"-1"},[e("Quantum "),t("a",{class:"header-anchor",href:"#quantum","aria-label":'Permalink to "Quantum"'},"​")],-1)),t("details",u,[t("summary",null,[s[0]||(s[0]=t("a",{id:"Tenet.Quantum",href:"#Tenet.Quantum"},[t("span",{class:"jlbinding"},"Tenet.Quantum")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=i('
julia
Quantum

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

Notes

source

',5))]),t("details",c,[t("summary",null,[s[3]||(s[3]=t("a",{id:"Tenet.TensorNetwork-Tuple{Quantum}",href:"#Tenet.TensorNetwork-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=i('
julia
TensorNetwork(q::AbstractQuantum)

Returns the underlying TensorNetwork of an AbstractQuantum.

source

',3))]),t("details",k,[t("summary",null,[s[6]||(s[6]=t("a",{id:"Base.adjoint-Tuple{Quantum}",href:"#Base.adjoint-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Base.adjoint")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=i('
julia
adjoint(q::Quantum)

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

source

',3))]),t("details",h,[t("summary",null,[s[9]||(s[9]=t("a",{id:"Tenet.sites",href:"#Tenet.sites"},[t("span",{class:"jlbinding"},"Tenet.sites")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=i('
julia
sites(q::AbstractQuantum)

Returns the sites of a AbstractQuantum Tensor Network.

source

',3))]),t("details",g,[t("summary",null,[s[12]||(s[12]=t("a",{id:"Tenet.nsites",href:"#Tenet.nsites"},[t("span",{class:"jlbinding"},"Tenet.nsites")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=i('
julia
nsites(q::AbstractQuantum)

Returns the number of sites of a AbstractQuantum Tensor Network.

source

',3))]),s[28]||(s[28]=i('

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

',9)),t("details",b,[t("summary",null,[s[15]||(s[15]=t("a",{id:"Tenet.socket-Tuple{Quantum}",href:"#Tenet.socket-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.socket")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=i('
julia
socket(q::Quantum)

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

source

',3))]),t("details",m,[t("summary",null,[s[18]||(s[18]=t("a",{id:"Tenet.Scalar",href:"#Tenet.Scalar"},[t("span",{class:"jlbinding"},"Tenet.Scalar")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[20]||(s[20]=i('
julia
Scalar <: Socket

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

source

',3))]),t("details",f,[t("summary",null,[s[21]||(s[21]=t("a",{id:"Tenet.State",href:"#Tenet.State"},[t("span",{class:"jlbinding"},"Tenet.State")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[23]||(s[23]=i('
julia
State <: Socket

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

source

',3))]),t("details",y,[t("summary",null,[s[24]||(s[24]=t("a",{id:"Tenet.Operator",href:"#Tenet.Operator"},[t("span",{class:"jlbinding"},"Tenet.Operator")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[26]||(s[26]=i('
julia
Operator <: Socket

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

source

',3))]),s[29]||(s[29]=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"Missing docstring."),t("p",null,[e("Missing docstring for "),t("code",null,"Base.merge(::Quantum, ::Quantum...)"),e(". Check Documenter's build log for details.")])],-1))])}const q=l(r,[["render",j]]);export{Q as __pageData,q as default}; +import{_ as l,c as o,j as t,a as e,G as n,a5 as i,B as p,o as r}from"./chunks/framework.OJaHWZpq.js";const Q=JSON.parse('{"title":"Quantum","description":"","frontmatter":{},"headers":[],"relativePath":"api/quantum.md","filePath":"api/quantum.md","lastUpdated":null}'),d={name:"api/quantum.md"},u={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""};function f(T,s,v,E,C,w){const a=p("Badge");return r(),o("div",null,[s[27]||(s[27]=t("h1",{id:"quantum",tabindex:"-1"},[e("Quantum "),t("a",{class:"header-anchor",href:"#quantum","aria-label":'Permalink to "Quantum"'},"​")],-1)),t("details",u,[t("summary",null,[s[0]||(s[0]=t("a",{id:"Tenet.Quantum",href:"#Tenet.Quantum"},[t("span",{class:"jlbinding"},"Tenet.Quantum")],-1)),s[1]||(s[1]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=i('
julia
Quantum

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

Notes

source

',5))]),t("details",c,[t("summary",null,[s[3]||(s[3]=t("a",{id:"Tenet.TensorNetwork-Tuple{Quantum}",href:"#Tenet.TensorNetwork-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[4]||(s[4]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=i('
julia
TensorNetwork(q::AbstractQuantum)

Returns the underlying TensorNetwork of an AbstractQuantum.

source

',3))]),t("details",k,[t("summary",null,[s[6]||(s[6]=t("a",{id:"Base.adjoint-Tuple{Quantum}",href:"#Base.adjoint-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Base.adjoint")],-1)),s[7]||(s[7]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=i('
julia
adjoint(q::Quantum)

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

source

',3))]),t("details",h,[t("summary",null,[s[9]||(s[9]=t("a",{id:"Tenet.sites",href:"#Tenet.sites"},[t("span",{class:"jlbinding"},"Tenet.sites")],-1)),s[10]||(s[10]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[11]||(s[11]=i('
julia
sites(q::AbstractQuantum)

Returns the sites of a AbstractQuantum Tensor Network.

source

',3))]),t("details",g,[t("summary",null,[s[12]||(s[12]=t("a",{id:"Tenet.nsites",href:"#Tenet.nsites"},[t("span",{class:"jlbinding"},"Tenet.nsites")],-1)),s[13]||(s[13]=e()),n(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[14]||(s[14]=i('
julia
nsites(q::AbstractQuantum)

Returns the number of sites of a AbstractQuantum Tensor Network.

source

',3))]),s[28]||(s[28]=i('

Missing docstring.

Missing docstring for Tenet.inds(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for Tenet.tensors(::Quantum; kwargs...). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for outputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for lanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ninputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for noutputs. Check Documenter's build log for details.

Missing docstring.

Missing docstring for nlanes. Check Documenter's build log for details.

Missing docstring.

Missing docstring for Socket. Check Documenter's build log for details.

',9)),t("details",b,[t("summary",null,[s[15]||(s[15]=t("a",{id:"Tenet.socket-Tuple{Quantum}",href:"#Tenet.socket-Tuple{Quantum}"},[t("span",{class:"jlbinding"},"Tenet.socket")],-1)),s[16]||(s[16]=e()),n(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=i('
julia
socket(q::Quantum)

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

source

',3))]),t("details",m,[t("summary",null,[s[18]||(s[18]=t("a",{id:"Tenet.Scalar",href:"#Tenet.Scalar"},[t("span",{class:"jlbinding"},"Tenet.Scalar")],-1)),s[19]||(s[19]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[20]||(s[20]=i('
julia
Scalar <: Socket

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

source

',3))]),t("details",y,[t("summary",null,[s[21]||(s[21]=t("a",{id:"Tenet.State",href:"#Tenet.State"},[t("span",{class:"jlbinding"},"Tenet.State")],-1)),s[22]||(s[22]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[23]||(s[23]=i('
julia
State <: Socket

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

source

',3))]),t("details",j,[t("summary",null,[s[24]||(s[24]=t("a",{id:"Tenet.Operator",href:"#Tenet.Operator"},[t("span",{class:"jlbinding"},"Tenet.Operator")],-1)),s[25]||(s[25]=e()),n(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[26]||(s[26]=i('
julia
Operator <: Socket

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

source

',3))]),s[29]||(s[29]=t("div",{class:"warning custom-block"},[t("p",{class:"custom-block-title"},"Missing docstring."),t("p",null,[e("Missing docstring for "),t("code",null,"Base.merge(::Quantum, ::Quantum...)"),e(". Check Documenter's build log for details.")])],-1))])}const q=l(d,[["render",f]]);export{Q as __pageData,q as default}; diff --git a/previews/PR264/assets/api_tensor.md.BW2FfX_k.js b/previews/PR264/assets/api_tensor.md.BPOPV5G-.js similarity index 93% rename from previews/PR264/assets/api_tensor.md.BW2FfX_k.js rename to previews/PR264/assets/api_tensor.md.BPOPV5G-.js index 3583e05b..dbe915a6 100644 --- a/previews/PR264/assets/api_tensor.md.BW2FfX_k.js +++ b/previews/PR264/assets/api_tensor.md.BPOPV5G-.js @@ -1 +1 @@ -import{_ as l,c as o,a5 as e,j as i,a,G as n,B as d,o as r}from"./chunks/framework.OJaHWZpq.js";const T=JSON.parse('{"title":"Tensor","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensor.md","filePath":"api/tensor.md","lastUpdated":null}'),p={name:"api/tensor.md"},h={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(f,s,E,y,m,j){const t=d("Badge");return r(),o("div",null,[s[15]||(s[15]=e('

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

',3)),i("details",h,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.size-Tuple{Tensor}",href:"#Base.size-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"Base.size")],-1)),s[1]||(s[1]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=e('
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

',3))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Graphs.LinAlg.contract-Tuple{Tensor, Tensor}",href:"#Graphs.LinAlg.contract-Tuple{Tensor, Tensor}"},[i("span",{class:"jlbinding"},"Graphs.LinAlg.contract")],-1)),s[4]||(s[4]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=e('
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

',3))]),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"LinearAlgebra.svd-Tuple{Tensor}",href:"#LinearAlgebra.svd-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.svd")],-1)),s[7]||(s[7]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=e('
julia
LinearAlgebra.svd(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform SVD factorization on a tensor.

Keyword arguments

source

',5))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"LinearAlgebra.qr-Tuple{Tensor}",href:"#LinearAlgebra.qr-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.qr")],-1)),s[10]||(s[10]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=e('
julia
LinearAlgebra.qr(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform QR factorization on a tensor.

Keyword arguments

source

',5))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"LinearAlgebra.lu-Tuple{Tensor}",href:"#LinearAlgebra.lu-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.lu")],-1)),s[13]||(s[13]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e('
julia
LinearAlgebra.lu(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform LU factorization on a tensor.

Keyword arguments

source

',5))])])}const F=l(p,[["render",b]]);export{T as __pageData,F as default}; +import{_ as l,c as o,a5 as e,j as i,a,G as n,B as r,o as d}from"./chunks/framework.OJaHWZpq.js";const T=JSON.parse('{"title":"Tensor","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensor.md","filePath":"api/tensor.md","lastUpdated":null}'),p={name:"api/tensor.md"},h={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(E,s,y,f,m,j){const t=r("Badge");return d(),o("div",null,[s[15]||(s[15]=e('

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

',3)),i("details",h,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.size-Tuple{Tensor}",href:"#Base.size-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"Base.size")],-1)),s[1]||(s[1]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=e('
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

',3))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Graphs.LinAlg.contract-Tuple{Tensor, Tensor}",href:"#Graphs.LinAlg.contract-Tuple{Tensor, Tensor}"},[i("span",{class:"jlbinding"},"Graphs.LinAlg.contract")],-1)),s[4]||(s[4]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=e('
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

',3))]),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"LinearAlgebra.svd-Tuple{Tensor}",href:"#LinearAlgebra.svd-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.svd")],-1)),s[7]||(s[7]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=e('
julia
LinearAlgebra.svd(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform SVD factorization on a tensor.

Keyword arguments

source

',5))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"LinearAlgebra.qr-Tuple{Tensor}",href:"#LinearAlgebra.qr-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.qr")],-1)),s[10]||(s[10]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=e('
julia
LinearAlgebra.qr(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform QR factorization on a tensor.

Keyword arguments

source

',5))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"LinearAlgebra.lu-Tuple{Tensor}",href:"#LinearAlgebra.lu-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.lu")],-1)),s[13]||(s[13]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e('
julia
LinearAlgebra.lu(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform LU factorization on a tensor.

Keyword arguments

source

',5))])])}const F=l(p,[["render",b]]);export{T as __pageData,F as default}; diff --git a/previews/PR264/assets/api_tensor.md.BW2FfX_k.lean.js b/previews/PR264/assets/api_tensor.md.BPOPV5G-.lean.js similarity index 93% rename from previews/PR264/assets/api_tensor.md.BW2FfX_k.lean.js rename to previews/PR264/assets/api_tensor.md.BPOPV5G-.lean.js index 3583e05b..dbe915a6 100644 --- a/previews/PR264/assets/api_tensor.md.BW2FfX_k.lean.js +++ b/previews/PR264/assets/api_tensor.md.BPOPV5G-.lean.js @@ -1 +1 @@ -import{_ as l,c as o,a5 as e,j as i,a,G as n,B as d,o as r}from"./chunks/framework.OJaHWZpq.js";const T=JSON.parse('{"title":"Tensor","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensor.md","filePath":"api/tensor.md","lastUpdated":null}'),p={name:"api/tensor.md"},h={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(f,s,E,y,m,j){const t=d("Badge");return r(),o("div",null,[s[15]||(s[15]=e('

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

',3)),i("details",h,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.size-Tuple{Tensor}",href:"#Base.size-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"Base.size")],-1)),s[1]||(s[1]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=e('
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

',3))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Graphs.LinAlg.contract-Tuple{Tensor, Tensor}",href:"#Graphs.LinAlg.contract-Tuple{Tensor, Tensor}"},[i("span",{class:"jlbinding"},"Graphs.LinAlg.contract")],-1)),s[4]||(s[4]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=e('
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

',3))]),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"LinearAlgebra.svd-Tuple{Tensor}",href:"#LinearAlgebra.svd-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.svd")],-1)),s[7]||(s[7]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=e('
julia
LinearAlgebra.svd(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform SVD factorization on a tensor.

Keyword arguments

source

',5))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"LinearAlgebra.qr-Tuple{Tensor}",href:"#LinearAlgebra.qr-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.qr")],-1)),s[10]||(s[10]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=e('
julia
LinearAlgebra.qr(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform QR factorization on a tensor.

Keyword arguments

source

',5))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"LinearAlgebra.lu-Tuple{Tensor}",href:"#LinearAlgebra.lu-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.lu")],-1)),s[13]||(s[13]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e('
julia
LinearAlgebra.lu(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform LU factorization on a tensor.

Keyword arguments

source

',5))])])}const F=l(p,[["render",b]]);export{T as __pageData,F as default}; +import{_ as l,c as o,a5 as e,j as i,a,G as n,B as r,o as d}from"./chunks/framework.OJaHWZpq.js";const T=JSON.parse('{"title":"Tensor","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensor.md","filePath":"api/tensor.md","lastUpdated":null}'),p={name:"api/tensor.md"},h={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""};function b(E,s,y,f,m,j){const t=r("Badge");return d(),o("div",null,[s[15]||(s[15]=e('

Tensor

Missing docstring.

Missing docstring for Base.parent(::Tensor). Check Documenter's build log for details.

Missing docstring.

Missing docstring for inds(::Tensor). Check Documenter's build log for details.

',3)),i("details",h,[i("summary",null,[s[0]||(s[0]=i("a",{id:"Base.size-Tuple{Tensor}",href:"#Base.size-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"Base.size")],-1)),s[1]||(s[1]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=e('
julia
Base.size(::Tensor[, i])

Return the size of the underlying array or the dimension i (specified by Symbol or Integer).

source

',3))]),i("details",k,[i("summary",null,[s[3]||(s[3]=i("a",{id:"Graphs.LinAlg.contract-Tuple{Tensor, Tensor}",href:"#Graphs.LinAlg.contract-Tuple{Tensor, Tensor}"},[i("span",{class:"jlbinding"},"Graphs.LinAlg.contract")],-1)),s[4]||(s[4]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=e('
julia
contract(a::Tensor[, b::Tensor]; dims=nonunique([inds(a)..., inds(b)...]))

Perform tensor contraction operation.

source

',3))]),i("details",c,[i("summary",null,[s[6]||(s[6]=i("a",{id:"LinearAlgebra.svd-Tuple{Tensor}",href:"#LinearAlgebra.svd-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.svd")],-1)),s[7]||(s[7]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=e('
julia
LinearAlgebra.svd(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform SVD factorization on a tensor.

Keyword arguments

source

',5))]),i("details",g,[i("summary",null,[s[9]||(s[9]=i("a",{id:"LinearAlgebra.qr-Tuple{Tensor}",href:"#LinearAlgebra.qr-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.qr")],-1)),s[10]||(s[10]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=e('
julia
LinearAlgebra.qr(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform QR factorization on a tensor.

Keyword arguments

source

',5))]),i("details",u,[i("summary",null,[s[12]||(s[12]=i("a",{id:"LinearAlgebra.lu-Tuple{Tensor}",href:"#LinearAlgebra.lu-Tuple{Tensor}"},[i("span",{class:"jlbinding"},"LinearAlgebra.lu")],-1)),s[13]||(s[13]=a()),n(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=e('
julia
LinearAlgebra.lu(tensor::Tensor; left_inds, right_inds, virtualind, kwargs...)

Perform LU factorization on a tensor.

Keyword arguments

source

',5))])])}const F=l(p,[["render",b]]);export{T as __pageData,F as default}; diff --git a/previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.js b/previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.js similarity index 92% rename from previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.js rename to previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.js index 75ba2063..9035e2d9 100644 --- a/previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.js +++ b/previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.js @@ -1,7 +1,7 @@ -import{_ as l,c as o,j as e,a as i,G as a,a5 as n,B as r,o as p}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"TensorNetwork","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensornetwork.md","filePath":"api/tensornetwork.md","lastUpdated":null}'),d={name:"api/tensornetwork.md"},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""};function x(L,s,R,q,P,O){const t=r("Badge");return p(),o("div",null,[s[60]||(s[60]=e("h1",{id:"tensornetwork",tabindex:"-1"},[i("TensorNetwork "),e("a",{class:"header-anchor",href:"#tensornetwork","aria-label":'Permalink to "TensorNetwork"'},"​")],-1)),e("details",k,[e("summary",null,[s[0]||(s[0]=e("a",{id:"Tenet.TensorNetwork",href:"#Tenet.TensorNetwork"},[e("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[1]||(s[1]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=n('
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

',3))]),s[61]||(s[61]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"inds(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"Base.size-Tuple{TensorNetwork}",href:"#Base.size-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),s[4]||(s[4]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=n(`
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

`,4))]),s[62]||(s[62]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"tensors(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",c,[e("summary",null,[s[6]||(s[6]=e("a",{id:"Base.push!-Tuple{TensorNetwork, Tensor}",href:"#Base.push!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),s[7]||(s[7]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=n('
julia
push!(tn::AbstractTensorNetwork, tensor::Tensor)

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

',4))]),e("details",g,[e("summary",null,[s[9]||(s[9]=e("a",{id:"Base.pop!-Tuple{TensorNetwork, Tensor}",href:"#Base.pop!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.pop!")],-1)),s[10]||(s[10]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=n(`
julia
pop!(tn::TensorNetwork, tensor::Tensor)
-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

`,4))]),e("details",u,[e("summary",null,[s[12]||(s[12]=e("a",{id:'Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}',href:'#Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}'},[e("span",{class:"jlbinding"},"Base.append!")],-1)),s[13]||(s[13]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=n('
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

',4))]),e("details",b,[e("summary",null,[s[15]||(s[15]=e("a",{id:"Base.merge!-Tuple{TensorNetwork, TensorNetwork}",href:"#Base.merge!-Tuple{TensorNetwork, TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.merge!")],-1)),s[16]||(s[16]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=n(`
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
-merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

`,4))]),e("details",y,[e("summary",null,[s[18]||(s[18]=e("a",{id:"Base.delete!-Tuple{TensorNetwork, Any}",href:"#Base.delete!-Tuple{TensorNetwork, Any}"},[e("span",{class:"jlbinding"},"Base.delete!")],-1)),s[19]||(s[19]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=n('
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

',3))]),e("details",f,[e("summary",null,[s[21]||(s[21]=e("a",{id:"Base.replace!",href:"#Base.replace!"},[e("span",{class:"jlbinding"},"Base.replace!")],-1)),s[22]||(s[22]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=n(`
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

`,4))]),e("details",T,[e("summary",null,[s[24]||(s[24]=e("a",{id:"Base.selectdim",href:"#Base.selectdim"},[e("span",{class:"jlbinding"},"Base.selectdim")],-1)),s[25]||(s[25]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=n('
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

',4))]),e("details",E,[e("summary",null,[s[27]||(s[27]=e("a",{id:"Tenet.slice!",href:"#Tenet.slice!"},[e("span",{class:"jlbinding"},"Tenet.slice!")],-1)),s[28]||(s[28]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=n('
julia
slice!(tn::AbstractTensorNetwork, index::Symbol, i)

In-place projection of index on dimension i.

See also: selectdim, view.

source

',4))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"Base.view-Tuple{TensorNetwork}",href:"#Base.view-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.view")],-1)),s[31]||(s[31]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[32]||(s[32]=n('
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

',4))]),e("details",j,[e("summary",null,[s[33]||(s[33]=e("a",{id:"Base.copy-Tuple{TensorNetwork}",href:"#Base.copy-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),s[34]||(s[34]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[35]||(s[35]=n('
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

',3))]),s[63]||(s[63]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer)"),i(". Check Documenter's build log for details.")])],-1)),s[64]||(s[64]=e("h2",{id:"transformations",tabindex:"-1"},[i("Transformations "),e("a",{class:"header-anchor",href:"#transformations","aria-label":'Permalink to "Transformations"'},"​")],-1)),e("details",w,[e("summary",null,[s[36]||(s[36]=e("a",{id:"Tenet.transform",href:"#Tenet.transform"},[e("span",{class:"jlbinding"},"Tenet.transform")],-1)),s[37]||(s[37]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=n(`
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

`,4))]),e("details",v,[e("summary",null,[s[39]||(s[39]=e("a",{id:"Tenet.transform!",href:"#Tenet.transform!"},[e("span",{class:"jlbinding"},"Tenet.transform!")],-1)),s[40]||(s[40]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=n(`
julia
transform!(tn::TensorNetwork, config::Transformation)
-transform!(tn::TensorNetwork, configs)

In-place version of transform.

source

`,3))]),e("details",F,[e("summary",null,[s[42]||(s[42]=e("a",{id:"Tenet.HyperFlatten",href:"#Tenet.HyperFlatten"},[e("span",{class:"jlbinding"},"Tenet.HyperFlatten")],-1)),s[43]||(s[43]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[44]||(s[44]=n('
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

',4))]),e("details",C,[e("summary",null,[s[45]||(s[45]=e("a",{id:"Tenet.HyperGroup",href:"#Tenet.HyperGroup"},[e("span",{class:"jlbinding"},"Tenet.HyperGroup")],-1)),s[46]||(s[46]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[47]||(s[47]=n('
julia
HyperGroup <: Transformation

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

See also: HyperFlatten.

source

',4))]),e("details",B,[e("summary",null,[s[48]||(s[48]=e("a",{id:"Tenet.ContractSimplification",href:"#Tenet.ContractSimplification"},[e("span",{class:"jlbinding"},"Tenet.ContractSimplification")],-1)),s[49]||(s[49]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[50]||(s[50]=n('
julia
ContractSimplification <: Transformation

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

source

',3))]),e("details",N,[e("summary",null,[s[51]||(s[51]=e("a",{id:"Tenet.DiagonalReduction",href:"#Tenet.DiagonalReduction"},[e("span",{class:"jlbinding"},"Tenet.DiagonalReduction")],-1)),s[52]||(s[52]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[53]||(s[53]=n('
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

source

',5))]),e("details",A,[e("summary",null,[s[54]||(s[54]=e("a",{id:"Tenet.AntiDiagonalGauging",href:"#Tenet.AntiDiagonalGauging"},[e("span",{class:"jlbinding"},"Tenet.AntiDiagonalGauging")],-1)),s[55]||(s[55]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=n('
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

source

',5))]),e("details",D,[e("summary",null,[s[57]||(s[57]=e("a",{id:"Tenet.Truncate",href:"#Tenet.Truncate"},[e("span",{class:"jlbinding"},"Tenet.Truncate")],-1)),s[58]||(s[58]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[59]||(s[59]=n('
julia
Truncate <: Transformation

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

Keyword Arguments

source

',5))]),s[65]||(s[65]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Tenet.SplitSimplificationd"),i(". Check Documenter's build log for details.")])],-1))])}const V=l(d,[["render",x]]);export{M as __pageData,V as default}; +import{_ as l,c as o,j as e,a as i,G as a,a5 as n,B as r,o as p}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"TensorNetwork","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensornetwork.md","filePath":"api/tensornetwork.md","lastUpdated":null}'),d={name:"api/tensornetwork.md"},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""};function x(L,s,R,q,P,O){const t=r("Badge");return p(),o("div",null,[s[60]||(s[60]=e("h1",{id:"tensornetwork",tabindex:"-1"},[i("TensorNetwork "),e("a",{class:"header-anchor",href:"#tensornetwork","aria-label":'Permalink to "TensorNetwork"'},"​")],-1)),e("details",k,[e("summary",null,[s[0]||(s[0]=e("a",{id:"Tenet.TensorNetwork",href:"#Tenet.TensorNetwork"},[e("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[1]||(s[1]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=n('
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

',3))]),s[61]||(s[61]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"inds(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"Base.size-Tuple{TensorNetwork}",href:"#Base.size-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),s[4]||(s[4]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=n(`
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

`,4))]),s[62]||(s[62]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"tensors(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",c,[e("summary",null,[s[6]||(s[6]=e("a",{id:"Base.push!-Tuple{TensorNetwork, Tensor}",href:"#Base.push!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),s[7]||(s[7]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=n('
julia
push!(tn::AbstractTensorNetwork, tensor::Tensor)

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

',4))]),e("details",g,[e("summary",null,[s[9]||(s[9]=e("a",{id:"Base.pop!-Tuple{TensorNetwork, Tensor}",href:"#Base.pop!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.pop!")],-1)),s[10]||(s[10]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=n(`
julia
pop!(tn::TensorNetwork, tensor::Tensor)
+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

`,4))]),e("details",u,[e("summary",null,[s[12]||(s[12]=e("a",{id:'Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}',href:'#Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}'},[e("span",{class:"jlbinding"},"Base.append!")],-1)),s[13]||(s[13]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=n('
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

',4))]),e("details",b,[e("summary",null,[s[15]||(s[15]=e("a",{id:"Base.merge!-Tuple{TensorNetwork, TensorNetwork}",href:"#Base.merge!-Tuple{TensorNetwork, TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.merge!")],-1)),s[16]||(s[16]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=n(`
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
+merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

`,4))]),e("details",y,[e("summary",null,[s[18]||(s[18]=e("a",{id:"Base.delete!-Tuple{TensorNetwork, Any}",href:"#Base.delete!-Tuple{TensorNetwork, Any}"},[e("span",{class:"jlbinding"},"Base.delete!")],-1)),s[19]||(s[19]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=n('
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

',3))]),e("details",T,[e("summary",null,[s[21]||(s[21]=e("a",{id:"Base.replace!",href:"#Base.replace!"},[e("span",{class:"jlbinding"},"Base.replace!")],-1)),s[22]||(s[22]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=n(`
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

`,4))]),e("details",E,[e("summary",null,[s[24]||(s[24]=e("a",{id:"Base.selectdim",href:"#Base.selectdim"},[e("span",{class:"jlbinding"},"Base.selectdim")],-1)),s[25]||(s[25]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=n('
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

',4))]),e("details",m,[e("summary",null,[s[27]||(s[27]=e("a",{id:"Tenet.slice!",href:"#Tenet.slice!"},[e("span",{class:"jlbinding"},"Tenet.slice!")],-1)),s[28]||(s[28]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=n('
julia
slice!(tn::AbstractTensorNetwork, index::Symbol, i)

In-place projection of index on dimension i.

See also: selectdim, view.

source

',4))]),e("details",f,[e("summary",null,[s[30]||(s[30]=e("a",{id:"Base.view-Tuple{TensorNetwork}",href:"#Base.view-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.view")],-1)),s[31]||(s[31]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[32]||(s[32]=n('
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

',4))]),e("details",j,[e("summary",null,[s[33]||(s[33]=e("a",{id:"Base.copy-Tuple{TensorNetwork}",href:"#Base.copy-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),s[34]||(s[34]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[35]||(s[35]=n('
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

',3))]),s[63]||(s[63]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer)"),i(". Check Documenter's build log for details.")])],-1)),s[64]||(s[64]=e("h2",{id:"transformations",tabindex:"-1"},[i("Transformations "),e("a",{class:"header-anchor",href:"#transformations","aria-label":'Permalink to "Transformations"'},"​")],-1)),e("details",w,[e("summary",null,[s[36]||(s[36]=e("a",{id:"Tenet.transform",href:"#Tenet.transform"},[e("span",{class:"jlbinding"},"Tenet.transform")],-1)),s[37]||(s[37]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=n(`
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

`,4))]),e("details",v,[e("summary",null,[s[39]||(s[39]=e("a",{id:"Tenet.transform!",href:"#Tenet.transform!"},[e("span",{class:"jlbinding"},"Tenet.transform!")],-1)),s[40]||(s[40]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=n(`
julia
transform!(tn::TensorNetwork, config::Transformation)
+transform!(tn::TensorNetwork, configs)

In-place version of transform.

source

`,3))]),e("details",F,[e("summary",null,[s[42]||(s[42]=e("a",{id:"Tenet.HyperFlatten",href:"#Tenet.HyperFlatten"},[e("span",{class:"jlbinding"},"Tenet.HyperFlatten")],-1)),s[43]||(s[43]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[44]||(s[44]=n('
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

',4))]),e("details",C,[e("summary",null,[s[45]||(s[45]=e("a",{id:"Tenet.HyperGroup",href:"#Tenet.HyperGroup"},[e("span",{class:"jlbinding"},"Tenet.HyperGroup")],-1)),s[46]||(s[46]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[47]||(s[47]=n('
julia
HyperGroup <: Transformation

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

See also: HyperFlatten.

source

',4))]),e("details",B,[e("summary",null,[s[48]||(s[48]=e("a",{id:"Tenet.ContractSimplification",href:"#Tenet.ContractSimplification"},[e("span",{class:"jlbinding"},"Tenet.ContractSimplification")],-1)),s[49]||(s[49]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[50]||(s[50]=n('
julia
ContractSimplification <: Transformation

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

source

',3))]),e("details",N,[e("summary",null,[s[51]||(s[51]=e("a",{id:"Tenet.DiagonalReduction",href:"#Tenet.DiagonalReduction"},[e("span",{class:"jlbinding"},"Tenet.DiagonalReduction")],-1)),s[52]||(s[52]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[53]||(s[53]=n('
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

source

',5))]),e("details",A,[e("summary",null,[s[54]||(s[54]=e("a",{id:"Tenet.AntiDiagonalGauging",href:"#Tenet.AntiDiagonalGauging"},[e("span",{class:"jlbinding"},"Tenet.AntiDiagonalGauging")],-1)),s[55]||(s[55]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=n('
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

source

',5))]),e("details",D,[e("summary",null,[s[57]||(s[57]=e("a",{id:"Tenet.Truncate",href:"#Tenet.Truncate"},[e("span",{class:"jlbinding"},"Tenet.Truncate")],-1)),s[58]||(s[58]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[59]||(s[59]=n('
julia
Truncate <: Transformation

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

Keyword Arguments

source

',5))]),s[65]||(s[65]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Tenet.SplitSimplificationd"),i(". Check Documenter's build log for details.")])],-1))])}const V=l(d,[["render",x]]);export{M as __pageData,V as default}; diff --git a/previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.lean.js b/previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.lean.js similarity index 92% rename from previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.lean.js rename to previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.lean.js index 75ba2063..9035e2d9 100644 --- a/previews/PR264/assets/api_tensornetwork.md.DhUYDEMx.lean.js +++ b/previews/PR264/assets/api_tensornetwork.md.BgtYFy5s.lean.js @@ -1,7 +1,7 @@ -import{_ as l,c as o,j as e,a as i,G as a,a5 as n,B as r,o as p}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"TensorNetwork","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensornetwork.md","filePath":"api/tensornetwork.md","lastUpdated":null}'),d={name:"api/tensornetwork.md"},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""};function x(L,s,R,q,P,O){const t=r("Badge");return p(),o("div",null,[s[60]||(s[60]=e("h1",{id:"tensornetwork",tabindex:"-1"},[i("TensorNetwork "),e("a",{class:"header-anchor",href:"#tensornetwork","aria-label":'Permalink to "TensorNetwork"'},"​")],-1)),e("details",k,[e("summary",null,[s[0]||(s[0]=e("a",{id:"Tenet.TensorNetwork",href:"#Tenet.TensorNetwork"},[e("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[1]||(s[1]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=n('
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

',3))]),s[61]||(s[61]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"inds(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"Base.size-Tuple{TensorNetwork}",href:"#Base.size-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),s[4]||(s[4]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=n(`
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

`,4))]),s[62]||(s[62]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"tensors(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",c,[e("summary",null,[s[6]||(s[6]=e("a",{id:"Base.push!-Tuple{TensorNetwork, Tensor}",href:"#Base.push!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),s[7]||(s[7]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=n('
julia
push!(tn::AbstractTensorNetwork, tensor::Tensor)

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

',4))]),e("details",g,[e("summary",null,[s[9]||(s[9]=e("a",{id:"Base.pop!-Tuple{TensorNetwork, Tensor}",href:"#Base.pop!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.pop!")],-1)),s[10]||(s[10]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=n(`
julia
pop!(tn::TensorNetwork, tensor::Tensor)
-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

`,4))]),e("details",u,[e("summary",null,[s[12]||(s[12]=e("a",{id:'Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}',href:'#Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}'},[e("span",{class:"jlbinding"},"Base.append!")],-1)),s[13]||(s[13]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=n('
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

',4))]),e("details",b,[e("summary",null,[s[15]||(s[15]=e("a",{id:"Base.merge!-Tuple{TensorNetwork, TensorNetwork}",href:"#Base.merge!-Tuple{TensorNetwork, TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.merge!")],-1)),s[16]||(s[16]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=n(`
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
-merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

`,4))]),e("details",y,[e("summary",null,[s[18]||(s[18]=e("a",{id:"Base.delete!-Tuple{TensorNetwork, Any}",href:"#Base.delete!-Tuple{TensorNetwork, Any}"},[e("span",{class:"jlbinding"},"Base.delete!")],-1)),s[19]||(s[19]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=n('
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

',3))]),e("details",f,[e("summary",null,[s[21]||(s[21]=e("a",{id:"Base.replace!",href:"#Base.replace!"},[e("span",{class:"jlbinding"},"Base.replace!")],-1)),s[22]||(s[22]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=n(`
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

`,4))]),e("details",T,[e("summary",null,[s[24]||(s[24]=e("a",{id:"Base.selectdim",href:"#Base.selectdim"},[e("span",{class:"jlbinding"},"Base.selectdim")],-1)),s[25]||(s[25]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=n('
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

',4))]),e("details",E,[e("summary",null,[s[27]||(s[27]=e("a",{id:"Tenet.slice!",href:"#Tenet.slice!"},[e("span",{class:"jlbinding"},"Tenet.slice!")],-1)),s[28]||(s[28]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=n('
julia
slice!(tn::AbstractTensorNetwork, index::Symbol, i)

In-place projection of index on dimension i.

See also: selectdim, view.

source

',4))]),e("details",m,[e("summary",null,[s[30]||(s[30]=e("a",{id:"Base.view-Tuple{TensorNetwork}",href:"#Base.view-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.view")],-1)),s[31]||(s[31]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[32]||(s[32]=n('
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

',4))]),e("details",j,[e("summary",null,[s[33]||(s[33]=e("a",{id:"Base.copy-Tuple{TensorNetwork}",href:"#Base.copy-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),s[34]||(s[34]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[35]||(s[35]=n('
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

',3))]),s[63]||(s[63]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer)"),i(". Check Documenter's build log for details.")])],-1)),s[64]||(s[64]=e("h2",{id:"transformations",tabindex:"-1"},[i("Transformations "),e("a",{class:"header-anchor",href:"#transformations","aria-label":'Permalink to "Transformations"'},"​")],-1)),e("details",w,[e("summary",null,[s[36]||(s[36]=e("a",{id:"Tenet.transform",href:"#Tenet.transform"},[e("span",{class:"jlbinding"},"Tenet.transform")],-1)),s[37]||(s[37]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=n(`
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

`,4))]),e("details",v,[e("summary",null,[s[39]||(s[39]=e("a",{id:"Tenet.transform!",href:"#Tenet.transform!"},[e("span",{class:"jlbinding"},"Tenet.transform!")],-1)),s[40]||(s[40]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=n(`
julia
transform!(tn::TensorNetwork, config::Transformation)
-transform!(tn::TensorNetwork, configs)

In-place version of transform.

source

`,3))]),e("details",F,[e("summary",null,[s[42]||(s[42]=e("a",{id:"Tenet.HyperFlatten",href:"#Tenet.HyperFlatten"},[e("span",{class:"jlbinding"},"Tenet.HyperFlatten")],-1)),s[43]||(s[43]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[44]||(s[44]=n('
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

',4))]),e("details",C,[e("summary",null,[s[45]||(s[45]=e("a",{id:"Tenet.HyperGroup",href:"#Tenet.HyperGroup"},[e("span",{class:"jlbinding"},"Tenet.HyperGroup")],-1)),s[46]||(s[46]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[47]||(s[47]=n('
julia
HyperGroup <: Transformation

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

See also: HyperFlatten.

source

',4))]),e("details",B,[e("summary",null,[s[48]||(s[48]=e("a",{id:"Tenet.ContractSimplification",href:"#Tenet.ContractSimplification"},[e("span",{class:"jlbinding"},"Tenet.ContractSimplification")],-1)),s[49]||(s[49]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[50]||(s[50]=n('
julia
ContractSimplification <: Transformation

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

source

',3))]),e("details",N,[e("summary",null,[s[51]||(s[51]=e("a",{id:"Tenet.DiagonalReduction",href:"#Tenet.DiagonalReduction"},[e("span",{class:"jlbinding"},"Tenet.DiagonalReduction")],-1)),s[52]||(s[52]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[53]||(s[53]=n('
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

source

',5))]),e("details",A,[e("summary",null,[s[54]||(s[54]=e("a",{id:"Tenet.AntiDiagonalGauging",href:"#Tenet.AntiDiagonalGauging"},[e("span",{class:"jlbinding"},"Tenet.AntiDiagonalGauging")],-1)),s[55]||(s[55]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=n('
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

source

',5))]),e("details",D,[e("summary",null,[s[57]||(s[57]=e("a",{id:"Tenet.Truncate",href:"#Tenet.Truncate"},[e("span",{class:"jlbinding"},"Tenet.Truncate")],-1)),s[58]||(s[58]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[59]||(s[59]=n('
julia
Truncate <: Transformation

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

Keyword Arguments

source

',5))]),s[65]||(s[65]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Tenet.SplitSimplificationd"),i(". Check Documenter's build log for details.")])],-1))])}const V=l(d,[["render",x]]);export{M as __pageData,V as default}; +import{_ as l,c as o,j as e,a as i,G as a,a5 as n,B as r,o as p}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"TensorNetwork","description":"","frontmatter":{},"headers":[],"relativePath":"api/tensornetwork.md","filePath":"api/tensornetwork.md","lastUpdated":null}'),d={name:"api/tensornetwork.md"},k={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""};function x(L,s,R,q,P,O){const t=r("Badge");return p(),o("div",null,[s[60]||(s[60]=e("h1",{id:"tensornetwork",tabindex:"-1"},[i("TensorNetwork "),e("a",{class:"header-anchor",href:"#tensornetwork","aria-label":'Permalink to "TensorNetwork"'},"​")],-1)),e("details",k,[e("summary",null,[s[0]||(s[0]=e("a",{id:"Tenet.TensorNetwork",href:"#Tenet.TensorNetwork"},[e("span",{class:"jlbinding"},"Tenet.TensorNetwork")],-1)),s[1]||(s[1]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[2]||(s[2]=n('
julia
TensorNetwork

Graph of interconnected tensors, representing a multilinear equation. Graph vertices represent tensors and graph edges, tensor indices.

source

',3))]),s[61]||(s[61]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"inds(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[s[3]||(s[3]=e("a",{id:"Base.size-Tuple{TensorNetwork}",href:"#Base.size-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.size")],-1)),s[4]||(s[4]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[5]||(s[5]=n(`
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

`,4))]),s[62]||(s[62]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"tensors(::Tenet.TensorNetwork)"),i(". Check Documenter's build log for details.")])],-1)),e("details",c,[e("summary",null,[s[6]||(s[6]=e("a",{id:"Base.push!-Tuple{TensorNetwork, Tensor}",href:"#Base.push!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.push!")],-1)),s[7]||(s[7]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[8]||(s[8]=n('
julia
push!(tn::AbstractTensorNetwork, tensor::Tensor)

Add a new tensor to the Tensor Network.

See also: append!, pop!.

source

',4))]),e("details",g,[e("summary",null,[s[9]||(s[9]=e("a",{id:"Base.pop!-Tuple{TensorNetwork, Tensor}",href:"#Base.pop!-Tuple{TensorNetwork, Tensor}"},[e("span",{class:"jlbinding"},"Base.pop!")],-1)),s[10]||(s[10]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[11]||(s[11]=n(`
julia
pop!(tn::TensorNetwork, tensor::Tensor)
+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

`,4))]),e("details",u,[e("summary",null,[s[12]||(s[12]=e("a",{id:'Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}',href:'#Base.append!-Tuple{TensorNetwork, Union{Tuple{Vararg{var"#s12"}}, AbstractVector{<:var"#s12"}} where var"#s12"<:Tensor}'},[e("span",{class:"jlbinding"},"Base.append!")],-1)),s[13]||(s[13]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[14]||(s[14]=n('
julia
append!(tn::TensorNetwork, tensors::AbstractVecOrTuple{<:Tensor})

Add a list of tensors to a TensorNetwork.

See also: push!, merge!.

source

',4))]),e("details",b,[e("summary",null,[s[15]||(s[15]=e("a",{id:"Base.merge!-Tuple{TensorNetwork, TensorNetwork}",href:"#Base.merge!-Tuple{TensorNetwork, TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.merge!")],-1)),s[16]||(s[16]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[17]||(s[17]=n(`
julia
merge!(self::TensorNetwork, others::TensorNetwork...)
+merge(self::TensorNetwork, others::TensorNetwork...)

Fuse various TensorNetworks into one.

See also: append!.

source

`,4))]),e("details",y,[e("summary",null,[s[18]||(s[18]=e("a",{id:"Base.delete!-Tuple{TensorNetwork, Any}",href:"#Base.delete!-Tuple{TensorNetwork, Any}"},[e("span",{class:"jlbinding"},"Base.delete!")],-1)),s[19]||(s[19]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[20]||(s[20]=n('
julia
delete!(tn::TensorNetwork, x)

Like pop! but return the TensorNetwork instead.

source

',3))]),e("details",T,[e("summary",null,[s[21]||(s[21]=e("a",{id:"Base.replace!",href:"#Base.replace!"},[e("span",{class:"jlbinding"},"Base.replace!")],-1)),s[22]||(s[22]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[23]||(s[23]=n(`
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

`,4))]),e("details",E,[e("summary",null,[s[24]||(s[24]=e("a",{id:"Base.selectdim",href:"#Base.selectdim"},[e("span",{class:"jlbinding"},"Base.selectdim")],-1)),s[25]||(s[25]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[26]||(s[26]=n('
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

',4))]),e("details",m,[e("summary",null,[s[27]||(s[27]=e("a",{id:"Tenet.slice!",href:"#Tenet.slice!"},[e("span",{class:"jlbinding"},"Tenet.slice!")],-1)),s[28]||(s[28]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[29]||(s[29]=n('
julia
slice!(tn::AbstractTensorNetwork, index::Symbol, i)

In-place projection of index on dimension i.

See also: selectdim, view.

source

',4))]),e("details",f,[e("summary",null,[s[30]||(s[30]=e("a",{id:"Base.view-Tuple{TensorNetwork}",href:"#Base.view-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.view")],-1)),s[31]||(s[31]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[32]||(s[32]=n('
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

',4))]),e("details",j,[e("summary",null,[s[33]||(s[33]=e("a",{id:"Base.copy-Tuple{TensorNetwork}",href:"#Base.copy-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"Base.copy")],-1)),s[34]||(s[34]=i()),a(t,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[35]||(s[35]=n('
julia
copy(tn::TensorNetwork)

Return a shallow copy of a TensorNetwork.

source

',3))]),s[63]||(s[63]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Base.rand(::Type{TensorNetwork}, n::Integer, regularity::Integer)"),i(". Check Documenter's build log for details.")])],-1)),s[64]||(s[64]=e("h2",{id:"transformations",tabindex:"-1"},[i("Transformations "),e("a",{class:"header-anchor",href:"#transformations","aria-label":'Permalink to "Transformations"'},"​")],-1)),e("details",w,[e("summary",null,[s[36]||(s[36]=e("a",{id:"Tenet.transform",href:"#Tenet.transform"},[e("span",{class:"jlbinding"},"Tenet.transform")],-1)),s[37]||(s[37]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[38]||(s[38]=n(`
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

`,4))]),e("details",v,[e("summary",null,[s[39]||(s[39]=e("a",{id:"Tenet.transform!",href:"#Tenet.transform!"},[e("span",{class:"jlbinding"},"Tenet.transform!")],-1)),s[40]||(s[40]=i()),a(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[41]||(s[41]=n(`
julia
transform!(tn::TensorNetwork, config::Transformation)
+transform!(tn::TensorNetwork, configs)

In-place version of transform.

source

`,3))]),e("details",F,[e("summary",null,[s[42]||(s[42]=e("a",{id:"Tenet.HyperFlatten",href:"#Tenet.HyperFlatten"},[e("span",{class:"jlbinding"},"Tenet.HyperFlatten")],-1)),s[43]||(s[43]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[44]||(s[44]=n('
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

',4))]),e("details",C,[e("summary",null,[s[45]||(s[45]=e("a",{id:"Tenet.HyperGroup",href:"#Tenet.HyperGroup"},[e("span",{class:"jlbinding"},"Tenet.HyperGroup")],-1)),s[46]||(s[46]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[47]||(s[47]=n('
julia
HyperGroup <: Transformation

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

See also: HyperFlatten.

source

',4))]),e("details",B,[e("summary",null,[s[48]||(s[48]=e("a",{id:"Tenet.ContractSimplification",href:"#Tenet.ContractSimplification"},[e("span",{class:"jlbinding"},"Tenet.ContractSimplification")],-1)),s[49]||(s[49]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[50]||(s[50]=n('
julia
ContractSimplification <: Transformation

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

source

',3))]),e("details",N,[e("summary",null,[s[51]||(s[51]=e("a",{id:"Tenet.DiagonalReduction",href:"#Tenet.DiagonalReduction"},[e("span",{class:"jlbinding"},"Tenet.DiagonalReduction")],-1)),s[52]||(s[52]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[53]||(s[53]=n('
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

source

',5))]),e("details",A,[e("summary",null,[s[54]||(s[54]=e("a",{id:"Tenet.AntiDiagonalGauging",href:"#Tenet.AntiDiagonalGauging"},[e("span",{class:"jlbinding"},"Tenet.AntiDiagonalGauging")],-1)),s[55]||(s[55]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[56]||(s[56]=n('
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

source

',5))]),e("details",D,[e("summary",null,[s[57]||(s[57]=e("a",{id:"Tenet.Truncate",href:"#Tenet.Truncate"},[e("span",{class:"jlbinding"},"Tenet.Truncate")],-1)),s[58]||(s[58]=i()),a(t,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[59]||(s[59]=n('
julia
Truncate <: Transformation

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

Keyword Arguments

source

',5))]),s[65]||(s[65]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[i("Missing docstring for "),e("code",null,"Tenet.SplitSimplificationd"),i(". Check Documenter's build log for details.")])],-1))])}const V=l(d,[["render",x]]);export{M as __pageData,V as default}; diff --git a/previews/PR264/assets/app.B_Aj8mtr.js b/previews/PR264/assets/app.CGOyR3-U.js similarity index 95% rename from previews/PR264/assets/app.B_Aj8mtr.js rename to previews/PR264/assets/app.CGOyR3-U.js index 7f06806b..aff5eb73 100644 --- a/previews/PR264/assets/app.B_Aj8mtr.js +++ b/previews/PR264/assets/app.CGOyR3-U.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.COxracLc.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.OJaHWZpq.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.B6ti37H5.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.OJaHWZpq.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/previews/PR264/assets/chunks/@localSearchIndexroot.CrmBCKsK.js b/previews/PR264/assets/chunks/@localSearchIndexroot.CrmBCKsK.js deleted file mode 100644 index 92bd53a5..00000000 --- a/previews/PR264/assets/chunks/@localSearchIndexroot.CrmBCKsK.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":36,"nextId":36,"documentIds":{"0":"/Tenet.jl/previews/PR264/api/ansatz#ansatz","1":"/Tenet.jl/previews/PR264/api/ansatz#mps","2":"/Tenet.jl/previews/PR264/api/quantum#quantum","3":"/Tenet.jl/previews/PR264/api/tensor#tensor","4":"/Tenet.jl/previews/PR264/api/tensornetwork#tensornetwork","5":"/Tenet.jl/previews/PR264/api/tensornetwork#transformations","6":"/Tenet.jl/previews/PR264/developer/cached-field#Cached-field","7":"/Tenet.jl/previews/PR264/developer/type-hierarchy#Inheritance-and-Traits","8":"/Tenet.jl/previews/PR264/developer/unsafe-region#Unsafe-regions","9":"/Tenet.jl/previews/PR264/friends#friends","10":"/Tenet.jl/previews/PR264/#features","11":"/Tenet.jl/previews/PR264/manual/ansatz/#ansatz","12":"/Tenet.jl/previews/PR264/manual/ansatz/mps#Matrix-Product-States-(MPS)","13":"/Tenet.jl/previews/PR264/manual/ansatz/mps#Matrix-Product-Operators-(MPO)","14":"/Tenet.jl/previews/PR264/manual/ansatz/product#Product-ansatz","15":"/Tenet.jl/previews/PR264/manual/contraction#contraction","16":"/Tenet.jl/previews/PR264/manual/quantum#Quantum-Tensor-Networks","17":"/Tenet.jl/previews/PR264/manual/quantum#queries","18":"/Tenet.jl/previews/PR264/manual/quantum#Connecting-Quantum-Tensor-Networks","19":"/Tenet.jl/previews/PR264/manual/tensor-network#Tensor-Networks","20":"/Tenet.jl/previews/PR264/manual/tensor-network#Query-information","21":"/Tenet.jl/previews/PR264/manual/tensor-network#modification","22":"/Tenet.jl/previews/PR264/manual/tensor-network#Add/Remove-tensors","23":"/Tenet.jl/previews/PR264/manual/tensor-network#Replace-existing-elements","24":"/Tenet.jl/previews/PR264/manual/tensor-network#slicing","25":"/Tenet.jl/previews/PR264/manual/tensors#tensors","26":"/Tenet.jl/previews/PR264/manual/tensors#The-Tensor-type","27":"/Tenet.jl/previews/PR264/manual/transformations#transformations","28":"/Tenet.jl/previews/PR264/manual/transformations#Available-transformations","29":"/Tenet.jl/previews/PR264/manual/transformations#Hyperindex-converter","30":"/Tenet.jl/previews/PR264/manual/transformations#Contraction-simplification","31":"/Tenet.jl/previews/PR264/manual/transformations#Diagonal-reduction","32":"/Tenet.jl/previews/PR264/manual/transformations#Anti-diagonal-reduction","33":"/Tenet.jl/previews/PR264/manual/transformations#Dimension-truncation","34":"/Tenet.jl/previews/PR264/manual/transformations#Split-simplification","35":"/Tenet.jl/previews/PR264/visualization#visualization"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,1],"1":[1,1,14],"2":[1,1,92],"3":[1,1,70],"4":[1,1,148],"5":[1,1,120],"6":[2,1,1],"7":[3,1,123],"8":[2,1,25],"9":[1,1,61],"10":[1,1,21],"11":[1,1,1],"12":[5,1,67],"13":[5,5,76],"14":[2,1,1],"15":[1,1,99],"16":[3,1,1],"17":[1,3,1],"18":[4,3,1],"19":[2,1,47],"20":[2,2,1],"21":[1,2,1],"22":[3,3,1],"23":[3,3,1],"24":[1,2,1],"25":[1,1,118],"26":[3,1,134],"27":[1,1,96],"28":[2,1,1],"29":[2,3,1],"30":[2,3,1],"31":[2,3,1],"32":[3,3,1],"33":[2,3,1],"34":[2,3,1],"35":[1,1,53]},"averageFieldLength":[1.9444444444444444,1.75,38.41666666666666],"storedFields":{"0":{"title":"Ansatz","titles":[]},"1":{"title":"MPS","titles":["Ansatz"]},"2":{"title":"Quantum","titles":[]},"3":{"title":"Tensor","titles":[]},"4":{"title":"TensorNetwork","titles":[]},"5":{"title":"Transformations","titles":["TensorNetwork"]},"6":{"title":"Cached field","titles":[]},"7":{"title":"Inheritance and Traits","titles":[]},"8":{"title":"Unsafe regions","titles":[]},"9":{"title":"Friends","titles":[]},"10":{"title":"Features","titles":[]},"11":{"title":"Ansatz","titles":[]},"12":{"title":"Matrix Product States (MPS)","titles":[]},"13":{"title":"Matrix Product Operators (MPO)","titles":["Matrix Product States (MPS)"]},"14":{"title":"Product ansatz","titles":[]},"15":{"title":"Contraction","titles":[]},"16":{"title":"Quantum Tensor Networks","titles":[]},"17":{"title":"Queries","titles":["Quantum Tensor Networks"]},"18":{"title":"Connecting Quantum Tensor Networks","titles":["Quantum Tensor Networks"]},"19":{"title":"Tensor Networks","titles":[]},"20":{"title":"Query information","titles":["Tensor Networks"]},"21":{"title":"Modification","titles":["Tensor Networks"]},"22":{"title":"Add/Remove tensors","titles":["Tensor Networks","Modification"]},"23":{"title":"Replace existing elements","titles":["Tensor Networks","Modification"]},"24":{"title":"Slicing","titles":["Tensor Networks"]},"25":{"title":"Tensors","titles":[]},"26":{"title":"The Tensor type","titles":["Tensors"]},"27":{"title":"Transformations","titles":[]},"28":{"title":"Available transformations","titles":["Transformations"]},"29":{"title":"Hyperindex converter","titles":["Transformations","Available transformations"]},"30":{"title":"Contraction simplification","titles":["Transformations","Available transformations"]},"31":{"title":"Diagonal reduction","titles":["Transformations","Available transformations"]},"32":{"title":"Anti-diagonal reduction","titles":["Transformations","Available transformations"]},"33":{"title":"Dimension truncation","titles":["Transformations","Available transformations"]},"34":{"title":"Split simplification","titles":["Transformations","Available transformations"]},"35":{"title":"Visualization","titles":[]}},"dirtCount":0,"index":[["↩︎",{"2":{"26":3}}],["81741",{"2":{"26":1}}],["865824",{"2":{"26":1}}],["657279",{"2":{"26":1}}],["673574",{"2":{"26":1}}],["944653",{"2":{"26":1}}],["985415",{"2":{"26":1}}],["960216",{"2":{"26":1}}],["978749",{"2":{"26":1}}],["976206",{"2":{"26":1}}],["726671",{"2":{"26":1}}],["705407",{"2":{"26":1}}],["708809",{"2":{"26":1}}],["768274",{"2":{"26":1}}],["421887",{"2":{"26":1}}],["410891",{"2":{"26":1}}],["40146",{"2":{"26":1}}],["443304",{"2":{"26":1}}],["442035",{"2":{"26":1}}],["455892",{"2":{"26":1}}],["0205745",{"2":{"26":1}}],["0266599",{"2":{"26":1}}],["0",{"2":{"25":1,"26":30}}],["∈fdim⁡",{"2":{"25":1}}],["↦fin",{"2":{"25":1}}],["×⋯×fdim⁡",{"2":{"25":1}}],["∑ijklmnopaimbijpcnjkdpklemnofolcan",{"2":{"19":1}}],["2021",{"2":{"27":1}}],["24676",{"2":{"26":1}}],["2",{"2":{"12":2,"13":3,"25":2,"26":3}}],["χ=4",{"2":{"12":2,"13":2}}],["30",{"2":{"26":1}}],["378477",{"2":{"26":1}}],["346929",{"2":{"26":1}}],["35523",{"2":{"26":1}}],["3×5×2",{"2":{"26":1}}],["3",{"2":{"25":1,"26":4}}],["3d",{"2":{"10":1}}],["39",{"2":{"2":10,"3":2,"4":3,"5":3,"7":2,"9":2,"15":2,"19":1,"25":2,"27":2}}],["your",{"2":{"9":1,"27":1}}],["you",{"2":{"8":1,"25":3,"26":1,"27":1,"35":1}}],["years",{"2":{"7":1}}],["519334",{"2":{"26":1}}],["581237",{"2":{"26":1}}],["584914",{"2":{"26":1}}],["5",{"2":{"7":10,"12":2,"13":2,"26":3}}],[">|contains|",{"2":{"7":5}}],[">|inherits|",{"2":{"7":10}}],["just",{"2":{"35":1}}],["juliagraphplot",{"2":{"35":2}}],["julia>",{"2":{"26":2}}],["juliajulia>",{"2":{"26":2}}],["juliaeinexpr",{"2":{"15":1}}],["julia",{"2":{"7":4,"8":1,"9":1}}],["juliadiagonalreduction",{"2":{"5":1}}],["juliadelete",{"2":{"4":1}}],["juliahypergroup",{"2":{"5":1}}],["juliahyperflatten",{"2":{"5":1}}],["juliatruncate",{"2":{"5":1}}],["juliatransform",{"2":{"5":2}}],["juliatensornetwork",{"2":{"2":1,"4":1}}],["juliacopy",{"2":{"4":1}}],["juliacontractsimplification",{"2":{"5":1}}],["juliacontract",{"2":{"3":1,"15":1}}],["juliaview",{"2":{"4":1}}],["juliareplace",{"2":{"4":1}}],["juliamermaid",{"2":{"7":1}}],["juliamerge",{"2":{"4":1}}],["juliamps",{"2":{"1":1}}],["juliaantidiagonalgauging",{"2":{"5":1}}],["juliaappend",{"2":{"4":1}}],["juliaadjoint",{"2":{"2":1}}],["juliapop",{"2":{"4":1}}],["juliapush",{"2":{"4":1}}],["julialinearalgebra",{"2":{"3":3}}],["juliabase",{"2":{"3":1}}],["juliaoperator",{"2":{"2":1}}],["juliaslice",{"2":{"4":1}}],["juliaselectdim",{"2":{"4":1}}],["juliasize",{"2":{"4":1}}],["juliasites",{"2":{"2":1}}],["juliastate",{"2":{"2":1}}],["juliascalar",{"2":{"2":1}}],["juliasocket",{"2":{"2":1}}],["juliansites",{"2":{"2":1}}],["juliaquantum",{"2":{"2":1}}],["j",{"2":{"25":1,"26":2}}],["jokes",{"2":{"25":1}}],["jl",{"2":{"9":2}}],["java",{"2":{"7":1}}],["giving",{"2":{"25":1}}],["give",{"2":{"25":1}}],["given",{"2":{"15":1}}],["gridposition",{"2":{"35":1}}],["gray",{"2":{"27":1}}],["graphplot",{"2":{"35":5}}],["graphmakie",{"2":{"35":3}}],["graphical",{"2":{"19":1}}],["graph",{"2":{"4":3,"7":1,"19":1,"35":1}}],["graphs",{"2":{"3":1}}],["greedy",{"2":{"15":1}}],["generic",{"2":{"13":1}}],["generalization",{"2":{"25":1}}],["general",{"2":{"7":1}}],["good",{"2":{"25":1,"27":1}}],["gonna",{"2":{"25":1}}],["go",{"2":{"7":1}}],["176675",{"2":{"26":1}}],["17127",{"2":{"26":1}}],["1",{"2":{"12":6,"13":9,"25":4,"26":1}}],["1d",{"2":{"12":1}}],["12",{"2":{"5":3}}],["1e",{"2":{"5":3}}],["however",{"2":{"26":1}}],["how",{"2":{"25":1}}],["here",{"2":{"25":2}}],["higher",{"2":{"25":1}}],["hide",{"2":{"12":8,"13":8}}],["hierarchy",{"2":{"7":1}}],["have",{"2":{"7":2,"13":2,"25":1}}],["has",{"2":{"4":2,"5":2,"7":2,"15":1,"26":1}}],["hyperindex",{"0":{"29":1}}],["hyperindices",{"2":{"5":2}}],["hypergroup",{"2":{"5":2}}],["hyperflatten",{"2":{"5":2}}],["x",{"2":{"4":1}}],["x3c",{"2":{"1":1,"2":3,"4":1,"5":6}}],["≡",{"2":{"4":2}}],["v",{"2":{"25":3}}],["vectors",{"2":{"25":2}}],["vector",{"2":{"25":2,"26":1}}],["version",{"2":{"5":1,"13":1}}],["vertices",{"2":{"4":1}}],["variables",{"2":{"13":1}}],["various",{"2":{"4":1,"27":1}}],["visually",{"2":{"19":1}}],["visualization",{"0":{"35":1},"2":{"10":1}}],["visualizing",{"2":{"5":1}}],["viewed",{"2":{"25":1}}],["view",{"2":{"4":3}}],["virtual",{"2":{"3":3}}],["virtualind",{"2":{"3":6}}],["using",{"2":{"26":1,"27":1}}],["use",{"2":{"25":1,"26":1}}],["used",{"2":{"3":6,"5":1,"13":1,"25":1}}],["up",{"2":{"5":1}}],["unsafe",{"0":{"8":1},"2":{"8":1}}],["union",{"2":{"4":1,"35":2}}],["underlying",{"2":{"2":1,"3":1}}],["kourtis",{"2":{"27":1}}],["k",{"2":{"25":1,"26":1}}],["kill",{"2":{"25":1}}],["kind",{"2":{"7":1}}],["know",{"2":{"25":1}}],["known",{"2":{"12":1,"26":1}}],["keyword",{"2":{"3":3,"5":3,"15":1,"35":1}}],["kwargs",{"2":{"2":2,"3":3,"15":2,"35":4}}],["float64",{"2":{"26":2}}],["flexible",{"2":{"9":1}}],["fdim⁡",{"2":{"25":1}}],["f",{"2":{"25":1,"35":1}}],["features",{"0":{"10":1}}],["framework",{"2":{"9":1}}],["friends",{"0":{"9":1}}],["from",{"2":{"4":2,"7":2}}],["false",{"2":{"35":1}}],["factoring",{"2":{"27":1}}],["factorization",{"2":{"3":9}}],["favouring",{"2":{"7":1}}],["fig",{"2":{"12":5,"13":5}}],["figure",{"2":{"12":1,"13":1,"35":1}}],["fit",{"2":{"9":1}}],["fields",{"2":{"7":3,"12":1,"26":1}}],["field",{"0":{"6":1},"2":{"25":1}}],["first",{"2":{"4":2}}],["further",{"2":{"27":1}}],["function",{"2":{"25":1,"26":1}}],["functions",{"2":{"19":2,"27":1}}],["functionality",{"2":{"13":1}}],["fulfill",{"2":{"5":1}}],["fulfil",{"2":{"5":1}}],["fuse",{"2":{"4":1}}],["found",{"2":{"27":1}}],["focus",{"2":{"9":1}}],["following",{"2":{"4":1,"19":2}}],["forbid",{"2":{"7":1}}],["form",{"2":{"7":1,"15":1}}],["for",{"2":{"2":20,"3":4,"4":6,"5":3,"9":1,"15":4,"19":2,"25":1,"26":1,"27":1,"35":1}}],["rank",{"2":{"26":2,"27":2}}],["rand",{"2":{"4":1,"12":2,"13":2,"26":1}}],["random",{"2":{"3":3}}],["rather",{"2":{"7":1}}],["rust",{"2":{"7":1}}],["right",{"2":{"3":12}}],["reduction",{"0":{"31":1,"32":1}}],["reducing",{"2":{"27":1}}],["reduces",{"2":{"27":1}}],["reduce",{"2":{"5":1,"27":2}}],["reason",{"2":{"27":1}}],["reached",{"2":{"25":1}}],["relationships",{"2":{"26":1}}],["relates",{"2":{"25":1}}],["remainder",{"2":{"25":1}}],["removed",{"2":{"4":1}}],["remove",{"0":{"22":1},"2":{"4":2}}],["region",{"2":{"8":1}}],["regions",{"0":{"8":1}}],["regularity",{"2":{"4":1}}],["recommend",{"2":{"9":1}}],["recent",{"2":{"7":1}}],["recursive",{"2":{"4":1,"26":1}}],["rest",{"2":{"35":1}}],["restricted",{"2":{"7":1}}],["result",{"2":{"5":1}}],["reverse",{"2":{"5":1}}],["renaming",{"2":{"4":1}}],["replaced",{"2":{"4":1}}],["replace",{"0":{"23":1},"2":{"4":3}}],["represents",{"2":{"15":1}}],["represented",{"2":{"5":2,"19":2,"26":1}}],["represent",{"2":{"4":1,"19":2}}],["representing",{"2":{"2":3,"4":1,"19":1}}],["return",{"2":{"3":1,"4":7,"5":1,"15":1}}],["returns",{"2":{"2":5,"4":1}}],["referenced",{"2":{"2":1}}],["permuting",{"2":{"27":1}}],["per",{"2":{"13":2}}],["periodic",{"2":{"12":5,"13":5}}],["performed",{"2":{"5":1}}],["perform",{"2":{"3":4}}],["pytorch",{"2":{"9":1}}],["python",{"2":{"7":1,"9":2}}],["physics",{"2":{"9":1}}],["powered",{"2":{"10":3}}],["polymorphic",{"2":{"7":1}}],["popular",{"2":{"7":1}}],["pop",{"2":{"4":4}}],["predefined",{"2":{"27":1}}],["prepare",{"2":{"27":1}}],["prefer",{"2":{"26":1}}],["preemptively",{"2":{"5":1}}],["practice",{"2":{"7":1,"27":1}}],["provides",{"2":{"35":1}}],["provide",{"2":{"27":1}}],["probably",{"2":{"25":1}}],["problem",{"2":{"9":1,"27":1}}],["programming",{"2":{"7":1}}],["projection",{"2":{"4":1}}],["projected",{"2":{"4":2}}],["product",{"0":{"12":1,"13":1,"14":1},"1":{"13":1},"2":{"1":1,"7":2,"12":1,"13":2}}],["please",{"2":{"25":1}}],["plot",{"2":{"5":1,"12":2,"13":2,"35":1}}],["place",{"2":{"4":1,"5":1,"15":1}}],["package",{"2":{"35":1}}],["passing",{"2":{"26":1}}],["passed",{"2":{"4":2,"15":1,"35":1}}],["path",{"2":{"15":4,"27":1}}],["particular",{"2":{"7":1}}],["parent",{"2":{"3":1,"7":1}}],["pair",{"2":{"5":1}}],["push",{"2":{"4":3,"8":1}}],["=c∈f∀i",{"2":{"25":1}}],["=>",{"2":{"4":3}}],["===",{"2":{"4":2}}],["=",{"2":{"2":1,"12":3,"13":3,"15":2,"26":3}}],["wraps",{"2":{"26":1}}],["written",{"2":{"9":3}}],["writing",{"2":{"7":1}}],["word",{"2":{"26":1}}],["would",{"2":{"25":1}}],["won",{"2":{"15":1}}],["we",{"2":{"9":1,"25":2,"26":1,"27":1}}],["want",{"2":{"8":1}}],["why",{"2":{"27":1}}],["whatever",{"2":{"26":1}}],["wha",{"2":{"25":1}}],["which",{"2":{"7":2,"8":1,"9":1,"15":2,"26":1,"27":2}}],["while",{"2":{"5":1,"13":1}}],["whose",{"2":{"5":1,"12":1,"25":1}}],["when",{"2":{"5":3}}],["where",{"2":{"4":2,"5":1,"25":1}}],["whether",{"2":{"2":1}}],["wild",{"2":{"9":1}}],["will",{"2":{"4":3}}],["with",{"2":{"2":5,"4":1,"5":2,"7":1,"9":1,"19":1,"25":1,"26":2}}],["layout=stress",{"2":{"35":1}}],["layout=spring",{"2":{"12":2,"13":2}}],["layman",{"2":{"25":1}}],["labels=true",{"2":{"35":1}}],["labels",{"2":{"35":2}}],["label",{"2":{"12":2,"13":2}}],["laid",{"2":{"12":1,"15":1}}],["large",{"2":{"10":1}}],["languages",{"2":{"7":2}}],["lanes",{"2":{"2":1}}],["locally",{"2":{"27":1}}],["lower",{"2":{"15":1}}],["look",{"2":{"9":1}}],["looks",{"2":{"7":1}}],["log",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["lies",{"2":{"27":1}}],["library",{"2":{"9":2,"15":1}}],["libraries",{"2":{"9":1}}],["like",{"2":{"4":1,"7":3,"26":1}}],["list",{"2":{"4":2,"5":2,"26":2}}],["linear",{"2":{"19":1,"25":2,"26":2}}],["linearalgebra",{"2":{"3":3}}],["linalg",{"2":{"3":1}}],["lu",{"2":{"3":5}}],["length",{"2":{"26":1}}],["letters",{"2":{"25":1}}],["level",{"2":{"15":1}}],["left",{"2":{"3":12}}],["leads",{"2":{"2":1}}],["drastically",{"2":{"27":1}}],["due",{"2":{"12":1}}],["dual",{"2":{"2":1}}],["dasharray",{"2":{"7":5}}],["don",{"2":{"25":1}}],["do",{"2":{"5":1,"7":1,"26":1}}],["doesn",{"2":{"5":2,"9":1,"27":1}}],["documentation",{"2":{"15":1}}],["documenter",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["docstring",{"2":{"2":20,"3":4,"4":6,"5":2,"15":2}}],["definitions",{"2":{"26":1}}],["definition",{"2":{"25":1}}],["define",{"2":{"25":1}}],["default",{"2":{"5":1}}],["defaults",{"2":{"3":9,"5":5,"15":1,"35":1}}],["design",{"2":{"7":1,"9":1}}],["delegated",{"2":{"15":1}}],["delete",{"2":{"4":2}}],["deltaarrays",{"2":{"5":2}}],["depending",{"2":{"4":1,"12":1}}],["details",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["dispatched",{"2":{"26":1}}],["difference",{"2":{"13":1}}],["differentiation",{"2":{"10":1}}],["directly",{"2":{"5":1}}],["directionality",{"2":{"2":1}}],["diagonal",{"0":{"31":1,"32":1},"2":{"5":2}}],["diagonalreduction",{"2":{"5":1}}],["dims=nonunique",{"2":{"3":1}}],["dimensions",{"2":{"25":1}}],["dimensional",{"2":{"25":1}}],["dimensionality",{"2":{"4":1,"26":3}}],["dimensionalities",{"2":{"4":1}}],["dimension",{"0":{"33":1},"2":{"3":1,"4":3,"5":2}}],["crucial",{"2":{"27":1}}],["create",{"2":{"26":1}}],["c=0",{"2":{"12":2,"13":2}}],["chains",{"2":{"12":1}}],["chain",{"2":{"12":1}}],["chainrules",{"2":{"10":1}}],["checks",{"2":{"8":1}}],["check",{"2":{"2":10,"3":2,"4":3,"5":1,"15":2}}],["cuttings",{"2":{"10":1}}],["closed",{"2":{"12":1}}],["class",{"2":{"7":1}}],["clear",{"2":{"7":1}}],["c++",{"2":{"7":1}}],["case",{"2":{"9":1,"25":1}}],["cases",{"2":{"8":1}}],["cannot",{"2":{"7":1}}],["can",{"2":{"7":3,"12":1,"19":1,"25":1,"26":4,"27":2,"35":1}}],["cached",{"0":{"6":1}}],["call",{"2":{"4":1,"35":1}}],["causality",{"2":{"2":1}}],["cost",{"2":{"27":1}}],["correct",{"2":{"25":1}}],["correspond",{"2":{"4":1}}],["computations",{"2":{"27":1}}],["computational",{"2":{"5":1,"27":1}}],["computer",{"2":{"25":1}}],["complex",{"2":{"19":1}}],["completely",{"2":{"7":1}}],["composition",{"2":{"7":1}}],["compared",{"2":{"7":1}}],["columns",{"2":{"5":1}}],["copy",{"2":{"4":4,"5":2}}],["consulted",{"2":{"26":1}}],["considered",{"2":{"7":1}}],["connecting",{"0":{"18":1}}],["connected",{"2":{"15":1}}],["concrete",{"2":{"7":1}}],["conditions",{"2":{"12":2,"13":1}}],["condition",{"2":{"5":1}}],["converter",{"0":{"29":1}}],["convert",{"2":{"5":2}}],["configs",{"2":{"5":2}}],["config",{"2":{"5":2}}],["contains",{"2":{"5":1}}],["contain",{"2":{"4":1}}],["contracting",{"2":{"27":1}}],["contraction",{"0":{"15":1,"30":1},"2":{"3":1,"10":2,"15":5,"27":2}}],["contracted",{"2":{"15":1}}],["contractsimplification",{"2":{"5":1}}],["contract",{"2":{"3":1,"5":1,"15":4}}],["conjugate",{"2":{"2":1}}],["einsum",{"2":{"15":1}}],["einstein",{"2":{"15":1}}],["einexpr",{"2":{"15":3}}],["einexprs",{"2":{"10":2,"15":4}}],["every",{"2":{"15":1}}],["enough",{"2":{"25":1}}],["end",{"2":{"8":1}}],["enhance",{"2":{"5":1}}],["es",{"2":{"7":1}}],["efficiency",{"2":{"5":1}}],["each",{"2":{"4":1,"25":1,"26":1}}],["extension",{"2":{"35":1}}],["existing",{"0":{"23":1}}],["example",{"2":{"19":1,"26":1}}],["examplefig",{"2":{"12":1,"13":1}}],["expr",{"2":{"15":1}}],["expression",{"2":{"15":2}}],["expected",{"2":{"4":1}}],["execution",{"2":{"15":1}}],["except",{"2":{"3":6}}],["elements",{"0":{"23":1},"2":{"5":1}}],["element",{"2":{"4":2}}],["egality",{"2":{"4":2}}],["equivalent",{"2":{"4":2}}],["equation",{"2":{"4":1,"19":1}}],["edges",{"2":{"4":1,"19":1}}],["e",{"2":{"2":5,"4":1,"7":1,"12":1,"13":1,"15":1}}],["import",{"2":{"35":1}}],["importantly",{"2":{"27":1}}],["implements",{"2":{"13":1}}],["implementing",{"2":{"7":1}}],["implement",{"2":{"7":1}}],["identify",{"2":{"25":1}}],["id5",{"2":{"7":4}}],["id4",{"2":{"7":4}}],["id3",{"2":{"7":5}}],["id2",{"2":{"7":4}}],["id1",{"2":{"7":4}}],["if",{"2":{"2":1,"4":5,"9":1,"25":1,"35":1}}],["is",{"2":{"2":1,"4":6,"5":1,"7":1,"13":1,"15":3,"25":6,"26":2,"27":2}}],["itself",{"2":{"27":1}}],["iterations=1000",{"2":{"12":2,"13":2}}],["itensornetworks",{"2":{"9":1}}],["itensors",{"2":{"9":1}}],["it",{"2":{"2":1,"4":3,"5":4,"15":2,"25":2,"26":3,"27":2}}],["i",{"2":{"2":5,"3":2,"4":8,"7":1,"12":1,"13":1,"15":1,"25":3,"26":1}}],["involved",{"2":{"27":1}}],["involve",{"2":{"27":1}}],["information",{"0":{"20":1},"2":{"19":1}}],["info",{"2":{"15":1}}],["inspiration",{"2":{"9":1}}],["instantiated",{"2":{"7":2}}],["instead",{"2":{"4":1,"7":1}}],["increasingly",{"2":{"7":1}}],["increase",{"2":{"5":1}}],["inherited",{"2":{"7":2}}],["inheriting",{"2":{"7":1}}],["inheritance",{"0":{"7":1},"2":{"7":2}}],["intuitively",{"2":{"25":1}}],["into",{"2":{"4":1,"5":1}}],["interconnected",{"2":{"4":1}}],["integer",{"2":{"3":1,"4":2}}],["in",{"2":{"3":6,"4":3,"5":4,"7":5,"8":1,"9":4,"12":2,"13":1,"15":3,"19":1,"25":1,"26":2,"27":5}}],["indispensable",{"2":{"27":1}}],["indices",{"2":{"2":1,"3":12,"4":3,"5":4,"13":1,"15":2,"19":1,"26":1,"35":1}}],["index",{"2":{"4":11,"8":1,"13":1,"15":2,"26":1}}],["inds",{"2":{"2":1,"3":21,"4":1,"15":1}}],["inputs",{"2":{"2":2,"25":1,"26":2}}],["input",{"2":{"2":3,"13":1}}],["brief",{"2":{"25":1}}],["backend",{"2":{"35":1}}],["bad",{"2":{"7":1}}],["based",{"2":{"27":1}}],["base",{"2":{"2":2,"3":2,"4":11,"7":1}}],["built",{"2":{"9":1}}],["build",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["but",{"2":{"4":1,"7":2,"15":1,"25":1,"27":1}}],["bottom",{"2":{"12":2,"13":2}}],["both",{"2":{"2":1,"27":1}}],["boundary",{"2":{"12":2,"13":1}}],["bond",{"2":{"3":3}}],["between",{"2":{"13":1,"25":1,"26":2}}],["begin",{"2":{"8":1}}],["been",{"2":{"4":2,"5":1,"7":1,"15":1}}],["behaviour",{"2":{"4":1}}],["be",{"2":{"3":6,"4":2,"7":4,"12":1,"15":2,"19":2,"25":2,"26":4,"27":1}}],["b",{"2":{"3":2}}],["by",{"2":{"2":1,"3":1,"5":3,"10":3,"19":1,"26":2,"27":1}}],["qr",{"2":{"3":5}}],["q",{"2":{"2":5}}],["query",{"0":{"20":1}}],["queried",{"2":{"19":1}}],["queries",{"0":{"17":1}}],["quimb",{"2":{"9":1,"27":1}}],["quot",{"2":{"2":2,"7":2,"25":2}}],["quantum",{"0":{"2":1,"16":1,"18":1},"1":{"17":1,"18":1},"2":{"2":9,"7":2,"12":1}}],["over",{"2":{"25":1}}],["our",{"2":{"25":1,"27":1}}],["out",{"2":{"12":1,"15":1}}],["outputs",{"2":{"2":2,"15":1}}],["output",{"2":{"2":3,"13":2,"15":1,"25":1,"26":1}}],["options",{"2":{"15":1}}],["optimizer",{"2":{"15":4}}],["optimized",{"2":{"10":1}}],["optimization",{"2":{"15":1}}],["operations",{"2":{"5":1,"26":1,"27":1}}],["operation",{"2":{"3":1}}],["operators",{"0":{"13":1},"2":{"13":1}}],["operator",{"2":{"2":3,"13":4}}],["open",{"2":{"2":1,"12":5,"13":5,"15":2}}],["oop",{"2":{"7":2}}],["objects",{"2":{"19":1}}],["object",{"2":{"7":1}}],["other",{"2":{"5":1,"9":1,"12":1,"26":1}}],["others",{"2":{"4":2}}],["old",{"2":{"4":4}}],["one",{"2":{"4":2,"25":1}}],["on",{"2":{"3":3,"4":2,"7":1,"8":1,"9":2,"12":1,"35":1}}],["only",{"2":{"2":2,"13":1}}],["oriented",{"2":{"7":1}}],["order",{"2":{"5":1,"25":5,"26":2}}],["or",{"2":{"2":2,"3":2,"4":3,"7":2,"12":1,"13":2,"26":2,"27":3}}],["of",{"2":{"2":8,"3":10,"4":10,"5":7,"7":4,"9":3,"10":2,"13":1,"15":2,"25":4,"26":6,"27":4,"35":2}}],["tᵢⱼₖ",{"2":{"26":4}}],["tijk⟺t",{"2":{"25":1}}],["time",{"2":{"7":1}}],["take",{"2":{"9":1}}],["terms",{"2":{"25":1}}],["temporarily",{"2":{"8":1}}],["tenpy",{"2":{"9":1}}],["tensorkrowch",{"2":{"9":1}}],["tensors",{"0":{"22":1,"25":1},"1":{"26":1},"2":{"2":1,"4":7,"5":3,"12":1,"15":1,"19":1,"25":4,"27":2}}],["tensornetworks",{"2":{"4":1}}],["tensornetwork",{"0":{"4":1},"1":{"5":1},"2":{"2":2,"4":16,"5":9,"7":2,"8":1,"15":2,"19":2,"27":1,"35":5}}],["tensor",{"0":{"3":1,"16":1,"18":1,"19":1,"26":1},"1":{"17":1,"18":1,"20":1,"21":1,"22":1,"23":1,"24":1},"2":{"1":1,"2":9,"3":15,"4":12,"5":3,"9":4,"10":2,"12":2,"15":1,"19":2,"25":5,"26":8,"27":2,"35":1}}],["tenet",{"2":{"1":1,"2":10,"4":4,"5":9,"7":1,"9":2,"13":1,"15":2,"19":1,"26":1,"27":1,"35":1}}],["td",{"2":{"7":1}}],["tree",{"2":{"15":1}}],["trains",{"2":{"12":1}}],["traits",{"0":{"7":1}}],["transforms",{"2":{"26":1}}],["transformation",{"2":{"5":11}}],["transformations",{"0":{"5":1,"27":1,"28":1},"1":{"28":1,"29":2,"30":2,"31":2,"32":2,"33":2,"34":2},"2":{"27":3}}],["transform",{"2":{"5":6,"27":2}}],["truncation",{"0":{"33":1}}],["truncating",{"2":{"27":1}}],["truncate",{"2":{"5":2}}],["true",{"2":{"2":1,"35":1}}],["type",{"0":{"26":1},"2":{"4":1,"7":1,"13":1,"19":1,"26":1}}],["types",{"2":{"4":1,"7":3}}],["tn",{"2":{"4":14,"5":4,"8":1,"10":1,"12":4,"13":4,"15":3,"19":1,"35":4}}],["t",{"2":{"3":6,"5":2,"7":1,"9":1,"15":1,"25":4,"27":1}}],["think",{"2":{"25":1}}],["this",{"2":{"2":1,"4":1,"5":2,"7":3,"12":1,"13":1,"27":1}}],["than",{"2":{"5":1}}],["that",{"2":{"4":2,"5":3,"13":1,"15":1,"26":3}}],["these",{"2":{"12":1,"19":1,"26":1,"27":2}}],["there",{"2":{"8":1,"9":1,"25":1}}],["them",{"2":{"7":1,"13":1,"26":1}}],["they",{"2":{"7":1}}],["then",{"2":{"4":2}}],["their",{"2":{"4":1,"13":2,"27":1}}],["the",{"0":{"26":1},"2":{"2":8,"3":12,"4":13,"5":5,"7":2,"9":1,"12":2,"13":3,"15":4,"19":4,"25":5,"26":10,"27":11,"35":3}}],["topology",{"2":{"13":1}}],["top",{"2":{"9":1}}],["topic",{"2":{"7":1}}],["tolerance",{"2":{"5":3}}],["to",{"2":{"2":1,"3":15,"4":8,"5":9,"7":1,"8":2,"9":1,"12":1,"13":1,"15":6,"25":3,"26":3,"27":4,"35":2}}],["n=10",{"2":{"12":2,"13":2}}],["nice",{"2":{"9":1}}],["ninputs",{"2":{"2":1}}],["n",{"2":{"4":1,"25":5}}],["necessarily",{"2":{"27":1}}],["nevertheless",{"2":{"25":1}}],["new",{"2":{"4":5,"5":1,"9":1}}],["networks",{"0":{"16":1,"18":1,"19":1},"1":{"17":1,"18":1,"20":1,"21":1,"22":1,"23":1,"24":1},"2":{"10":1,"12":1,"19":1}}],["network",{"2":{"1":1,"2":9,"4":2,"9":4,"10":2,"12":1,"15":1,"27":5}}],["named",{"2":{"25":1}}],["name",{"2":{"3":3,"26":1}}],["nlanes",{"2":{"2":1}}],["nor",{"2":{"26":1}}],["nodes",{"2":{"19":1}}],["node",{"2":{"15":1}}],["no",{"2":{"2":1,"9":1}}],["noutputs",{"2":{"2":1}}],["nothing",{"2":{"26":1}}],["notation",{"2":{"19":1}}],["not",{"2":{"7":2,"25":1}}],["notes",{"2":{"2":1}}],["notion",{"2":{"2":2}}],["numbers",{"2":{"25":1}}],["number",{"2":{"2":1,"25":1}}],["nsites",{"2":{"2":1}}],["show",{"2":{"35":1}}],["shallow",{"2":{"4":1}}],["science",{"2":{"25":1}}],["scalar",{"2":{"2":3,"25":2}}],["support",{"2":{"35":1}}],["superclass",{"2":{"7":1}}],["subtypes",{"2":{"26":1}}],["summation",{"2":{"15":1}}],["slicing",{"0":{"24":1},"2":{"10":1}}],["slice",{"2":{"4":3}}],["split",{"0":{"34":1}}],["splitsimplificationd",{"2":{"5":1}}],["spaces",{"2":{"25":2}}],["space",{"2":{"7":1,"26":1}}],["specified",{"2":{"3":1}}],["smaller",{"2":{"5":1}}],["skip",{"2":{"5":4}}],["strong",{"2":{"9":1}}],["stroke",{"2":{"7":5}}],["structural",{"2":{"7":2}}],["structure",{"2":{"5":1,"27":2}}],["style",{"2":{"7":5}}],["states",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["state",{"2":{"1":1,"2":3,"12":2,"13":2}}],["satisfies",{"2":{"4":2}}],["search",{"2":{"15":1,"27":1}}],["sense",{"2":{"7":1}}],["selectdim",{"2":{"4":4}}],["self",{"2":{"4":2}}],["seed=100",{"2":{"12":2,"13":2}}],["seemps",{"2":{"9":1}}],["see",{"2":{"4":7,"5":3,"15":2}}],["sets",{"2":{"5":1}}],["set",{"2":{"4":1,"27":1}}],["svd",{"2":{"3":5}}],["symbolic",{"2":{"15":1}}],["symbols",{"2":{"4":2,"26":2}}],["symbol",{"2":{"3":4,"4":5}}],["simplification",{"0":{"30":1,"34":1}}],["simplify",{"2":{"27":1}}],["similar",{"2":{"15":1}}],["since",{"2":{"26":1}}],["site",{"2":{"13":2}}],["sites",{"2":{"2":9}}],["size",{"2":{"3":3,"4":3,"5":1,"8":1,"26":4,"27":2}}],["some",{"2":{"5":1,"7":1}}],["socket",{"2":{"2":9}}],["source",{"2":{"1":1,"2":9,"3":5,"4":12,"5":8,"9":1,"15":2,"35":1}}],["s",{"2":{"2":10,"3":2,"4":3,"5":1,"7":1,"9":1,"15":1,"19":1,"25":1,"27":1}}],["swapped",{"2":{"2":1}}],["missleading",{"2":{"26":1}}],["missing",{"2":{"2":20,"3":4,"4":6,"5":2,"15":2}}],["might",{"2":{"25":1}}],["multi",{"2":{"19":1}}],["multilinear",{"2":{"4":1,"25":1}}],["most",{"2":{"25":1}}],["modify",{"2":{"27":1}}],["modification",{"0":{"21":1},"1":{"22":1,"23":1}}],["modern",{"2":{"7":1}}],["more",{"2":{"15":1,"27":1}}],["mpos",{"2":{"13":1}}],["mpo",{"0":{"13":1},"2":{"7":2,"13":1}}],["mpss",{"2":{"13":1}}],["mps",{"0":{"1":1,"12":1},"1":{"13":1},"2":{"1":1,"7":2,"12":1,"13":1}}],["meaning",{"2":{"26":1}}],["me",{"2":{"25":1}}],["methods",{"2":{"7":1,"27":1}}],["merge",{"2":{"2":1,"4":3}}],["maximum",{"2":{"27":1}}],["many",{"2":{"25":1,"26":1}}],["major",{"2":{"13":1}}],["makie",{"2":{"10":1,"35":2}}],["matrices",{"2":{"25":1}}],["matrixproduct",{"2":{"12":2,"13":3}}],["matrix",{"0":{"12":1,"13":1},"1":{"13":1},"2":{"1":1,"12":1,"13":2}}],["mathematicians",{"2":{"25":1}}],["mathematical",{"2":{"12":1}}],["mature",{"2":{"9":1}}],["main",{"2":{"9":1}}],["may",{"2":{"8":1,"26":1}}],["mapping",{"2":{"4":1}}],["axis3",{"2":{"35":1}}],["axis",{"2":{"35":1}}],["ax",{"2":{"35":1}}],["available",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1}}],["avoid",{"2":{"8":1}}],["approach",{"2":{"27":1}}],["apply",{"2":{"27":2}}],["application",{"2":{"25":1}}],["append",{"2":{"4":3}}],["ability",{"2":{"27":1}}],["about",{"2":{"19":1,"25":1}}],["absolute",{"2":{"5":3}}],["abstractarray",{"2":{"26":1}}],["abstractansatz",{"2":{"1":1,"7":1}}],["abstractmps",{"2":{"7":1}}],["abstractmpo",{"2":{"7":1}}],["abstract",{"2":{"7":2}}],["abstractvecortuple",{"2":{"4":2}}],["abstracttensornetwork",{"2":{"4":10,"7":1,"15":2}}],["abstractquantum",{"2":{"2":6,"7":1}}],["aka",{"2":{"15":1}}],["automatic",{"2":{"10":1}}],["at",{"2":{"9":1}}],["atol",{"2":{"5":4}}],["as",{"2":{"7":2,"12":1,"15":2,"19":1,"25":4,"26":3,"35":1}}],["act",{"2":{"7":1}}],["algebra",{"2":{"25":2,"26":1}}],["always",{"2":{"5":1}}],["also",{"2":{"4":7,"5":3,"12":1,"15":2,"26":1,"27":2}}],["all",{"2":{"3":6,"4":1,"5":1,"7":1}}],["address",{"2":{"13":1}}],["add",{"0":{"22":1},"2":{"4":2}}],["adjoint",{"2":{"2":2}}],["arguments",{"2":{"3":3,"5":3,"15":1,"35":1}}],["arrays",{"2":{"25":1}}],["array",{"2":{"3":1,"26":4}}],["are",{"2":{"2":1,"8":1,"9":1,"12":3,"13":2,"19":2,"25":5,"26":1,"27":1,"35":1}}],["anti",{"0":{"32":1},"2":{"5":1}}],["antidiagonalgauging",{"2":{"5":1}}],["an",{"2":{"2":2,"13":1,"15":1,"26":2}}],["and",{"0":{"7":1},"2":{"2":3,"4":4,"7":4,"9":1,"10":1,"13":2,"15":2,"19":1,"25":1,"26":4,"27":2,"35":1}}],["ansatz",{"0":{"0":1,"11":1,"14":1},"1":{"1":1},"2":{"1":1,"7":5,"12":1,"13":1}}],["a",{"2":{"1":1,"2":11,"3":8,"4":15,"5":8,"7":2,"8":1,"9":3,"12":2,"15":7,"19":2,"25":9,"26":8,"27":2,"35":5}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR264/assets/chunks/@localSearchIndexroot.DY7OwwSG.js b/previews/PR264/assets/chunks/@localSearchIndexroot.DY7OwwSG.js new file mode 100644 index 00000000..83721686 --- /dev/null +++ b/previews/PR264/assets/chunks/@localSearchIndexroot.DY7OwwSG.js @@ -0,0 +1 @@ +const e='{"documentCount":36,"nextId":36,"documentIds":{"0":"/Tenet.jl/previews/PR264/api/ansatz#ansatz","1":"/Tenet.jl/previews/PR264/api/ansatz#mps","2":"/Tenet.jl/previews/PR264/api/quantum#quantum","3":"/Tenet.jl/previews/PR264/api/tensor#tensor","4":"/Tenet.jl/previews/PR264/api/tensornetwork#tensornetwork","5":"/Tenet.jl/previews/PR264/api/tensornetwork#transformations","6":"/Tenet.jl/previews/PR264/developer/cached-field#Cached-field","7":"/Tenet.jl/previews/PR264/developer/type-hierarchy#Inheritance-and-Traits","8":"/Tenet.jl/previews/PR264/developer/unsafe-region#Unsafe-regions","9":"/Tenet.jl/previews/PR264/friends#friends","10":"/Tenet.jl/previews/PR264/#features","11":"/Tenet.jl/previews/PR264/manual/ansatz/#ansatz","12":"/Tenet.jl/previews/PR264/manual/ansatz/mps#Matrix-Product-States-(MPS)","13":"/Tenet.jl/previews/PR264/manual/ansatz/mps#Matrix-Product-Operators-(MPO)","14":"/Tenet.jl/previews/PR264/manual/ansatz/product#Product-ansatz","15":"/Tenet.jl/previews/PR264/manual/contraction#contraction","16":"/Tenet.jl/previews/PR264/manual/quantum#Quantum-Tensor-Networks","17":"/Tenet.jl/previews/PR264/manual/quantum#queries","18":"/Tenet.jl/previews/PR264/manual/quantum#Connecting-Quantum-Tensor-Networks","19":"/Tenet.jl/previews/PR264/manual/tensor-network#Tensor-Networks","20":"/Tenet.jl/previews/PR264/manual/tensor-network#Query-information","21":"/Tenet.jl/previews/PR264/manual/tensor-network#modification","22":"/Tenet.jl/previews/PR264/manual/tensor-network#Add/Remove-tensors","23":"/Tenet.jl/previews/PR264/manual/tensor-network#Replace-existing-elements","24":"/Tenet.jl/previews/PR264/manual/tensor-network#slicing","25":"/Tenet.jl/previews/PR264/manual/tensors#tensors","26":"/Tenet.jl/previews/PR264/manual/tensors#The-Tensor-type","27":"/Tenet.jl/previews/PR264/manual/transformations#transformations","28":"/Tenet.jl/previews/PR264/manual/transformations#Available-transformations","29":"/Tenet.jl/previews/PR264/manual/transformations#Hyperindex-converter","30":"/Tenet.jl/previews/PR264/manual/transformations#Contraction-simplification","31":"/Tenet.jl/previews/PR264/manual/transformations#Diagonal-reduction","32":"/Tenet.jl/previews/PR264/manual/transformations#Anti-diagonal-reduction","33":"/Tenet.jl/previews/PR264/manual/transformations#Dimension-truncation","34":"/Tenet.jl/previews/PR264/manual/transformations#Split-simplification","35":"/Tenet.jl/previews/PR264/visualization#visualization"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,1],"1":[1,1,14],"2":[1,1,92],"3":[1,1,70],"4":[1,1,148],"5":[1,1,120],"6":[2,1,1],"7":[3,1,123],"8":[2,1,25],"9":[1,1,61],"10":[1,1,21],"11":[1,1,1],"12":[5,1,67],"13":[5,5,76],"14":[2,1,1],"15":[1,1,99],"16":[3,1,1],"17":[1,3,1],"18":[4,3,1],"19":[2,1,47],"20":[2,2,1],"21":[1,2,1],"22":[3,3,1],"23":[3,3,1],"24":[1,2,1],"25":[1,1,118],"26":[3,1,134],"27":[1,1,96],"28":[2,1,1],"29":[2,3,1],"30":[2,3,1],"31":[2,3,1],"32":[3,3,1],"33":[2,3,1],"34":[2,3,1],"35":[1,1,53]},"averageFieldLength":[1.9444444444444444,1.75,38.41666666666666],"storedFields":{"0":{"title":"Ansatz","titles":[]},"1":{"title":"MPS","titles":["Ansatz"]},"2":{"title":"Quantum","titles":[]},"3":{"title":"Tensor","titles":[]},"4":{"title":"TensorNetwork","titles":[]},"5":{"title":"Transformations","titles":["TensorNetwork"]},"6":{"title":"Cached field","titles":[]},"7":{"title":"Inheritance and Traits","titles":[]},"8":{"title":"Unsafe regions","titles":[]},"9":{"title":"Friends","titles":[]},"10":{"title":"Features","titles":[]},"11":{"title":"Ansatz","titles":[]},"12":{"title":"Matrix Product States (MPS)","titles":[]},"13":{"title":"Matrix Product Operators (MPO)","titles":["Matrix Product States (MPS)"]},"14":{"title":"Product ansatz","titles":[]},"15":{"title":"Contraction","titles":[]},"16":{"title":"Quantum Tensor Networks","titles":[]},"17":{"title":"Queries","titles":["Quantum Tensor Networks"]},"18":{"title":"Connecting Quantum Tensor Networks","titles":["Quantum Tensor Networks"]},"19":{"title":"Tensor Networks","titles":[]},"20":{"title":"Query information","titles":["Tensor Networks"]},"21":{"title":"Modification","titles":["Tensor Networks"]},"22":{"title":"Add/Remove tensors","titles":["Tensor Networks","Modification"]},"23":{"title":"Replace existing elements","titles":["Tensor Networks","Modification"]},"24":{"title":"Slicing","titles":["Tensor Networks"]},"25":{"title":"Tensors","titles":[]},"26":{"title":"The Tensor type","titles":["Tensors"]},"27":{"title":"Transformations","titles":[]},"28":{"title":"Available transformations","titles":["Transformations"]},"29":{"title":"Hyperindex converter","titles":["Transformations","Available transformations"]},"30":{"title":"Contraction simplification","titles":["Transformations","Available transformations"]},"31":{"title":"Diagonal reduction","titles":["Transformations","Available transformations"]},"32":{"title":"Anti-diagonal reduction","titles":["Transformations","Available transformations"]},"33":{"title":"Dimension truncation","titles":["Transformations","Available transformations"]},"34":{"title":"Split simplification","titles":["Transformations","Available transformations"]},"35":{"title":"Visualization","titles":[]}},"dirtCount":0,"index":[["↩︎",{"2":{"26":3}}],["724361",{"2":{"26":1}}],["762924",{"2":{"26":1}}],["757674",{"2":{"26":1}}],["736746",{"2":{"26":1}}],["734327",{"2":{"26":1}}],["837071",{"2":{"26":1}}],["875881",{"2":{"26":1}}],["892068",{"2":{"26":1}}],["886366",{"2":{"26":1}}],["489488",{"2":{"26":1}}],["431755",{"2":{"26":1}}],["433367",{"2":{"26":1}}],["40317",{"2":{"26":1}}],["647137",{"2":{"26":1}}],["90074",{"2":{"26":1}}],["0737632",{"2":{"26":1}}],["0351718",{"2":{"26":1}}],["0124155",{"2":{"26":1}}],["0192944",{"2":{"26":1}}],["0",{"2":{"25":1,"26":30}}],["∈fdim⁡",{"2":{"25":1}}],["↦fin",{"2":{"25":1}}],["×⋯×fdim⁡",{"2":{"25":1}}],["∑ijklmnopaimbijpcnjkdpklemnofolcan",{"2":{"19":1}}],["2021",{"2":{"27":1}}],["251444",{"2":{"26":1}}],["287734",{"2":{"26":1}}],["2",{"2":{"12":2,"13":3,"25":2,"26":3}}],["χ=4",{"2":{"12":2,"13":2}}],["30",{"2":{"26":1}}],["312946",{"2":{"26":1}}],["327777",{"2":{"26":1}}],["324705",{"2":{"26":1}}],["363565",{"2":{"26":1}}],["3×5×2",{"2":{"26":1}}],["3",{"2":{"25":1,"26":4}}],["3d",{"2":{"10":1}}],["39",{"2":{"2":10,"3":2,"4":3,"5":3,"7":2,"9":2,"15":2,"19":1,"25":2,"27":2}}],["your",{"2":{"9":1,"27":1}}],["you",{"2":{"8":1,"25":3,"26":1,"27":1,"35":1}}],["years",{"2":{"7":1}}],["559476",{"2":{"26":1}}],["555864",{"2":{"26":1}}],["580037",{"2":{"26":1}}],["5",{"2":{"7":10,"12":2,"13":2,"26":3}}],[">|contains|",{"2":{"7":5}}],[">|inherits|",{"2":{"7":10}}],["just",{"2":{"35":1}}],["juliagraphplot",{"2":{"35":2}}],["julia>",{"2":{"26":2}}],["juliajulia>",{"2":{"26":2}}],["juliaeinexpr",{"2":{"15":1}}],["julia",{"2":{"7":4,"8":1,"9":1}}],["juliadiagonalreduction",{"2":{"5":1}}],["juliadelete",{"2":{"4":1}}],["juliahypergroup",{"2":{"5":1}}],["juliahyperflatten",{"2":{"5":1}}],["juliatruncate",{"2":{"5":1}}],["juliatransform",{"2":{"5":2}}],["juliatensornetwork",{"2":{"2":1,"4":1}}],["juliacopy",{"2":{"4":1}}],["juliacontractsimplification",{"2":{"5":1}}],["juliacontract",{"2":{"3":1,"15":1}}],["juliaview",{"2":{"4":1}}],["juliareplace",{"2":{"4":1}}],["juliamermaid",{"2":{"7":1}}],["juliamerge",{"2":{"4":1}}],["juliamps",{"2":{"1":1}}],["juliaantidiagonalgauging",{"2":{"5":1}}],["juliaappend",{"2":{"4":1}}],["juliaadjoint",{"2":{"2":1}}],["juliapop",{"2":{"4":1}}],["juliapush",{"2":{"4":1}}],["julialinearalgebra",{"2":{"3":3}}],["juliabase",{"2":{"3":1}}],["juliaoperator",{"2":{"2":1}}],["juliaslice",{"2":{"4":1}}],["juliaselectdim",{"2":{"4":1}}],["juliasize",{"2":{"4":1}}],["juliasites",{"2":{"2":1}}],["juliastate",{"2":{"2":1}}],["juliascalar",{"2":{"2":1}}],["juliasocket",{"2":{"2":1}}],["juliansites",{"2":{"2":1}}],["juliaquantum",{"2":{"2":1}}],["j",{"2":{"25":1,"26":2}}],["jokes",{"2":{"25":1}}],["jl",{"2":{"9":2}}],["java",{"2":{"7":1}}],["giving",{"2":{"25":1}}],["give",{"2":{"25":1}}],["given",{"2":{"15":1}}],["gridposition",{"2":{"35":1}}],["gray",{"2":{"27":1}}],["graphplot",{"2":{"35":5}}],["graphmakie",{"2":{"35":3}}],["graphical",{"2":{"19":1}}],["graph",{"2":{"4":3,"7":1,"19":1,"35":1}}],["graphs",{"2":{"3":1}}],["greedy",{"2":{"15":1}}],["generic",{"2":{"13":1}}],["generalization",{"2":{"25":1}}],["general",{"2":{"7":1}}],["good",{"2":{"25":1,"27":1}}],["gonna",{"2":{"25":1}}],["go",{"2":{"7":1}}],["162383",{"2":{"26":1}}],["1",{"2":{"12":6,"13":9,"25":4,"26":1}}],["1d",{"2":{"12":1}}],["126993",{"2":{"26":1}}],["12",{"2":{"5":3}}],["1e",{"2":{"5":3}}],["however",{"2":{"26":1}}],["how",{"2":{"25":1}}],["here",{"2":{"25":2}}],["higher",{"2":{"25":1}}],["hide",{"2":{"12":8,"13":8}}],["hierarchy",{"2":{"7":1}}],["have",{"2":{"7":2,"13":2,"25":1}}],["has",{"2":{"4":2,"5":2,"7":2,"15":1,"26":1}}],["hyperindex",{"0":{"29":1}}],["hyperindices",{"2":{"5":2}}],["hypergroup",{"2":{"5":2}}],["hyperflatten",{"2":{"5":2}}],["x",{"2":{"4":1}}],["x3c",{"2":{"1":1,"2":3,"4":1,"5":6}}],["≡",{"2":{"4":2}}],["v",{"2":{"25":3}}],["vectors",{"2":{"25":2}}],["vector",{"2":{"25":2,"26":1}}],["version",{"2":{"5":1,"13":1}}],["vertices",{"2":{"4":1}}],["variables",{"2":{"13":1}}],["various",{"2":{"4":1,"27":1}}],["visually",{"2":{"19":1}}],["visualization",{"0":{"35":1},"2":{"10":1}}],["visualizing",{"2":{"5":1}}],["viewed",{"2":{"25":1}}],["view",{"2":{"4":3}}],["virtual",{"2":{"3":3}}],["virtualind",{"2":{"3":6}}],["using",{"2":{"26":1,"27":1}}],["use",{"2":{"25":1,"26":1}}],["used",{"2":{"3":6,"5":1,"13":1,"25":1}}],["up",{"2":{"5":1}}],["unsafe",{"0":{"8":1},"2":{"8":1}}],["union",{"2":{"4":1,"35":2}}],["underlying",{"2":{"2":1,"3":1}}],["kourtis",{"2":{"27":1}}],["k",{"2":{"25":1,"26":1}}],["kill",{"2":{"25":1}}],["kind",{"2":{"7":1}}],["know",{"2":{"25":1}}],["known",{"2":{"12":1,"26":1}}],["keyword",{"2":{"3":3,"5":3,"15":1,"35":1}}],["kwargs",{"2":{"2":2,"3":3,"15":2,"35":4}}],["float64",{"2":{"26":2}}],["flexible",{"2":{"9":1}}],["fdim⁡",{"2":{"25":1}}],["f",{"2":{"25":1,"35":1}}],["features",{"0":{"10":1}}],["framework",{"2":{"9":1}}],["friends",{"0":{"9":1}}],["from",{"2":{"4":2,"7":2}}],["false",{"2":{"35":1}}],["factoring",{"2":{"27":1}}],["factorization",{"2":{"3":9}}],["favouring",{"2":{"7":1}}],["fig",{"2":{"12":5,"13":5}}],["figure",{"2":{"12":1,"13":1,"35":1}}],["fit",{"2":{"9":1}}],["fields",{"2":{"7":3,"12":1,"26":1}}],["field",{"0":{"6":1},"2":{"25":1}}],["first",{"2":{"4":2}}],["further",{"2":{"27":1}}],["function",{"2":{"25":1,"26":1}}],["functions",{"2":{"19":2,"27":1}}],["functionality",{"2":{"13":1}}],["fulfill",{"2":{"5":1}}],["fulfil",{"2":{"5":1}}],["fuse",{"2":{"4":1}}],["found",{"2":{"27":1}}],["focus",{"2":{"9":1}}],["following",{"2":{"4":1,"19":2}}],["forbid",{"2":{"7":1}}],["form",{"2":{"7":1,"15":1}}],["for",{"2":{"2":20,"3":4,"4":6,"5":3,"9":1,"15":4,"19":2,"25":1,"26":1,"27":1,"35":1}}],["rank",{"2":{"26":2,"27":2}}],["rand",{"2":{"4":1,"12":2,"13":2,"26":1}}],["random",{"2":{"3":3}}],["rather",{"2":{"7":1}}],["rust",{"2":{"7":1}}],["right",{"2":{"3":12}}],["reduction",{"0":{"31":1,"32":1}}],["reducing",{"2":{"27":1}}],["reduces",{"2":{"27":1}}],["reduce",{"2":{"5":1,"27":2}}],["reason",{"2":{"27":1}}],["reached",{"2":{"25":1}}],["relationships",{"2":{"26":1}}],["relates",{"2":{"25":1}}],["remainder",{"2":{"25":1}}],["removed",{"2":{"4":1}}],["remove",{"0":{"22":1},"2":{"4":2}}],["region",{"2":{"8":1}}],["regions",{"0":{"8":1}}],["regularity",{"2":{"4":1}}],["recommend",{"2":{"9":1}}],["recent",{"2":{"7":1}}],["recursive",{"2":{"4":1,"26":1}}],["rest",{"2":{"35":1}}],["restricted",{"2":{"7":1}}],["result",{"2":{"5":1}}],["reverse",{"2":{"5":1}}],["renaming",{"2":{"4":1}}],["replaced",{"2":{"4":1}}],["replace",{"0":{"23":1},"2":{"4":3}}],["represents",{"2":{"15":1}}],["represented",{"2":{"5":2,"19":2,"26":1}}],["represent",{"2":{"4":1,"19":2}}],["representing",{"2":{"2":3,"4":1,"19":1}}],["return",{"2":{"3":1,"4":7,"5":1,"15":1}}],["returns",{"2":{"2":5,"4":1}}],["referenced",{"2":{"2":1}}],["permuting",{"2":{"27":1}}],["per",{"2":{"13":2}}],["periodic",{"2":{"12":5,"13":5}}],["performed",{"2":{"5":1}}],["perform",{"2":{"3":4}}],["pytorch",{"2":{"9":1}}],["python",{"2":{"7":1,"9":2}}],["physics",{"2":{"9":1}}],["powered",{"2":{"10":3}}],["polymorphic",{"2":{"7":1}}],["popular",{"2":{"7":1}}],["pop",{"2":{"4":4}}],["predefined",{"2":{"27":1}}],["prepare",{"2":{"27":1}}],["prefer",{"2":{"26":1}}],["preemptively",{"2":{"5":1}}],["practice",{"2":{"7":1,"27":1}}],["provides",{"2":{"35":1}}],["provide",{"2":{"27":1}}],["probably",{"2":{"25":1}}],["problem",{"2":{"9":1,"27":1}}],["programming",{"2":{"7":1}}],["projection",{"2":{"4":1}}],["projected",{"2":{"4":2}}],["product",{"0":{"12":1,"13":1,"14":1},"1":{"13":1},"2":{"1":1,"7":2,"12":1,"13":2}}],["please",{"2":{"25":1}}],["plot",{"2":{"5":1,"12":2,"13":2,"35":1}}],["place",{"2":{"4":1,"5":1,"15":1}}],["package",{"2":{"35":1}}],["passing",{"2":{"26":1}}],["passed",{"2":{"4":2,"15":1,"35":1}}],["path",{"2":{"15":4,"27":1}}],["particular",{"2":{"7":1}}],["parent",{"2":{"3":1,"7":1}}],["pair",{"2":{"5":1}}],["push",{"2":{"4":3,"8":1}}],["=c∈f∀i",{"2":{"25":1}}],["=>",{"2":{"4":3}}],["===",{"2":{"4":2}}],["=",{"2":{"2":1,"12":3,"13":3,"15":2,"26":3}}],["wraps",{"2":{"26":1}}],["written",{"2":{"9":3}}],["writing",{"2":{"7":1}}],["word",{"2":{"26":1}}],["would",{"2":{"25":1}}],["won",{"2":{"15":1}}],["we",{"2":{"9":1,"25":2,"26":1,"27":1}}],["want",{"2":{"8":1}}],["why",{"2":{"27":1}}],["whatever",{"2":{"26":1}}],["wha",{"2":{"25":1}}],["which",{"2":{"7":2,"8":1,"9":1,"15":2,"26":1,"27":2}}],["while",{"2":{"5":1,"13":1}}],["whose",{"2":{"5":1,"12":1,"25":1}}],["when",{"2":{"5":3}}],["where",{"2":{"4":2,"5":1,"25":1}}],["whether",{"2":{"2":1}}],["wild",{"2":{"9":1}}],["will",{"2":{"4":3}}],["with",{"2":{"2":5,"4":1,"5":2,"7":1,"9":1,"19":1,"25":1,"26":2}}],["layout=stress",{"2":{"35":1}}],["layout=spring",{"2":{"12":2,"13":2}}],["layman",{"2":{"25":1}}],["labels=true",{"2":{"35":1}}],["labels",{"2":{"35":2}}],["label",{"2":{"12":2,"13":2}}],["laid",{"2":{"12":1,"15":1}}],["large",{"2":{"10":1}}],["languages",{"2":{"7":2}}],["lanes",{"2":{"2":1}}],["locally",{"2":{"27":1}}],["lower",{"2":{"15":1}}],["look",{"2":{"9":1}}],["looks",{"2":{"7":1}}],["log",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["lies",{"2":{"27":1}}],["library",{"2":{"9":2,"15":1}}],["libraries",{"2":{"9":1}}],["like",{"2":{"4":1,"7":3,"26":1}}],["list",{"2":{"4":2,"5":2,"26":2}}],["linear",{"2":{"19":1,"25":2,"26":2}}],["linearalgebra",{"2":{"3":3}}],["linalg",{"2":{"3":1}}],["lu",{"2":{"3":5}}],["length",{"2":{"26":1}}],["letters",{"2":{"25":1}}],["level",{"2":{"15":1}}],["left",{"2":{"3":12}}],["leads",{"2":{"2":1}}],["drastically",{"2":{"27":1}}],["due",{"2":{"12":1}}],["dual",{"2":{"2":1}}],["dasharray",{"2":{"7":5}}],["don",{"2":{"25":1}}],["do",{"2":{"5":1,"7":1,"26":1}}],["doesn",{"2":{"5":2,"9":1,"27":1}}],["documentation",{"2":{"15":1}}],["documenter",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["docstring",{"2":{"2":20,"3":4,"4":6,"5":2,"15":2}}],["definitions",{"2":{"26":1}}],["definition",{"2":{"25":1}}],["define",{"2":{"25":1}}],["default",{"2":{"5":1}}],["defaults",{"2":{"3":9,"5":5,"15":1,"35":1}}],["design",{"2":{"7":1,"9":1}}],["delegated",{"2":{"15":1}}],["delete",{"2":{"4":2}}],["deltaarrays",{"2":{"5":2}}],["depending",{"2":{"4":1,"12":1}}],["details",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["dispatched",{"2":{"26":1}}],["difference",{"2":{"13":1}}],["differentiation",{"2":{"10":1}}],["directly",{"2":{"5":1}}],["directionality",{"2":{"2":1}}],["diagonal",{"0":{"31":1,"32":1},"2":{"5":2}}],["diagonalreduction",{"2":{"5":1}}],["dims=nonunique",{"2":{"3":1}}],["dimensions",{"2":{"25":1}}],["dimensional",{"2":{"25":1}}],["dimensionality",{"2":{"4":1,"26":3}}],["dimensionalities",{"2":{"4":1}}],["dimension",{"0":{"33":1},"2":{"3":1,"4":3,"5":2}}],["crucial",{"2":{"27":1}}],["create",{"2":{"26":1}}],["c=0",{"2":{"12":2,"13":2}}],["chains",{"2":{"12":1}}],["chain",{"2":{"12":1}}],["chainrules",{"2":{"10":1}}],["checks",{"2":{"8":1}}],["check",{"2":{"2":10,"3":2,"4":3,"5":1,"15":2}}],["cuttings",{"2":{"10":1}}],["closed",{"2":{"12":1}}],["class",{"2":{"7":1}}],["clear",{"2":{"7":1}}],["c++",{"2":{"7":1}}],["case",{"2":{"9":1,"25":1}}],["cases",{"2":{"8":1}}],["cannot",{"2":{"7":1}}],["can",{"2":{"7":3,"12":1,"19":1,"25":1,"26":4,"27":2,"35":1}}],["cached",{"0":{"6":1}}],["call",{"2":{"4":1,"35":1}}],["causality",{"2":{"2":1}}],["cost",{"2":{"27":1}}],["correct",{"2":{"25":1}}],["correspond",{"2":{"4":1}}],["computations",{"2":{"27":1}}],["computational",{"2":{"5":1,"27":1}}],["computer",{"2":{"25":1}}],["complex",{"2":{"19":1}}],["completely",{"2":{"7":1}}],["composition",{"2":{"7":1}}],["compared",{"2":{"7":1}}],["columns",{"2":{"5":1}}],["copy",{"2":{"4":4,"5":2}}],["consulted",{"2":{"26":1}}],["considered",{"2":{"7":1}}],["connecting",{"0":{"18":1}}],["connected",{"2":{"15":1}}],["concrete",{"2":{"7":1}}],["conditions",{"2":{"12":2,"13":1}}],["condition",{"2":{"5":1}}],["converter",{"0":{"29":1}}],["convert",{"2":{"5":2}}],["configs",{"2":{"5":2}}],["config",{"2":{"5":2}}],["contains",{"2":{"5":1}}],["contain",{"2":{"4":1}}],["contracting",{"2":{"27":1}}],["contraction",{"0":{"15":1,"30":1},"2":{"3":1,"10":2,"15":5,"27":2}}],["contracted",{"2":{"15":1}}],["contractsimplification",{"2":{"5":1}}],["contract",{"2":{"3":1,"5":1,"15":4}}],["conjugate",{"2":{"2":1}}],["einsum",{"2":{"15":1}}],["einstein",{"2":{"15":1}}],["einexpr",{"2":{"15":3}}],["einexprs",{"2":{"10":2,"15":4}}],["every",{"2":{"15":1}}],["enough",{"2":{"25":1}}],["end",{"2":{"8":1}}],["enhance",{"2":{"5":1}}],["es",{"2":{"7":1}}],["efficiency",{"2":{"5":1}}],["each",{"2":{"4":1,"25":1,"26":1}}],["extension",{"2":{"35":1}}],["existing",{"0":{"23":1}}],["example",{"2":{"19":1,"26":1}}],["examplefig",{"2":{"12":1,"13":1}}],["expr",{"2":{"15":1}}],["expression",{"2":{"15":2}}],["expected",{"2":{"4":1}}],["execution",{"2":{"15":1}}],["except",{"2":{"3":6}}],["elements",{"0":{"23":1},"2":{"5":1}}],["element",{"2":{"4":2}}],["egality",{"2":{"4":2}}],["equivalent",{"2":{"4":2}}],["equation",{"2":{"4":1,"19":1}}],["edges",{"2":{"4":1,"19":1}}],["e",{"2":{"2":5,"4":1,"7":1,"12":1,"13":1,"15":1}}],["import",{"2":{"35":1}}],["importantly",{"2":{"27":1}}],["implements",{"2":{"13":1}}],["implementing",{"2":{"7":1}}],["implement",{"2":{"7":1}}],["identify",{"2":{"25":1}}],["id5",{"2":{"7":4}}],["id4",{"2":{"7":4}}],["id3",{"2":{"7":5}}],["id2",{"2":{"7":4}}],["id1",{"2":{"7":4}}],["if",{"2":{"2":1,"4":5,"9":1,"25":1,"35":1}}],["is",{"2":{"2":1,"4":6,"5":1,"7":1,"13":1,"15":3,"25":6,"26":2,"27":2}}],["itself",{"2":{"27":1}}],["iterations=1000",{"2":{"12":2,"13":2}}],["itensornetworks",{"2":{"9":1}}],["itensors",{"2":{"9":1}}],["it",{"2":{"2":1,"4":3,"5":4,"15":2,"25":2,"26":3,"27":2}}],["i",{"2":{"2":5,"3":2,"4":8,"7":1,"12":1,"13":1,"15":1,"25":3,"26":1}}],["involved",{"2":{"27":1}}],["involve",{"2":{"27":1}}],["information",{"0":{"20":1},"2":{"19":1}}],["info",{"2":{"15":1}}],["inspiration",{"2":{"9":1}}],["instantiated",{"2":{"7":2}}],["instead",{"2":{"4":1,"7":1}}],["increasingly",{"2":{"7":1}}],["increase",{"2":{"5":1}}],["inherited",{"2":{"7":2}}],["inheriting",{"2":{"7":1}}],["inheritance",{"0":{"7":1},"2":{"7":2}}],["intuitively",{"2":{"25":1}}],["into",{"2":{"4":1,"5":1}}],["interconnected",{"2":{"4":1}}],["integer",{"2":{"3":1,"4":2}}],["in",{"2":{"3":6,"4":3,"5":4,"7":5,"8":1,"9":4,"12":2,"13":1,"15":3,"19":1,"25":1,"26":2,"27":5}}],["indispensable",{"2":{"27":1}}],["indices",{"2":{"2":1,"3":12,"4":3,"5":4,"13":1,"15":2,"19":1,"26":1,"35":1}}],["index",{"2":{"4":11,"8":1,"13":1,"15":2,"26":1}}],["inds",{"2":{"2":1,"3":21,"4":1,"15":1}}],["inputs",{"2":{"2":2,"25":1,"26":2}}],["input",{"2":{"2":3,"13":1}}],["brief",{"2":{"25":1}}],["backend",{"2":{"35":1}}],["bad",{"2":{"7":1}}],["based",{"2":{"27":1}}],["base",{"2":{"2":2,"3":2,"4":11,"7":1}}],["built",{"2":{"9":1}}],["build",{"2":{"2":10,"3":2,"4":3,"5":1,"15":1}}],["but",{"2":{"4":1,"7":2,"15":1,"25":1,"27":1}}],["bottom",{"2":{"12":2,"13":2}}],["both",{"2":{"2":1,"27":1}}],["boundary",{"2":{"12":2,"13":1}}],["bond",{"2":{"3":3}}],["between",{"2":{"13":1,"25":1,"26":2}}],["begin",{"2":{"8":1}}],["been",{"2":{"4":2,"5":1,"7":1,"15":1}}],["behaviour",{"2":{"4":1}}],["be",{"2":{"3":6,"4":2,"7":4,"12":1,"15":2,"19":2,"25":2,"26":4,"27":1}}],["b",{"2":{"3":2}}],["by",{"2":{"2":1,"3":1,"5":3,"10":3,"19":1,"26":2,"27":1}}],["qr",{"2":{"3":5}}],["q",{"2":{"2":5}}],["query",{"0":{"20":1}}],["queried",{"2":{"19":1}}],["queries",{"0":{"17":1}}],["quimb",{"2":{"9":1,"27":1}}],["quot",{"2":{"2":2,"7":2,"25":2}}],["quantum",{"0":{"2":1,"16":1,"18":1},"1":{"17":1,"18":1},"2":{"2":9,"7":2,"12":1}}],["over",{"2":{"25":1}}],["our",{"2":{"25":1,"27":1}}],["out",{"2":{"12":1,"15":1}}],["outputs",{"2":{"2":2,"15":1}}],["output",{"2":{"2":3,"13":2,"15":1,"25":1,"26":1}}],["options",{"2":{"15":1}}],["optimizer",{"2":{"15":4}}],["optimized",{"2":{"10":1}}],["optimization",{"2":{"15":1}}],["operations",{"2":{"5":1,"26":1,"27":1}}],["operation",{"2":{"3":1}}],["operators",{"0":{"13":1},"2":{"13":1}}],["operator",{"2":{"2":3,"13":4}}],["open",{"2":{"2":1,"12":5,"13":5,"15":2}}],["oop",{"2":{"7":2}}],["objects",{"2":{"19":1}}],["object",{"2":{"7":1}}],["other",{"2":{"5":1,"9":1,"12":1,"26":1}}],["others",{"2":{"4":2}}],["old",{"2":{"4":4}}],["one",{"2":{"4":2,"25":1}}],["on",{"2":{"3":3,"4":2,"7":1,"8":1,"9":2,"12":1,"35":1}}],["only",{"2":{"2":2,"13":1}}],["oriented",{"2":{"7":1}}],["order",{"2":{"5":1,"25":5,"26":2}}],["or",{"2":{"2":2,"3":2,"4":3,"7":2,"12":1,"13":2,"26":2,"27":3}}],["of",{"2":{"2":8,"3":10,"4":10,"5":7,"7":4,"9":3,"10":2,"13":1,"15":2,"25":4,"26":6,"27":4,"35":2}}],["tᵢⱼₖ",{"2":{"26":4}}],["tijk⟺t",{"2":{"25":1}}],["time",{"2":{"7":1}}],["take",{"2":{"9":1}}],["terms",{"2":{"25":1}}],["temporarily",{"2":{"8":1}}],["tenpy",{"2":{"9":1}}],["tensorkrowch",{"2":{"9":1}}],["tensors",{"0":{"22":1,"25":1},"1":{"26":1},"2":{"2":1,"4":7,"5":3,"12":1,"15":1,"19":1,"25":4,"27":2}}],["tensornetworks",{"2":{"4":1}}],["tensornetwork",{"0":{"4":1},"1":{"5":1},"2":{"2":2,"4":16,"5":9,"7":2,"8":1,"15":2,"19":2,"27":1,"35":5}}],["tensor",{"0":{"3":1,"16":1,"18":1,"19":1,"26":1},"1":{"17":1,"18":1,"20":1,"21":1,"22":1,"23":1,"24":1},"2":{"1":1,"2":9,"3":15,"4":12,"5":3,"9":4,"10":2,"12":2,"15":1,"19":2,"25":5,"26":8,"27":2,"35":1}}],["tenet",{"2":{"1":1,"2":10,"4":4,"5":9,"7":1,"9":2,"13":1,"15":2,"19":1,"26":1,"27":1,"35":1}}],["td",{"2":{"7":1}}],["tree",{"2":{"15":1}}],["trains",{"2":{"12":1}}],["traits",{"0":{"7":1}}],["transforms",{"2":{"26":1}}],["transformation",{"2":{"5":11}}],["transformations",{"0":{"5":1,"27":1,"28":1},"1":{"28":1,"29":2,"30":2,"31":2,"32":2,"33":2,"34":2},"2":{"27":3}}],["transform",{"2":{"5":6,"27":2}}],["truncation",{"0":{"33":1}}],["truncating",{"2":{"27":1}}],["truncate",{"2":{"5":2}}],["true",{"2":{"2":1,"35":1}}],["type",{"0":{"26":1},"2":{"4":1,"7":1,"13":1,"19":1,"26":1}}],["types",{"2":{"4":1,"7":3}}],["tn",{"2":{"4":14,"5":4,"8":1,"10":1,"12":4,"13":4,"15":3,"19":1,"35":4}}],["t",{"2":{"3":6,"5":2,"7":1,"9":1,"15":1,"25":4,"27":1}}],["think",{"2":{"25":1}}],["this",{"2":{"2":1,"4":1,"5":2,"7":3,"12":1,"13":1,"27":1}}],["than",{"2":{"5":1}}],["that",{"2":{"4":2,"5":3,"13":1,"15":1,"26":3}}],["these",{"2":{"12":1,"19":1,"26":1,"27":2}}],["there",{"2":{"8":1,"9":1,"25":1}}],["them",{"2":{"7":1,"13":1,"26":1}}],["they",{"2":{"7":1}}],["then",{"2":{"4":2}}],["their",{"2":{"4":1,"13":2,"27":1}}],["the",{"0":{"26":1},"2":{"2":8,"3":12,"4":13,"5":5,"7":2,"9":1,"12":2,"13":3,"15":4,"19":4,"25":5,"26":10,"27":11,"35":3}}],["topology",{"2":{"13":1}}],["top",{"2":{"9":1}}],["topic",{"2":{"7":1}}],["tolerance",{"2":{"5":3}}],["to",{"2":{"2":1,"3":15,"4":8,"5":9,"7":1,"8":2,"9":1,"12":1,"13":1,"15":6,"25":3,"26":3,"27":4,"35":2}}],["n=10",{"2":{"12":2,"13":2}}],["nice",{"2":{"9":1}}],["ninputs",{"2":{"2":1}}],["n",{"2":{"4":1,"25":5}}],["necessarily",{"2":{"27":1}}],["nevertheless",{"2":{"25":1}}],["new",{"2":{"4":5,"5":1,"9":1}}],["networks",{"0":{"16":1,"18":1,"19":1},"1":{"17":1,"18":1,"20":1,"21":1,"22":1,"23":1,"24":1},"2":{"10":1,"12":1,"19":1}}],["network",{"2":{"1":1,"2":9,"4":2,"9":4,"10":2,"12":1,"15":1,"27":5}}],["named",{"2":{"25":1}}],["name",{"2":{"3":3,"26":1}}],["nlanes",{"2":{"2":1}}],["nor",{"2":{"26":1}}],["nodes",{"2":{"19":1}}],["node",{"2":{"15":1}}],["no",{"2":{"2":1,"9":1}}],["noutputs",{"2":{"2":1}}],["nothing",{"2":{"26":1}}],["notation",{"2":{"19":1}}],["not",{"2":{"7":2,"25":1}}],["notes",{"2":{"2":1}}],["notion",{"2":{"2":2}}],["numbers",{"2":{"25":1}}],["number",{"2":{"2":1,"25":1}}],["nsites",{"2":{"2":1}}],["show",{"2":{"35":1}}],["shallow",{"2":{"4":1}}],["science",{"2":{"25":1}}],["scalar",{"2":{"2":3,"25":2}}],["support",{"2":{"35":1}}],["superclass",{"2":{"7":1}}],["subtypes",{"2":{"26":1}}],["summation",{"2":{"15":1}}],["slicing",{"0":{"24":1},"2":{"10":1}}],["slice",{"2":{"4":3}}],["split",{"0":{"34":1}}],["splitsimplificationd",{"2":{"5":1}}],["spaces",{"2":{"25":2}}],["space",{"2":{"7":1,"26":1}}],["specified",{"2":{"3":1}}],["smaller",{"2":{"5":1}}],["skip",{"2":{"5":4}}],["strong",{"2":{"9":1}}],["stroke",{"2":{"7":5}}],["structural",{"2":{"7":2}}],["structure",{"2":{"5":1,"27":2}}],["style",{"2":{"7":5}}],["states",{"0":{"12":1},"1":{"13":1},"2":{"12":1}}],["state",{"2":{"1":1,"2":3,"12":2,"13":2}}],["satisfies",{"2":{"4":2}}],["search",{"2":{"15":1,"27":1}}],["sense",{"2":{"7":1}}],["selectdim",{"2":{"4":4}}],["self",{"2":{"4":2}}],["seed=100",{"2":{"12":2,"13":2}}],["seemps",{"2":{"9":1}}],["see",{"2":{"4":7,"5":3,"15":2}}],["sets",{"2":{"5":1}}],["set",{"2":{"4":1,"27":1}}],["svd",{"2":{"3":5}}],["symbolic",{"2":{"15":1}}],["symbols",{"2":{"4":2,"26":2}}],["symbol",{"2":{"3":4,"4":5}}],["simplification",{"0":{"30":1,"34":1}}],["simplify",{"2":{"27":1}}],["similar",{"2":{"15":1}}],["since",{"2":{"26":1}}],["site",{"2":{"13":2}}],["sites",{"2":{"2":9}}],["size",{"2":{"3":3,"4":3,"5":1,"8":1,"26":4,"27":2}}],["some",{"2":{"5":1,"7":1}}],["socket",{"2":{"2":9}}],["source",{"2":{"1":1,"2":9,"3":5,"4":12,"5":8,"9":1,"15":2,"35":1}}],["s",{"2":{"2":10,"3":2,"4":3,"5":1,"7":1,"9":1,"15":1,"19":1,"25":1,"27":1}}],["swapped",{"2":{"2":1}}],["missleading",{"2":{"26":1}}],["missing",{"2":{"2":20,"3":4,"4":6,"5":2,"15":2}}],["might",{"2":{"25":1}}],["multi",{"2":{"19":1}}],["multilinear",{"2":{"4":1,"25":1}}],["most",{"2":{"25":1}}],["modify",{"2":{"27":1}}],["modification",{"0":{"21":1},"1":{"22":1,"23":1}}],["modern",{"2":{"7":1}}],["more",{"2":{"15":1,"27":1}}],["mpos",{"2":{"13":1}}],["mpo",{"0":{"13":1},"2":{"7":2,"13":1}}],["mpss",{"2":{"13":1}}],["mps",{"0":{"1":1,"12":1},"1":{"13":1},"2":{"1":1,"7":2,"12":1,"13":1}}],["meaning",{"2":{"26":1}}],["me",{"2":{"25":1}}],["methods",{"2":{"7":1,"27":1}}],["merge",{"2":{"2":1,"4":3}}],["maximum",{"2":{"27":1}}],["many",{"2":{"25":1,"26":1}}],["major",{"2":{"13":1}}],["makie",{"2":{"10":1,"35":2}}],["matrices",{"2":{"25":1}}],["matrixproduct",{"2":{"12":2,"13":3}}],["matrix",{"0":{"12":1,"13":1},"1":{"13":1},"2":{"1":1,"12":1,"13":2}}],["mathematicians",{"2":{"25":1}}],["mathematical",{"2":{"12":1}}],["mature",{"2":{"9":1}}],["main",{"2":{"9":1}}],["may",{"2":{"8":1,"26":1}}],["mapping",{"2":{"4":1}}],["axis3",{"2":{"35":1}}],["axis",{"2":{"35":1}}],["ax",{"2":{"35":1}}],["available",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1,"33":1,"34":1}}],["avoid",{"2":{"8":1}}],["approach",{"2":{"27":1}}],["apply",{"2":{"27":2}}],["application",{"2":{"25":1}}],["append",{"2":{"4":3}}],["ability",{"2":{"27":1}}],["about",{"2":{"19":1,"25":1}}],["absolute",{"2":{"5":3}}],["abstractarray",{"2":{"26":1}}],["abstractansatz",{"2":{"1":1,"7":1}}],["abstractmps",{"2":{"7":1}}],["abstractmpo",{"2":{"7":1}}],["abstract",{"2":{"7":2}}],["abstractvecortuple",{"2":{"4":2}}],["abstracttensornetwork",{"2":{"4":10,"7":1,"15":2}}],["abstractquantum",{"2":{"2":6,"7":1}}],["aka",{"2":{"15":1}}],["automatic",{"2":{"10":1}}],["at",{"2":{"9":1}}],["atol",{"2":{"5":4}}],["as",{"2":{"7":2,"12":1,"15":2,"19":1,"25":4,"26":3,"35":1}}],["act",{"2":{"7":1}}],["algebra",{"2":{"25":2,"26":1}}],["always",{"2":{"5":1}}],["also",{"2":{"4":7,"5":3,"12":1,"15":2,"26":1,"27":2}}],["all",{"2":{"3":6,"4":1,"5":1,"7":1}}],["address",{"2":{"13":1}}],["add",{"0":{"22":1},"2":{"4":2}}],["adjoint",{"2":{"2":2}}],["arguments",{"2":{"3":3,"5":3,"15":1,"35":1}}],["arrays",{"2":{"25":1}}],["array",{"2":{"3":1,"26":4}}],["are",{"2":{"2":1,"8":1,"9":1,"12":3,"13":2,"19":2,"25":5,"26":1,"27":1,"35":1}}],["anti",{"0":{"32":1},"2":{"5":1}}],["antidiagonalgauging",{"2":{"5":1}}],["an",{"2":{"2":2,"13":1,"15":1,"26":2}}],["and",{"0":{"7":1},"2":{"2":3,"4":4,"7":4,"9":1,"10":1,"13":2,"15":2,"19":1,"25":1,"26":4,"27":2,"35":1}}],["ansatz",{"0":{"0":1,"11":1,"14":1},"1":{"1":1},"2":{"1":1,"7":5,"12":1,"13":1}}],["a",{"2":{"1":1,"2":11,"3":8,"4":15,"5":8,"7":2,"8":1,"9":3,"12":2,"15":7,"19":2,"25":9,"26":8,"27":2,"35":5}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR264/assets/chunks/VPLocalSearchBox.BQ_AdfyQ.js b/previews/PR264/assets/chunks/VPLocalSearchBox.CFxstaDW.js similarity index 99% rename from previews/PR264/assets/chunks/VPLocalSearchBox.BQ_AdfyQ.js rename to previews/PR264/assets/chunks/VPLocalSearchBox.CFxstaDW.js index 70b459a6..ff3b0dfb 100644 --- a/previews/PR264/assets/chunks/VPLocalSearchBox.BQ_AdfyQ.js +++ b/previews/PR264/assets/chunks/VPLocalSearchBox.CFxstaDW.js @@ -1,4 +1,4 @@ -var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,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 Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.OJaHWZpq.js";import{u as ss,c as ns}from"./theme.COxracLc.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.CrmBCKsK.js"),[])};/*! +var Ft=Object.defineProperty;var Ot=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Ot(a,typeof e!="symbol"?e+"":e,t);import{V as Ct,p as ie,h as me,aj as tt,ak as Rt,al as At,q as $e,am as Mt,d as Lt,D as xe,an as st,ao as Dt,ap as zt,s as Pt,aq as jt,v as Me,P as he,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 Ut,k as L,at as qt,au as Gt,av as Ht,c as Z,n as nt,e as Se,C as it,F as rt,a as fe,t as pe,aw as Qt,ax as at,ay as Yt,a9 as Zt,af as Xt,az as es,_ as ts}from"./framework.OJaHWZpq.js";import{u as ss,c as ns}from"./theme.B6ti37H5.js";const is={root:()=>Ct(()=>import("./@localSearchIndexroot.DY7OwwSG.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var mt=["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=mt.join(","),gt=typeof Element>"u",ae=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Fe=!gt&&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},Oe=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},rs=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},bt=function(e,t,s){if(Oe(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&n.unshift(e),n=n.filter(s),n},yt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Oe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ae.call(i,Ne);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var m=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),f=!Oe(m,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(m&&f){var b=a(m===!0?i.children:m.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},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)||rs(e))&&!wt(e)?0:e.tabIndex},as=function(e,t){var s=re(e);return s<0&&t&&!wt(e)?0:s},os=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ls=function(e){return xt(e)&&e.type==="hidden"},cs=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},us=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ae.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=Fe(e);if(l&&!l.shadowRoot&&n(l)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(ps(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return ot(e);return!1},ms=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},bs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=as(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(os).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:gs}):s=bt(e,t.includeContainer,Be.bind(null,t)),bs(s)},ws=function(e,t){t=t||{};var s;return t.getShadowRoot?s=yt([e],t.includeContainer,{filter:Ce.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=bt(e,t.includeContainer,Ce.bind(null,t)),s},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},xs=mt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,xs)===!1?!1:Ce(t,e)};/*! diff --git a/previews/PR264/assets/chunks/theme.COxracLc.js b/previews/PR264/assets/chunks/theme.B6ti37H5.js similarity index 99% rename from previews/PR264/assets/chunks/theme.COxracLc.js rename to previews/PR264/assets/chunks/theme.B6ti37H5.js index 22a85b2e..9d821e5e 100644 --- a/previews/PR264/assets/chunks/theme.COxracLc.js +++ b/previews/PR264/assets/chunks/theme.B6ti37H5.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.BQ_AdfyQ.js","assets/chunks/framework.OJaHWZpq.js"])))=>i.map(i=>d[i]); -import{d as m,o as a,c as u,r as c,n as I,a as j,t as N,b,w as f,e as h,T as de,_ as $,u as je,i as ze,f as Ke,g as ve,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 fe,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 ot,a4 as st}from"./framework.OJaHWZpq.js";const at=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(N(e.text),1)])],2))}}),rt={key:0,class:"VPBackdrop"},it=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),b(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",rt)):h("",!0)]),_:1}))}}),lt=$(it,[["__scopeId","data-v-b06cdb19"]]),L=je;function ct(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function _e(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(ze(s)||s.startsWith("#")||!n.startsWith("http")||!Ke(e))return s;const{site:r}=L(),l=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${o}`);return ve(l)}function X({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:o,theme:n,hash:r}=L(),l=y(()=>{var v,k;return{label:(v=e.value.locales[t.value])==null?void 0:v.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(([v,k])=>l.value.label===k.label?[]:{text:k.label,link:ut(k.link||(v==="root"?"/":`/${v}/`),n.value.i18nRouting!==!1&&s,o.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function ut(s,e,t,o){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const dt={class:"NotFound"},vt={class:"code"},pt={class:"title"},ft={class:"quote"},ht={class:"action"},mt=["href","aria-label"],_t=m({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=X();return(o,n)=>{var r,l,d,v,k;return a(),u("div",dt,[p("p",vt,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",ft,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(ve)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.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(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),o=t?s[t]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function kt(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function gt(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function ce(s,e){return Array.isArray(e)?e.some(t=>ce(s,t)):z(s,e.link)?!0:e.items?ce(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=Q(o.items,n)),o})}function R(){const{frontmatter:s,page:e,theme:t}=L(),o=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(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),v=y(()=>k?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),k=y(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),V=y(()=>d.value&&o.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:v,isSidebarEnabled:V,open:P,close:S,toggle:E}}function $t(s,e){let t;x(()=>{t=s.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",o)}),pe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function yt(s){const{page:e,hash:t}=L(),o=T(!1),n=y(()=>s.value.collapsed!=null),r=y(()=>!!s.value.link),l=T(!1),d=()=>{l.value=z(e.value.relativePath,s.value.link)};H([e,s,t],d),F(d);const v=y(()=>l.value?!0:s.value.items?ce(e.value.relativePath,s.value.items):!1),k=y(()=>!!(s.value.items&&s.value.items.length));x(()=>{o.value=!!(n.value&&s.value.collapsed)}),fe(()=>{(l.value||v.value)&&(o.value=!1)});function V(){n.value&&(o.value=!o.value)}return{collapsed:o,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:v,hasChildren:k,toggle:V}}function Pt(){const{hasSidebar:s}=R(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ue=[];function Ce(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function be(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:St(t),link:"#"+t.id,level:o}});return Vt(e,s)}function St(s){let e="";for(const t of s.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(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return wt(s,o,n)}function Lt(s,e){const{isAsideEnabled:t}=Pt(),o=ct(r,100);let n=null;F(()=>{requestAnimationFrame(r),window.addEventListener("scroll",o)}),We(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,k=document.body.offsetHeight,V=Math.abs(d+v-k)<1,_=ue.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=s.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=n;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Tt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}function wt(s,e,t){ue.length=0;const o=[],n=[];return s.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(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,A(t.headers,({children:r,link:l,title:d})=>(a(),u("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(s){const{frontmatter:e,theme:t}=L(),o=Le([]);ee(()=>{o.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return Lt(n,r),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":o.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:o.value,root:!0},null,8,["headers"])])],2))}}),At=$(Ct,[["__scopeId","data-v-b38bf2ff"]]),Bt={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),u("div",Bt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ot={class:"VPDocAside"},Dt=m({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,o)=>(a(),u("div",Ot,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),g(At),c(t.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=p("div",{class:"spacer"},null,-1)),c(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),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=$(Dt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:s,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ut(){const{page:s,theme:e,frontmatter:t}=L();return y(()=>{var k,V,_,P,S,E,C,w;const o=Ee(e.value.sidebar,s.value.relativePath),n=gt(o),r=Gt(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>z(s.value.relativePath,B.link)),d=((k=e.value.docFooter)==null?void 0:k.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((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:v?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(s,e){const t=new Set;return s.filter(o=>{const n=e(o);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.tag??(e.href?"a":"span")),o=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":o.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],Kt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,lang:o}=L(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return F(()=>{x(()=>{var d,v,k;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?o.value:void 0,((k=e.value.lastUpdated)==null?void 0:k.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,v)=>{var k;return a(),u("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"],on=["innerHTML"],sn=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=L(),n=Rt(),r=Ut(),l=y(()=>e.value.editLink&&o.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||r.value.prev||r.value.next);return(k,V)=>{var _,P,S,E;return v.value?(a(),u("footer",qt,[c(k.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",Jt,[l.value?(a(),u("div",Yt,[g(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:f(()=>[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(),u("div",Xt,[g(Wt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),u("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:f(()=>{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:f(()=>{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,on)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),an=$(sn,[["__scopeId","data-v-4f9813fa"]]),rn={class:"container"},ln={class:"aside-container"},cn={class:"aside-content"},un={class:"content"},dn={class:"content-container"},vn={class:"main"},pn=m({__name:"VPDoc",setup(s){const{theme:e}=L(),t=Y(),{hasSidebar:o,hasAside:n,leftAside:r}=R(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const k=K("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":i(o),"has-aside":i(n)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",rn,[i(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[v[0]||(v[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ln,[p("div",cn,[g(Ft,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",un,[p("div",dn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",vn,[g(k,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(an,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),fn=$(pn,[["__scopeId","data-v-83890dd9"]]),hn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.href&&Te.test(e.href)),o=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),b(O(o.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:f(()=>[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(s){return(e,t)=>{const o=K("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,_n)):(a(),u(M,{key:1},[g(o,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(o,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(s){const e=q("hero-image-slot-exists");return(t,o)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[p("div",kn,[p("div",gn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",$n,[p("span",{innerHTML:t.name,class:"clip"},null,8,yn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,Pn)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Sn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Vn,[(a(!0),u(M,null,A(t.actions,n=>(a(),u("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),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),u("div",Ln,[p("div",Tn,[o[0]||(o[0]=p("div",{class:"image-bg"},null,-1)),c(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(s){const{frontmatter:e}=L();return(t,o)=>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":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(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(s){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:f(()=>[p("article",Mn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("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(),u("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(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Bn)):h("",!0),e.linkText?(a(),u("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(s){const e=s,t=y(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),u("div",Rn,[p("div",Un,[p("div",Gn,[(a(!0),u(M,null,A(o.features,r=>(a(),u("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(s){const{frontmatter:e}=L();return(t,o)=>i(e).features?(a(),b(zn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=m({__name:"VPHomeContent",setup(s){const{width:e}=Je({initialWidth:0,includeScrollbar:!1});return(t,o)=>(a(),u("div",{class:"vp-doc container",style:we(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),qn=$(Wn,[["__scopeId","data-v-7a48a447"]]),Jn={class:"VPHome"},Yn=m({__name:"VPHome",setup(s){const{frontmatter:e}=L();return(t,o)=>{const n=K("Content");return a(),u("div",Jn,[c(t.$slots,"home-hero-before",{},void 0,!0),g(In,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),g(Kn),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(qn,{key:0},{default:f(()=>[g(n)]),_:1})):(a(),b(n,{key:1}))])}}}),Xn=$(Yn,[["__scopeId","data-v-cbb6ec48"]]),Qn={},Zn={class:"VPPage"};function xn(s,e){const t=K("Content");return a(),u("div",Zn,[c(s.$slots,"page-top"),g(t),c(s.$slots,"page-bottom")])}const eo=$(Qn,[["render",xn]]),to=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:o}=R();return(n,r)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[g(bt)],!0):i(t).layout==="page"?(a(),b(eo,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(Xn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(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(fn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),no=$(to,[["__scopeId","data-v-91765379"]]),oo={class:"container"},so=["innerHTML"],ao=["innerHTML"],ro=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=R();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(o)}])},[p("div",oo,[i(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,so)):h("",!0),i(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ao)):h("",!0)])],2)):h("",!0)}}),io=$(ro,[["__scopeId","data-v-c970a860"]]);function lo(){const{theme:s,frontmatter:e}=L(),t=Le([]),o=y(()=>t.value.length>0);return ee(()=>{t.value=be(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const co={class:"menu-text"},uo={class:"header"},vo={class:"outline"},po=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),o=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(o.value=!1)}H(o,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{o.value=!1}),ee(()=>{o.value=!1});function v(){o.value=!o.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(()=>{o.value=!1}))}function V(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:we({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),u("button",{key:0,onClick:v,class:I({open:o.value})},[p("span",co,N(i(Ce)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)),g(de,{name:"flyout"},{default:f(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:k},[p("div",uo,[p("a",{class:"top-link",href:"#",onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)]),p("div",vo,[g(Ae,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fo=$(po,[["__scopeId","data-v-bc9dc845"]]),ho={class:"container"},mo=["aria-expanded"],_o={class:"menu-text"},bo=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=R(),{headers:n}=lo(),{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),v=y(()=>d.value&&!o.value),k=y(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:d.value,fixed:v.value}));return(V,_)=>i(t).layout!=="home"&&(!v.value||i(r)>=l.value)?(a(),u("div",{key:0,class:I(k.value)},[p("div",ho,[i(o)?(a(),u("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",_o,N(i(e).sidebarMenuLabel||"Menu"),1)],8,mo)):h("",!0),g(fo,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ko=$(bo,[["__scopeId","data-v-070ab83d"]]);function go(){const s=T(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=Y();return H(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const $o={},yo={class:"VPSwitch",type:"button",role:"switch"},Po={class:"check"},So={key:0,class:"icon"};function Vo(s,e){return a(),u("button",yo,[p("span",Po,[s.$slots.default?(a(),u("span",So,[c(s.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Lo=$($o,[["render",Vo],["__scopeId","data-v-4a1c76db"]]),To=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),o=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),b(Lo,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(o)},{default:f(()=>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=$(To,[["__scopeId","data-v-e40a8bb6"]]),wo={key:0,class:"VPNavBarAppearance"},No=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,o)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",wo,[g(ke)])):h("",!0)}}),Io=$(No,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Mo(s){const e=T(!1);if(te){!Be&&Eo(),ae++;const t=H(ge,o=>{var n,r,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(l=s.onBlur)==null||l.call(s))});pe(()=>{t(),ae--,ae||Co()})}return Ye(e)}function Eo(){document.addEventListener("focusin",He),Be=!0,ge.value=document.activeElement}function Co(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const Ao={class:"VPMenuLink"},Bo=["innerHTML"],Ho=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),u("div",Ao,[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:f(()=>[p("span",{innerHTML:t.item.text},null,8,Bo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Ho,[["__scopeId","data-v-acbfed09"]]),Oo={class:"VPMenuGroup"},Do={key:0,class:"title"},Fo=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",Oo,[e.text?(a(),u("p",Do,N(e.text),1)):h("",!0),(a(!0),u(M,null,A(e.items,o=>(a(),u(M,null,["link"in o?(a(),b(ne,{key:0,item:o},null,8,["item"])):h("",!0)],64))),256))]))}}),Ro=$(Fo,[["__scopeId","data-v-48c802d0"]]),Uo={class:"VPMenu"},Go={key:0,class:"items"},jo=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),u("div",Uo,[e.items?(a(),u("div",Go,[(a(!0),u(M,null,A(e.items,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),b(ne,{key:0,item:o},null,8,["item"])):"component"in o?(a(),b(O(o.component),G({key:1,ref_for:!0},o.props),null,16)):(a(),b(Ro,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),zo=$(jo,[["__scopeId","data-v-7dd3104a"]]),Ko=["aria-expanded","aria-label"],Wo={key:0,class:"text"},qo=["innerHTML"],Jo={key:1,class:"vpi-more-horizontal icon"},Yo={class:"menu"},Xo=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=T(!1),t=T();Mo({el:t,onBlur:o});function o(){e.value=!1}return(n,r)=>(a(),u("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(),u("span",Wo,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,qo)):h("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Jo))],8,Ko),p("div",Yo,[g(zo,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(Xo,[["__scopeId","data-v-04f5c5e9"]]),Qo=["href","aria-label","innerHTML"],Zo=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,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 o=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),u("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:o.value},null,8,Qo))}}),xo=$(Zo,[["__scopeId","data-v-d26d30cb"]]),es={class:"VPSocialLinks"},ts=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),u("div",es,[(a(!0),u(M,null,A(e.links,({link:o,icon:n,ariaLabel:r})=>(a(),b(xo,{key:o,icon:n,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(ts,[["__scopeId","data-v-ee7a9424"]]),ns={key:0,class:"group translations"},os={class:"trans-title"},ss={key:1,class:"group"},as={class:"item appearance"},rs={class:"label"},is={class:"appearance-action"},ls={key:2,class:"group"},cs={class:"item social-links"},us=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:o,currentLang:n}=X({correspondingLink:!0}),r=y(()=>o.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:f(()=>[i(o).length&&i(n).label?(a(),u("div",ns,[p("p",os,N(i(n).label),1),(a(!0),u(M,null,A(i(o),v=>(a(),b(ne,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",ss,[p("div",as,[p("p",rs,N(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",is,[g(ke)])])])):h("",!0),i(t).socialLinks?(a(),u("div",ls,[p("div",cs,[g(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),ds=$(us,[["__scopeId","data-v-925effce"]]),vs=["aria-expanded"],ps=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),u("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]=o=>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,vs))}}),fs=$(ps,[["__scopeId","data-v-5dea55bf"]]),hs=["innerHTML"],ms=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(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:f(()=>[p("span",{innerHTML:t.item.text},null,8,hs)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_s=$(ms,[["__scopeId","data-v-956ec74c"]]),Oe=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),o=r=>"component"in r?!1:"link"in r?z(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(o),n=y(()=>o(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"]))}}),bs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ks=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,o)=>i(e).nav?(a(),u("nav",bs,[o[0]||(o[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,A(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),b(_s,{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)}}),gs=$(ks,[["__scopeId","data-v-e6d46098"]]);function $s(s){const{localeIndex:e,theme:t}=L();function o(n){var E,C,w;const r=n.split("."),l=(E=t.value.search)==null?void 0:E.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,k=d&&l.translations||null;let V=v,_=k,P=s;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 oe=_==null?void 0:_[B];oe&&(U=_=oe);const se=V==null?void 0:V[B];se&&(U=V=se),W||(P=U),oe||(_=U),se||(V=U)}return(V==null?void 0:V[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return o}const ys=["aria-label"],Ps={class:"DocSearch-Button-Container"},Ss={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(s){const t=$s({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",Ps,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",Ss,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,ys))}}),Vs={class:"VPNavBarSearch"},Ls={id:"local-search"},Ts={key:1,id:"docsearch"},ws=m({__name:"VPNavBarSearch",setup(s){const e=Xe(()=>Qe(()=>import("./VPLocalSearchBox.BQ_AdfyQ.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:o}=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 v(_){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("/",_=>{v(_)||(_.preventDefault(),k.value=!0)});const V="local";return(_,P)=>{var S;return a(),u("div",Vs,[i(V)==="local"?(a(),u(M,{key:0},[k.value?(a(),b(i(e),{key:0,onClose:P[0]||(P[0]=E=>k.value=!1)})):h("",!0),p("div",Ls,[g(Pe,{onClick:P[1]||(P[1]=E=>k.value=!0)})])],64)):i(V)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),u("div",Ts,[g(Pe,{onClick:l})]))],64)):h("",!0)])}}}),Ns=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),Is=$(Ns,[["__scopeId","data-v-164c457f"]]),Ms=["href","rel","target"],Es=["innerHTML"],Cs={key:2},As=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:o}=R(),{currentLang:n}=X(),r=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,k)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(o)}])},[p("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[c(v.$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(),u("span",{key:1,innerHTML:i(t).siteTitle},null,8,Es)):i(t).siteTitle===void 0?(a(),u("span",Cs,N(i(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ms)],2))}}),Bs=$(As,[["__scopeId","data-v-0f4f798b"]]),Hs={class:"items"},Os={class:"title"},Ds=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:o}=X({correspondingLink:!0});return(n,r)=>i(t).length&&i(o).label?(a(),b($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Hs,[p("p",Os,N(i(o).label),1),(a(!0),u(M,null,A(i(t),l=>(a(),b(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fs=$(Ds,[["__scopeId","data-v-c80d9ad0"]]),Rs={class:"wrapper"},Us={class:"container"},Gs={class:"title"},js={class:"content"},zs={class:"content-body"},Ks=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const e=s,{y:t}=Ne(),{hasSidebar:o}=R(),{frontmatter:n}=L(),r=T({});return fe(()=>{r.value={"has-sidebar":o.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:I(["VPNavBar",r.value])},[p("div",Rs,[p("div",Us,[p("div",Gs,[g(Bs,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",js,[p("div",zs,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),g(ws,{class:"search"}),g(gs,{class:"menu"}),g(Fs,{class:"translations"}),g(Io,{class:"appearance"}),g(Is,{class:"social-links"}),g(ds,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),g(fs,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ws=$(Ks,[["__scopeId","data-v-822684d1"]]),qs={key:0,class:"VPNavScreenAppearance"},Js={class:"text"},Ys=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(o,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",qs,[p("p",Js,N(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):h("",!0)}}),Xs=$(Ys,[["__scopeId","data-v-ffb44008"]]),Qs=["innerHTML"],Zs=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=q("close-screen");return(t,o)=>(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:f(()=>[p("span",{innerHTML:t.item.text},null,8,Qs)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xs=$(Zs,[["__scopeId","data-v-735512b8"]]),ea=["innerHTML"],ta=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=q("close-screen");return(t,o)=>(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:f(()=>[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"},oa={key:0,class:"title"},sa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",na,[e.text?(a(),u("p",oa,N(e.text),1)):h("",!0),(a(!0),u(M,null,A(e.items,o=>(a(),b(De,{key:o.text,item:o},null,8,["item"]))),128))]))}}),aa=$(sa,[["__scopeId","data-v-4b8941ac"]]),ra=["aria-controls","aria-expanded"],ia=["innerHTML"],la=["id"],ca={key:0,class:"item"},ua={key:1,class:"item"},da={key:2,class:"group"},va=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=T(!1),o=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":o.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:o.value,class:"items"},[(a(!0),u(M,null,A(r.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",ca,[g(De,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",ua,[(a(),b(O(d.component),G({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",da,[g(aa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,la)],2))}}),Fe=$(va,[["__scopeId","data-v-875057a5"]]),pa={key:0,class:"VPNavScreenMenu"},fa=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,o)=>i(e).nav?(a(),u("nav",pa,[(a(!0),u(M,null,A(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),b(xs,{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(s){const{theme:e}=L();return(t,o)=>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(s){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),o=T(!1);function n(){o.value=!o.value}return(r,l)=>i(e).length&&i(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:o.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),u(M,null,A(i(e),d=>(a(),u("li",{key:d.link,class:"item"},[g(D,{class:"link",href:d.link},{default:f(()=>[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(s){const e=T(null),t=Ie(te?document.body:null);return(o,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:f(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ka,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),g(fa,{class:"menu"}),g(ba,{class:"translations"}),g(Xs,{class:"appearance"}),g(ha,{class:"social-links"}),c(o.$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(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=go(),{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(),u("header",ya,[g(Ws,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g($a,{open:i(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(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(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:v}=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:o.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&&v()}function C(){e.item.link&&v()}return(w,B)=>{const U=K("VPSidebarItem",!0);return a(),b(O(k.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("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:f(()=>[(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(),u("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(),u("div",La,[w.depth<5?(a(!0),u(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(s){const e=T(!0);let t=null;return F(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),et(()=>{t!=null&&(clearTimeout(t),t=null)}),(o,n)=>(a(!0),u(M,null,A(o.items,r=>(a(),u("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(s){const{sidebarGroups:e,hasSidebar:t}=R(),o=s,n=T(null),r=Ie(te?document.body:null);H([o,n],()=>{var d;o.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,v)=>i(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=tt(()=>{},["stop"]))},[v[2]||(v[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ma,[v[1]||(v[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),b(Ia,{items:i(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Ea,[["__scopeId","data-v-18756405"]]),Aa=m({__name:"VPSkipLink",setup(s){const e=Y(),t=T();H(()=>e.path,()=>t.value.focus());function o({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(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),Ba=$(Aa,[["__scopeId","data-v-c3508ec8"]]),Ha=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=R(),n=Y();H(()=>n.path,o),$t(e,o);const{frontmatter:r}=L(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,k)=>{const V=K("Content");return i(r).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",i(r).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),g(Ba),g(lt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),g(Sa,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(ko,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Ca,{open:i(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(no,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(io),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(V,{key:1}))}}}),Oa=$(Ha,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Oa,enhanceApp:({app:s})=>{s.component("Badge",at)}},Da=m({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(s){Y();const e=T([]),t=T("Versions"),o=()=>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 o();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=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const r=o(...n),l=s.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 s=J==null?void 0:J.getItem(Ue);if(s)try{return JSON.parse(s)}catch{}return{}},Ga=s=>{J&&J.setItem(Ue,JSON.stringify(s))},ja=s=>{const e=nt({});H(()=>e.content,(t,o)=>{t&&o&&Ga(t)},{deep:!0}),s.provide(Re,e)},za=(s,e)=>{const t=q(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ua())});const o=T(),n=y({get(){var v;const l=e.value,d=s.value;if(l){const k=(v=t.content)==null?void 0:v[l];if(k&&d.includes(k))return k}else{const k=o.value;if(k)return k}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):o.value=l}});return{selected:n,select:l=>{n.value=l}}};let Ve=0;const Ka=()=>(Ve++,""+Ve);function Wa(){const s=Me();return y(()=>{var o;const t=(o=s.default)==null?void 0:o.call(s);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=s=>{me(Ge,s)},Ja=()=>{const s=q(Ge);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},Ya={class:"plugin-tabs"},Xa=["id","aria-selected","aria-controls","tabindex","onClick"],Qa=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=Wa(),{selected:o,select:n}=za(t,ot(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Ra(r),d=l(n),v=T([]),k=_=>{var E;const P=t.value.indexOf(o.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),u("div",Ya,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:k},[(a(!0),u(M,null,A(i(t),S=>(a(),u("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(o),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(o)?0:-1,onClick:()=>i(d)(S)},N(S),9,Xa))),128))],544),c(_.$slots,"default")]))}}),Za=["id","aria-labelledby"],xa=m({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=Ja();return(o,n)=>i(t)===o.label?(a(),u("div",{key:0,id:`panel-${o.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${i(e)}`},[c(o.$slots,"default",{},void 0,!0)],8,Za)):h("",!0)}}),er=$(xa,[["__scopeId","data-v-9b0d03d2"]]),tr=s=>{ja(s),s.component("PluginTabs",Qa),s.component("PluginTabsTab",er)},or={extends:Se,Layout(){return st(Se.Layout,null,{})},enhanceApp({app:s,router:e,siteData:t}){if(tr(s),s.component("VersionPicker",Fa),typeof window<"u"){let o=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,o,{immediate:!0}),document.addEventListener("DOMContentLoaded",o)}}};export{or as R,$s as c,L as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CFxstaDW.js","assets/chunks/framework.OJaHWZpq.js"])))=>i.map(i=>d[i]); +import{d as m,o as a,c as u,r as c,n as I,a as j,t as N,b,w as f,e as h,T as de,_ as $,u as je,i as ze,f as Ke,g as ve,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 fe,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 ot,a4 as st}from"./framework.OJaHWZpq.js";const at=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),u("span",{class:I(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[j(N(e.text),1)])],2))}}),rt={key:0,class:"VPBackdrop"},it=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),b(de,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",rt)):h("",!0)]),_:1}))}}),lt=$(it,[["__scopeId","data-v-b06cdb19"]]),L=je;function ct(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function le(s){return/^\//.test(s)?s:`/${s}`}function _e(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(ze(s)||s.startsWith("#")||!n.startsWith("http")||!Ke(e))return s;const{site:r}=L(),l=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${o}`);return ve(l)}function X({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:o,theme:n,hash:r}=L(),l=y(()=>{var v,k;return{label:(v=e.value.locales[t.value])==null?void 0:v.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(([v,k])=>l.value.label===k.label?[]:{text:k.label,link:ut(k.link||(v==="root"?"/":`/${v}/`),n.value.i18nRouting!==!1&&s,o.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:l}}function ut(s,e,t,o){return e?s.replace(/\/$/,"")+le(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const dt={class:"NotFound"},vt={class:"code"},pt={class:"title"},ft={class:"quote"},ht={class:"action"},mt=["href","aria-label"],_t=m({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=X();return(o,n)=>{var r,l,d,v,k;return a(),u("div",dt,[p("p",vt,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",ft,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(ve)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.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(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=le(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(le(n))),o=t?s[t]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function kt(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function gt(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function ce(s,e){return Array.isArray(e)?e.some(t=>ce(s,t)):z(s,e.link)?!0:e.items?ce(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=Q(o.items,n)),o})}function R(){const{frontmatter:s,page:e,theme:t}=L(),o=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(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),v=y(()=>k?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),k=y(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),V=y(()=>d.value&&o.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:v,isSidebarEnabled:V,open:P,close:S,toggle:E}}function $t(s,e){let t;x(()=>{t=s.value?document.activeElement:void 0}),F(()=>{window.addEventListener("keyup",o)}),pe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function yt(s){const{page:e,hash:t}=L(),o=T(!1),n=y(()=>s.value.collapsed!=null),r=y(()=>!!s.value.link),l=T(!1),d=()=>{l.value=z(e.value.relativePath,s.value.link)};H([e,s,t],d),F(d);const v=y(()=>l.value?!0:s.value.items?ce(e.value.relativePath,s.value.items):!1),k=y(()=>!!(s.value.items&&s.value.items.length));x(()=>{o.value=!!(n.value&&s.value.collapsed)}),fe(()=>{(l.value||v.value)&&(o.value=!1)});function V(){n.value&&(o.value=!o.value)}return{collapsed:o,collapsible:n,isLink:r,isActiveLink:l,hasActiveLink:v,hasChildren:k,toggle:V}}function Pt(){const{hasSidebar:s}=R(),e=re("(min-width: 960px)"),t=re("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ue=[];function Ce(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function be(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:St(t),link:"#"+t.id,level:o}});return Vt(e,s)}function St(s){let e="";for(const t of s.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(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return wt(s,o,n)}function Lt(s,e){const{isAsideEnabled:t}=Pt(),o=ct(r,100);let n=null;F(()=>{requestAnimationFrame(r),window.addEventListener("scroll",o)}),We(()=>{l(location.hash)}),pe(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,k=document.body.offsetHeight,V=Math.abs(d+v-k)<1,_=ue.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=s.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=n;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Tt(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}function wt(s,e,t){ue.length=0;const o=[],n=[];return s.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(),u("ul",{class:I(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(M,null,A(t.headers,({children:r,link:l,title:d})=>(a(),u("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(s){const{frontmatter:e,theme:t}=L(),o=Le([]);ee(()=>{o.value=be(e.value.outline??t.value.outline)});const n=T(),r=T();return Lt(n,r),(l,d)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:I(["VPDocAsideOutline",{"has-outline":o.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:o.value,root:!0},null,8,["headers"])])],2))}}),At=$(Ct,[["__scopeId","data-v-b38bf2ff"]]),Bt={class:"VPDocAsideCarbonAds"},Ht=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),u("div",Bt,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ot={class:"VPDocAside"},Dt=m({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,o)=>(a(),u("div",Ot,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),g(At),c(t.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=p("div",{class:"spacer"},null,-1)),c(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),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Ft=$(Dt,[["__scopeId","data-v-6d7b3c46"]]);function Rt(){const{theme:s,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Ut(){const{page:s,theme:e,frontmatter:t}=L();return y(()=>{var k,V,_,P,S,E,C,w;const o=Ee(e.value.sidebar,s.value.relativePath),n=gt(o),r=Gt(n,B=>B.link.replace(/[?#].*$/,"")),l=r.findIndex(B=>z(s.value.relativePath,B.link)),d=((k=e.value.docFooter)==null?void 0:k.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((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:v?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(s,e){const t=new Set;return s.filter(o=>{const n=e(o);return t.has(n)?!1:t.add(n)})}const D=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.tag??(e.href?"a":"span")),o=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":o.value,"no-icon":n.noIcon}]),href:n.href?i(_e)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),jt={class:"VPLastUpdated"},zt=["datetime"],Kt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,lang:o}=L(),n=y(()=>new Date(t.value.lastUpdated)),r=y(()=>n.value.toISOString()),l=T("");return F(()=>{x(()=>{var d,v,k;l.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?o.value:void 0,((k=e.value.lastUpdated)==null?void 0:k.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,v)=>{var k;return a(),u("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"],on=["innerHTML"],sn=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=L(),n=Rt(),r=Ut(),l=y(()=>e.value.editLink&&o.value.editLink!==!1),d=y(()=>t.value.lastUpdated),v=y(()=>l.value||d.value||r.value.prev||r.value.next);return(k,V)=>{var _,P,S,E;return v.value?(a(),u("footer",qt,[c(k.$slots,"doc-footer-before",{},void 0,!0),l.value||d.value?(a(),u("div",Jt,[l.value?(a(),u("div",Yt,[g(D,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:f(()=>[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(),u("div",Xt,[g(Wt)])):h("",!0)])):h("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(a(),u("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:f(()=>{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:f(()=>{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,on)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),an=$(sn,[["__scopeId","data-v-4f9813fa"]]),rn={class:"container"},ln={class:"aside-container"},cn={class:"aside-content"},un={class:"content"},dn={class:"content-container"},vn={class:"main"},pn=m({__name:"VPDoc",setup(s){const{theme:e}=L(),t=Y(),{hasSidebar:o,hasAside:n,leftAside:r}=R(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const k=K("Content");return a(),u("div",{class:I(["VPDoc",{"has-sidebar":i(o),"has-aside":i(n)}])},[c(d.$slots,"doc-top",{},void 0,!0),p("div",rn,[i(n)?(a(),u("div",{key:0,class:I(["aside",{"left-aside":i(r)}])},[v[0]||(v[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",ln,[p("div",cn,[g(Ft,null,{"aside-top":f(()=>[c(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",un,[p("div",dn,[c(d.$slots,"doc-before",{},void 0,!0),p("main",vn,[g(k,{class:I(["vp-doc",[l.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(an,null,{"doc-footer-before":f(()=>[c(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(d.$slots,"doc-after",{},void 0,!0)])])]),c(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),fn=$(pn,[["__scopeId","data-v-83890dd9"]]),hn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.href&&Te.test(e.href)),o=y(()=>e.tag||(e.href?"a":"button"));return(n,r)=>(a(),b(O(o.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:f(()=>[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(s){return(e,t)=>{const o=K("VPImage",!0);return e.image?(a(),u(M,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",G({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,_n)):(a(),u(M,{key:1},[g(o,G({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(o,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(s){const e=q("hero-image-slot-exists");return(t,o)=>(a(),u("div",{class:I(["VPHero",{"has-image":t.image||i(e)}])},[p("div",kn,[p("div",gn,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[t.name?(a(),u("h1",$n,[p("span",{innerHTML:t.name,class:"clip"},null,8,yn)])):h("",!0),t.text?(a(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,Pn)):h("",!0),t.tagline?(a(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Sn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",Vn,[(a(!0),u(M,null,A(t.actions,n=>(a(),u("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),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),u("div",Ln,[p("div",Tn,[o[0]||(o[0]=p("div",{class:"image-bg"},null,-1)),c(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(s){const{frontmatter:e}=L();return(t,o)=>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":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(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(s){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:f(()=>[p("article",Mn,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("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(),u("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(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Bn)):h("",!0),e.linkText?(a(),u("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(s){const e=s,t=y(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),u("div",Rn,[p("div",Un,[p("div",Gn,[(a(!0),u(M,null,A(o.features,r=>(a(),u("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(s){const{frontmatter:e}=L();return(t,o)=>i(e).features?(a(),b(zn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=m({__name:"VPHomeContent",setup(s){const{width:e}=Je({initialWidth:0,includeScrollbar:!1});return(t,o)=>(a(),u("div",{class:"vp-doc container",style:we(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),qn=$(Wn,[["__scopeId","data-v-7a48a447"]]),Jn={class:"VPHome"},Yn=m({__name:"VPHome",setup(s){const{frontmatter:e}=L();return(t,o)=>{const n=K("Content");return a(),u("div",Jn,[c(t.$slots,"home-hero-before",{},void 0,!0),g(In,null,{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(t.$slots,"home-hero-after",{},void 0,!0),c(t.$slots,"home-features-before",{},void 0,!0),g(Kn),c(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(a(),b(qn,{key:0},{default:f(()=>[g(n)]),_:1})):(a(),b(n,{key:1}))])}}}),Xn=$(Yn,[["__scopeId","data-v-cbb6ec48"]]),Qn={},Zn={class:"VPPage"};function xn(s,e){const t=K("Content");return a(),u("div",Zn,[c(s.$slots,"page-top"),g(t),c(s.$slots,"page-bottom")])}const eo=$(Qn,[["render",xn]]),to=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:o}=R();return(n,r)=>(a(),u("div",{class:I(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[g(bt)],!0):i(t).layout==="page"?(a(),b(eo,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),b(Xn,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(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(fn,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),no=$(to,[["__scopeId","data-v-91765379"]]),oo={class:"container"},so=["innerHTML"],ao=["innerHTML"],ro=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=R();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),u("footer",{key:0,class:I(["VPFooter",{"has-sidebar":i(o)}])},[p("div",oo,[i(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,so)):h("",!0),i(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,ao)):h("",!0)])],2)):h("",!0)}}),io=$(ro,[["__scopeId","data-v-c970a860"]]);function lo(){const{theme:s,frontmatter:e}=L(),t=Le([]),o=y(()=>t.value.length>0);return ee(()=>{t.value=be(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const co={class:"menu-text"},uo={class:"header"},vo={class:"outline"},po=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),o=T(!1),n=T(0),r=T(),l=T();function d(_){var P;(P=r.value)!=null&&P.contains(_.target)||(o.value=!1)}H(o,_=>{if(_){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ie("Escape",()=>{o.value=!1}),ee(()=>{o.value=!1});function v(){o.value=!o.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(()=>{o.value=!1}))}function V(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:we({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(a(),u("button",{key:0,onClick:v,class:I({open:o.value})},[p("span",co,N(i(Ce)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)),g(de,{name:"flyout"},{default:f(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:k},[p("div",uo,[p("a",{class:"top-link",href:"#",onClick:V},N(i(t).returnToTopLabel||"Return to top"),1)]),p("div",vo,[g(Ae,{headers:_.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fo=$(po,[["__scopeId","data-v-bc9dc845"]]),ho={class:"container"},mo=["aria-expanded"],_o={class:"menu-text"},bo=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=R(),{headers:n}=lo(),{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),v=y(()=>d.value&&!o.value),k=y(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:d.value,fixed:v.value}));return(V,_)=>i(t).layout!=="home"&&(!v.value||i(r)>=l.value)?(a(),u("div",{key:0,class:I(k.value)},[p("div",ho,[i(o)?(a(),u("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",_o,N(i(e).sidebarMenuLabel||"Menu"),1)],8,mo)):h("",!0),g(fo,{headers:i(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ko=$(bo,[["__scopeId","data-v-070ab83d"]]);function go(){const s=T(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=Y();return H(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const $o={},yo={class:"VPSwitch",type:"button",role:"switch"},Po={class:"check"},So={key:0,class:"icon"};function Vo(s,e){return a(),u("button",yo,[p("span",Po,[s.$slots.default?(a(),u("span",So,[c(s.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Lo=$($o,[["render",Vo],["__scopeId","data-v-4a1c76db"]]),To=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),o=q("toggle-appearance",()=>{e.value=!e.value}),n=T("");return fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,l)=>(a(),b(Lo,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(o)},{default:f(()=>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=$(To,[["__scopeId","data-v-e40a8bb6"]]),wo={key:0,class:"VPNavBarAppearance"},No=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,o)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",wo,[g(ke)])):h("",!0)}}),Io=$(No,[["__scopeId","data-v-af096f4a"]]),ge=T();let Be=!1,ae=0;function Mo(s){const e=T(!1);if(te){!Be&&Eo(),ae++;const t=H(ge,o=>{var n,r,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(l=s.onBlur)==null||l.call(s))});pe(()=>{t(),ae--,ae||Co()})}return Ye(e)}function Eo(){document.addEventListener("focusin",He),Be=!0,ge.value=document.activeElement}function Co(){document.removeEventListener("focusin",He)}function He(){ge.value=document.activeElement}const Ao={class:"VPMenuLink"},Bo=["innerHTML"],Ho=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),u("div",Ao,[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:f(()=>[p("span",{innerHTML:t.item.text},null,8,Bo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),ne=$(Ho,[["__scopeId","data-v-acbfed09"]]),Oo={class:"VPMenuGroup"},Do={key:0,class:"title"},Fo=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",Oo,[e.text?(a(),u("p",Do,N(e.text),1)):h("",!0),(a(!0),u(M,null,A(e.items,o=>(a(),u(M,null,["link"in o?(a(),b(ne,{key:0,item:o},null,8,["item"])):h("",!0)],64))),256))]))}}),Ro=$(Fo,[["__scopeId","data-v-48c802d0"]]),Uo={class:"VPMenu"},Go={key:0,class:"items"},jo=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),u("div",Uo,[e.items?(a(),u("div",Go,[(a(!0),u(M,null,A(e.items,o=>(a(),u(M,{key:JSON.stringify(o)},["link"in o?(a(),b(ne,{key:0,item:o},null,8,["item"])):"component"in o?(a(),b(O(o.component),G({key:1,ref_for:!0},o.props),null,16)):(a(),b(Ro,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),zo=$(jo,[["__scopeId","data-v-7dd3104a"]]),Ko=["aria-expanded","aria-label"],Wo={key:0,class:"text"},qo=["innerHTML"],Jo={key:1,class:"vpi-more-horizontal icon"},Yo={class:"menu"},Xo=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=T(!1),t=T();Mo({el:t,onBlur:o});function o(){e.value=!1}return(n,r)=>(a(),u("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(),u("span",Wo,[n.icon?(a(),u("span",{key:0,class:I([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,qo)):h("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Jo))],8,Ko),p("div",Yo,[g(zo,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=$(Xo,[["__scopeId","data-v-04f5c5e9"]]),Qo=["href","aria-label","innerHTML"],Zo=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,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 o=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,r)=>(a(),u("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:o.value},null,8,Qo))}}),xo=$(Zo,[["__scopeId","data-v-d26d30cb"]]),es={class:"VPSocialLinks"},ts=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),u("div",es,[(a(!0),u(M,null,A(e.links,({link:o,icon:n,ariaLabel:r})=>(a(),b(xo,{key:o,icon:n,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ye=$(ts,[["__scopeId","data-v-ee7a9424"]]),ns={key:0,class:"group translations"},os={class:"trans-title"},ss={key:1,class:"group"},as={class:"item appearance"},rs={class:"label"},is={class:"appearance-action"},ls={key:2,class:"group"},cs={class:"item social-links"},us=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:o,currentLang:n}=X({correspondingLink:!0}),r=y(()=>o.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:f(()=>[i(o).length&&i(n).label?(a(),u("div",ns,[p("p",os,N(i(n).label),1),(a(!0),u(M,null,A(i(o),v=>(a(),b(ne,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",ss,[p("div",as,[p("p",rs,N(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",is,[g(ke)])])])):h("",!0),i(t).socialLinks?(a(),u("div",ls,[p("div",cs,[g(ye,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),ds=$(us,[["__scopeId","data-v-925effce"]]),vs=["aria-expanded"],ps=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),u("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]=o=>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,vs))}}),fs=$(ps,[["__scopeId","data-v-5dea55bf"]]),hs=["innerHTML"],ms=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(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:f(()=>[p("span",{innerHTML:t.item.text},null,8,hs)]),_:1},8,["class","href","target","rel","no-icon"]))}}),_s=$(ms,[["__scopeId","data-v-956ec74c"]]),Oe=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),o=r=>"component"in r?!1:"link"in r?z(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(o),n=y(()=>o(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"]))}}),bs={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},ks=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,o)=>i(e).nav?(a(),u("nav",bs,[o[0]||(o[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(M,null,A(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),b(_s,{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)}}),gs=$(ks,[["__scopeId","data-v-e6d46098"]]);function $s(s){const{localeIndex:e,theme:t}=L();function o(n){var E,C,w;const r=n.split("."),l=(E=t.value.search)==null?void 0:E.options,d=l&&typeof l=="object",v=d&&((w=(C=l.locales)==null?void 0:C[e.value])==null?void 0:w.translations)||null,k=d&&l.translations||null;let V=v,_=k,P=s;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 oe=_==null?void 0:_[B];oe&&(U=_=oe);const se=V==null?void 0:V[B];se&&(U=V=se),W||(P=U),oe||(_=U),se||(V=U)}return(V==null?void 0:V[S])??(_==null?void 0:_[S])??(P==null?void 0:P[S])??""}return o}const ys=["aria-label"],Ps={class:"DocSearch-Button-Container"},Ss={class:"DocSearch-Button-Placeholder"},Pe=m({__name:"VPNavBarSearchButton",setup(s){const t=$s({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",Ps,[n[0]||(n[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",Ss,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,ys))}}),Vs={class:"VPNavBarSearch"},Ls={id:"local-search"},Ts={key:1,id:"docsearch"},ws=m({__name:"VPNavBarSearch",setup(s){const e=Xe(()=>Qe(()=>import("./VPLocalSearchBox.CFxstaDW.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:o}=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 v(_){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("/",_=>{v(_)||(_.preventDefault(),k.value=!0)});const V="local";return(_,P)=>{var S;return a(),u("div",Vs,[i(V)==="local"?(a(),u(M,{key:0},[k.value?(a(),b(i(e),{key:0,onClose:P[0]||(P[0]=E=>k.value=!1)})):h("",!0),p("div",Ls,[g(Pe,{onClick:P[1]||(P[1]=E=>k.value=!0)})])],64)):i(V)==="algolia"?(a(),u(M,{key:1},[n.value?(a(),b(i(t),{key:0,algolia:((S=i(o).search)==null?void 0:S.options)??i(o).algolia,onVnodeBeforeMount:P[2]||(P[2]=E=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(a(),u("div",Ts,[g(Pe,{onClick:l})]))],64)):h("",!0)])}}}),Ns=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>i(e).socialLinks?(a(),b(ye,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),Is=$(Ns,[["__scopeId","data-v-164c457f"]]),Ms=["href","rel","target"],Es=["innerHTML"],Cs={key:2},As=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:o}=R(),{currentLang:n}=X(),r=y(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),l=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=y(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,k)=>(a(),u("div",{class:I(["VPNavBarTitle",{"has-sidebar":i(o)}])},[p("a",{class:"title",href:r.value??i(_e)(i(n).link),rel:l.value,target:d.value},[c(v.$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(),u("span",{key:1,innerHTML:i(t).siteTitle},null,8,Es)):i(t).siteTitle===void 0?(a(),u("span",Cs,N(i(e).title),1)):h("",!0),c(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Ms)],2))}}),Bs=$(As,[["__scopeId","data-v-0f4f798b"]]),Hs={class:"items"},Os={class:"title"},Ds=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:o}=X({correspondingLink:!0});return(n,r)=>i(t).length&&i(o).label?(a(),b($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Hs,[p("p",Os,N(i(o).label),1),(a(!0),u(M,null,A(i(t),l=>(a(),b(ne,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Fs=$(Ds,[["__scopeId","data-v-c80d9ad0"]]),Rs={class:"wrapper"},Us={class:"container"},Gs={class:"title"},js={class:"content"},zs={class:"content-body"},Ks=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const e=s,{y:t}=Ne(),{hasSidebar:o}=R(),{frontmatter:n}=L(),r=T({});return fe(()=>{r.value={"has-sidebar":o.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,d)=>(a(),u("div",{class:I(["VPNavBar",r.value])},[p("div",Rs,[p("div",Us,[p("div",Gs,[g(Bs,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",js,[p("div",zs,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),g(ws,{class:"search"}),g(gs,{class:"menu"}),g(Fs,{class:"translations"}),g(Io,{class:"appearance"}),g(Is,{class:"social-links"}),g(ds,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),g(fs,{class:"hamburger",active:l.isScreenOpen,onClick:d[0]||(d[0]=v=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),d[1]||(d[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ws=$(Ks,[["__scopeId","data-v-822684d1"]]),qs={key:0,class:"VPNavScreenAppearance"},Js={class:"text"},Ys=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(o,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(a(),u("div",qs,[p("p",Js,N(i(t).darkModeSwitchLabel||"Appearance"),1),g(ke)])):h("",!0)}}),Xs=$(Ys,[["__scopeId","data-v-ffb44008"]]),Qs=["innerHTML"],Zs=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=q("close-screen");return(t,o)=>(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:f(()=>[p("span",{innerHTML:t.item.text},null,8,Qs)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),xs=$(Zs,[["__scopeId","data-v-735512b8"]]),ea=["innerHTML"],ta=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=q("close-screen");return(t,o)=>(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:f(()=>[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"},oa={key:0,class:"title"},sa=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",na,[e.text?(a(),u("p",oa,N(e.text),1)):h("",!0),(a(!0),u(M,null,A(e.items,o=>(a(),b(De,{key:o.text,item:o},null,8,["item"]))),128))]))}}),aa=$(sa,[["__scopeId","data-v-4b8941ac"]]),ra=["aria-controls","aria-expanded"],ia=["innerHTML"],la=["id"],ca={key:0,class:"item"},ua={key:1,class:"item"},da={key:2,class:"group"},va=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=T(!1),o=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,l)=>(a(),u("div",{class:I(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":o.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:o.value,class:"items"},[(a(!0),u(M,null,A(r.items,d=>(a(),u(M,{key:JSON.stringify(d)},["link"in d?(a(),u("div",ca,[g(De,{item:d},null,8,["item"])])):"component"in d?(a(),u("div",ua,[(a(),b(O(d.component),G({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(a(),u("div",da,[g(aa,{text:d.text,items:d.items},null,8,["text","items"])]))],64))),128))],8,la)],2))}}),Fe=$(va,[["__scopeId","data-v-875057a5"]]),pa={key:0,class:"VPNavScreenMenu"},fa=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,o)=>i(e).nav?(a(),u("nav",pa,[(a(!0),u(M,null,A(i(e).nav,n=>(a(),u(M,{key:JSON.stringify(n)},["link"in n?(a(),b(xs,{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(s){const{theme:e}=L();return(t,o)=>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(s){const{localeLinks:e,currentLang:t}=X({correspondingLink:!0}),o=T(!1);function n(){o.value=!o.value}return(r,l)=>i(e).length&&i(t).label?(a(),u("div",{key:0,class:I(["VPNavScreenTranslations",{open:o.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),u(M,null,A(i(e),d=>(a(),u("li",{key:d.link,class:"item"},[g(D,{class:"link",href:d.link},{default:f(()=>[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(s){const e=T(null),t=Ie(te?document.body:null);return(o,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:f(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ka,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),g(fa,{class:"menu"}),g(ba,{class:"translations"}),g(Xs,{class:"appearance"}),g(ha,{class:"social-links"}),c(o.$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(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=go(),{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(),u("header",ya,[g(Ws,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g($a,{open:i(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(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(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:l,hasChildren:d,toggle:v}=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:o.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&&v()}function C(){e.item.link&&v()}return(w,B)=>{const U=K("VPSidebarItem",!0);return a(),b(O(k.value),{class:I(["VPSidebarItem",S.value])},{default:f(()=>[w.item.text?(a(),u("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:f(()=>[(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(),u("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(),u("div",La,[w.depth<5?(a(!0),u(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(s){const e=T(!0);let t=null;return F(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),et(()=>{t!=null&&(clearTimeout(t),t=null)}),(o,n)=>(a(!0),u(M,null,A(o.items,r=>(a(),u("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(s){const{sidebarGroups:e,hasSidebar:t}=R(),o=s,n=T(null),r=Ie(te?document.body:null);H([o,n],()=>{var d;o.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,v)=>i(t)?(a(),u("aside",{key:0,class:I(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=tt(()=>{},["stop"]))},[v[2]||(v[2]=p("div",{class:"curtain"},null,-1)),p("nav",Ma,[v[1]||(v[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(d.$slots,"sidebar-nav-before",{},void 0,!0),(a(),b(Ia,{items:i(e),key:l.value},null,8,["items"])),c(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Ca=$(Ea,[["__scopeId","data-v-18756405"]]),Aa=m({__name:"VPSkipLink",setup(s){const e=Y(),t=T();H(()=>e.path,()=>t.value.focus());function o({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(),u(M,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),Ba=$(Aa,[["__scopeId","data-v-c3508ec8"]]),Ha=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=R(),n=Y();H(()=>n.path,o),$t(e,o);const{frontmatter:r}=L(),l=Me(),d=y(()=>!!l["home-hero-image"]);return me("hero-image-slot-exists",d),(v,k)=>{const V=K("Content");return i(r).layout!==!1?(a(),u("div",{key:0,class:I(["Layout",i(r).pageClass])},[c(v.$slots,"layout-top",{},void 0,!0),g(Ba),g(lt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),g(Sa,null,{"nav-bar-title-before":f(()=>[c(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(ko,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(Ca,{open:i(e)},{"sidebar-nav-before":f(()=>[c(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(no,null,{"page-top":f(()=>[c(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(io),c(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),b(V,{key:1}))}}}),Oa=$(Ha,[["__scopeId","data-v-a9a9e638"]]),Se={Layout:Oa,enhanceApp:({app:s})=>{s.component("Badge",at)}},Da=m({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(s){Y();const e=T([]),t=T("Versions"),o=()=>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 o();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=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const r=o(...n),l=s.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 s=J==null?void 0:J.getItem(Ue);if(s)try{return JSON.parse(s)}catch{}return{}},Ga=s=>{J&&J.setItem(Ue,JSON.stringify(s))},ja=s=>{const e=nt({});H(()=>e.content,(t,o)=>{t&&o&&Ga(t)},{deep:!0}),s.provide(Re,e)},za=(s,e)=>{const t=q(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");F(()=>{t.content||(t.content=Ua())});const o=T(),n=y({get(){var v;const l=e.value,d=s.value;if(l){const k=(v=t.content)==null?void 0:v[l];if(k&&d.includes(k))return k}else{const k=o.value;if(k)return k}return d[0]},set(l){const d=e.value;d?t.content&&(t.content[d]=l):o.value=l}});return{selected:n,select:l=>{n.value=l}}};let Ve=0;const Ka=()=>(Ve++,""+Ve);function Wa(){const s=Me();return y(()=>{var o;const t=(o=s.default)==null?void 0:o.call(s);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=s=>{me(Ge,s)},Ja=()=>{const s=q(Ge);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},Ya={class:"plugin-tabs"},Xa=["id","aria-selected","aria-controls","tabindex","onClick"],Qa=m({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=Wa(),{selected:o,select:n}=za(t,ot(e,"sharedStateKey")),r=T(),{stabilizeScrollPosition:l}=Ra(r),d=l(n),v=T([]),k=_=>{var E;const P=t.value.indexOf(o.value);let S;_.key==="ArrowLeft"?S=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(S=P(a(),u("div",Ya,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:k},[(a(!0),u(M,null,A(i(t),S=>(a(),u("button",{id:`tab-${S}-${i(V)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:S,role:"tab",class:"plugin-tabs--tab","aria-selected":S===i(o),"aria-controls":`panel-${S}-${i(V)}`,tabindex:S===i(o)?0:-1,onClick:()=>i(d)(S)},N(S),9,Xa))),128))],544),c(_.$slots,"default")]))}}),Za=["id","aria-labelledby"],xa=m({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=Ja();return(o,n)=>i(t)===o.label?(a(),u("div",{key:0,id:`panel-${o.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${i(e)}`},[c(o.$slots,"default",{},void 0,!0)],8,Za)):h("",!0)}}),er=$(xa,[["__scopeId","data-v-9b0d03d2"]]),tr=s=>{ja(s),s.component("PluginTabs",Qa),s.component("PluginTabsTab",er)},or={extends:Se,Layout(){return st(Se.Layout,null,{})},enhanceApp({app:s,router:e,siteData:t}){if(tr(s),s.component("VersionPicker",Fa),typeof window<"u"){let o=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,o,{immediate:!0}),document.addEventListener("DOMContentLoaded",o)}}};export{or as R,$s as c,L as u}; diff --git a/previews/PR264/assets/jlsiued.Dr5tWraZ.png b/previews/PR264/assets/jlsiued.Dr5tWraZ.png new file mode 100644 index 0000000000000000000000000000000000000000..4c7506ccaac924306a711764f4eabcc9d19888cf GIT binary patch literal 42928 zcmeEu_dl2Y8}_GVRHPJ2kp^XtY$B;h$ljxrElKt)GBZlb$Y|IhBchNb%1AOITQ(Wl z^Es~j{@$3FA$zM|d+`ILiFifAO+ z+0Vi1kN66opE<7jJ>sU_akc0w^2!O-&!aK^3eo;nK{CFq=U&R5d+A!DCr^qNd|NDl< zLeBWVpLoli-Mr(!AIKiqqy694ha1B`5cl)X>w(`^y8pfoICbpxe_u<#WVy5Lzi*CE z{r`{ne=n3bjm%s9KV2nm4h|0ccar&(H+=sd7!-8G_my_e-O-WmvW>5i98b6n#Ed_X z(#`6hir&6JMY7rKQ`P_d(3XFfHy~U&;k2E|!F~JorR!*DT(`7bp6ab|t=LILbyh~^ z<;$18OovJNqEY{C$HohfmHE~2eJrvUFS7IV-}*aPx3;oi#>;T^>eVe|J4M{)$2;FS zJt)~s>iw|uf01F%&JOSAcg;`ya_TPiD75X)!pqHava7_>((>=nx9nH1UUEo~%zgfg zD(`Ph63(x0k2J=_9N4z)UbKK&%P%utNy(D;?>nlh%xa_fjvqgMdmAOmCM4?JJMm7w zf7ih~HA=v&K33S4jQZf>?=KN)YAKfH=1r2~uCwNLcGIb;srT>iw6n8QQ&TJM+v+W} z?Oeydq26OOFfj1->(}Py=I`IXFE1|}F&1EnnlrSV#(z#@E&BTUKHjGxwX^;g-aSS+ zIXSMbuDJQ@*RSs+>$j@7sGxuiDAND4vM~AX_Q;W1icN_&GF1OtzeO!YMJkq;xw#K( z288%u8N72;cg-*ibV6=8^WPy`Ps++tqUfD=-o1Nw$j;!fu%VkG*pltrx61_WB()3S z!?$uvN*=Ouz-1>kXQZYkvQBC-Ja0^J#YmzN??!+Vuwo1r3K1XH)tzI|oNq2;)M+#%fA>de9&3#G>~lCD`T0 z#>P{Eg4nD02M<&h##59N9`hJ^{;u9FQ~l_qnt9M}Qv1QZcH}gP?d`g1YCmw#v@*-H zBeXO$iJ6&-PM3)t;d)h2(9+&6cI=oh%~cDFk;zFOE-w76fpgQQP4+|eT%4RQVtZ(I#vpZ*j#ST{EKXdRlvwmCau9=xViHb76e*HKr>v;;7m3bREx$3%D z;mOW-Ri=45oGs&RdCGBO_r~{;D5y-0H&Jw8w-H$?s;V-AadB}AlifVr+)B3U|J+Co zUd_#sVnY1<#diJY-#JbUQ&Glbr>363Rh>GOpP1-fZp<59d!@opG2wIxHsrQH8Ode` zQs&30nE?fH@ptq*hL;shO!{}wbKf3q3hYWH-dMNA$ZPG5Y2ATQ=T8B<&zw0kGc$v$ zCy_F@u)1%i@bU9If9X=KFC}g2AfgZ%0(&U;ziYCZ8*LVM98V0L>@Kr4HT}%%#S<2J;$`zH%m!+{&QH_nNZf+~PkDj;gEEW_Jdd%*6uE=RJ{>_^= zj~?v}u6!67iNEbCv}G1*B_rt?Q?hu!?tJfJk5E|6en3r4efsq2pK0X8twvP%@A{S? zl~6OVM}~~*z}`K3o(b-wj zd;GwG16Z08*SS5WPe~-yr-s7<0zbOCPIGgIT2k-l|2;EMgD`q2c;cU1xjj3qVrFK> z?w^#Dw2z4?baUd7;r2IH1qB7ZH1zcJyLRo8mzPi9Nbp*ZKJ6jK@)9TgN3!BrQ<~bj zbCn1Y+C6(HSklweDJdzDpH7{pCfQJ7BWF|7({0KvJrXh-!78m8@uS?qInWBT_OTA6^75|7UM-@kw3M>5rId1hl1M@1b* z)p6%C0omEM78YqVN4I$wP$MkFM8(DZ@7;6w(-BScvG=CFfx*Q1I5uH8l&JiP*H`C% z*_wTe-$zf+=KJ1#sj<3xc;Z(f&R&Ab-~MaYu8lf={`84PCO4MQP_hzq*jGT+h z64Ls;Jx56-7Gk^V8ya}Ixo<2^^{W3JZO$lLUmgpl=NS$mP*P&jrI=G+y1NtDvmV9A zpT70G8gGSL@lrXN{`&Rn;<$s<{xr{1Qx_{0u3f)A@cTCfOJro^-CZ=K9wXwtl@%4a z`1uO@y>Z1X#}JZDO|x@jtyrAj3*BC=&CLThMf$74j9wd`adZ@7ku@?Z z^V(Rq?Jh0xTyw2Zpgt(_p?~@jPSB}SzW?m}&wDh|`NxhOyA;LCA}JYX8G1;39${+H zT`F0kLX@iffa+>FM#k9OTz(n36s0(svuBZcm7Olz7~Hs#m6mo=qv4{iZaYd@L&IfN z)mv@3*OADve{Tv3lFzp^H4%j!dBc}RORLr9SHbuF!lZmYEMvgayLaze{7BwLPOet> zr}Ldrsk@Gr)|3CO<0t%9W@cvEK}~<^L-QPlxHebwa&TlI zeO+EL--7IoZF$}%!{|GoN{NhC#_C9abvS$y+tyVrq3 zD*UKkh^H1L0UMzb?<9NCnerc2KgQ$QIt{Z2a*9pClx! zpulnT=uuJ8r6)$7EWUViSy@?gOUwDu=HNdKBvL8q9nI!|{8EpV)9#Bm`#uG#3$U|a z)Y4kOwa=dar_i~d^{2*)XlQD(`tIGgFJ!*}tC(2KpTzd?Cp<>DVAY5o3Kpc7mX;PA zz7%10l6N+sg>=)GFJBDaJKJFiIq8CF9>&GlT)o;iFmTREAJLMSG4$a*WEz;rK*S<78DZBUY7j>EW-O-_+ zz689nvb_AYy1IdJAKp@0pu~ClV@Jo+_AVt&&3WWrQ&ZF1cjV^aJ#q1VlhHgnk9{{;@9l{t3& z_}c2~=McsVPM0&8!>aJPN(u`0j*d$5@;UkWwcoxeD=54O8uL;-bLP&&hYuU>ZY3SY zsak#M?&0x-Q%6-z?JUJ^T3UO1d%ZGG$%w#o$4ng?8?M2rEhOo&`S}SwWboP9+cE*Z zzMm?C>1}LmMsU7{aYg6PpGUfW`t%^n%eQYu1pj$SN=nXcl(;Q~R`lXiEQjfPg^SAb_4y!s*P!L}^>~!y=B3j`$hMaa8^;;0tY2)8y#r{Ti3`Wn}tR zm;U0%SUy($w>Mb?1njXHA@{H3we8=(-^IlRfLLb7PLlWCt#luhksocpK04Xk+pC_3 zRJOjp4(@Q>u*-45pc>;VF~wSbns83i-W(9T!?(TRV=z>Py4NmxJn#;~(-T z5&6?p`{vduS~U%g5|5RF;NTt2?sKD&rKRhDDJTxQ`i_qCAU|m)dU|@-vT?o~##%Ce z;r*89#x79w-V{N>74cX;g<#c{V9L(Vp9RD~9N(_mOln{NLoug9Q62jITiwu5iQ)<` zgTiCZwj2}k;7a5h^Zht8IP}MSiJj)-+f5Ku^BuQt-9lB5eDp|`*f21M)E6&~;se+Z zQV)SrFbdzOt*$=oD<>}>0-)5IWdMla8-DlhW+|yMKs-4Gg;=~|V){DwkcPp3q&cQ% zM}AP!vR>YHl!CzI?@=LyaJxIJi~=E-DRUW%bvndcglr0b)H5BYC&yd596_AEmjw`A%8 zz}{m#O8Q`in8;@WSqcpe)ymR;7Smbm0B+KlUABJFR=wdMV4#?oSi)%!&`tfKTUDWl zZeIZUY|z)|b{edWjuUg3nV(-D>;bqCX#V|3dDYM5&bM|IpFjK2 zJWomzv}$?fIMI#_ib_!M^5r$W8;VoP{M~E(IPVd4rfOO??fGBo>O$(@Zc3!W5tnWP zW2&sG!g>i^=MAg+J3nt&c;nEMn&ZB57cc(lE=!0h+ah&{Da_2qMv;qY{8ynZ(mJXw zN&<;=YDZXAEY>Z@q$=u?skQZZ!?UwxF7hfW-=p|Uu9}!ovg{-?LDo}v!oAP^W#-e& z%n77|ojZ3PIdTL=HnkqK;Q#|eKwzMq$Wv68<;BHe6fjLqKVRQhdWGCb?=&;3OZGrs zx+dh_Lfb(XWel9v}hK{zrLuyyiwVkO*V~5cZ4H{mc^1iO-&$ zp=bkgHn_4yn$dqNowuC5lhdy4+pqF6bk8N#eErHUB&2!ag1;pWbSMMg5di@;UcS51 zfK{0~d46JsMYob3JlI__jTC;WyD>?@!`(f#ANR$0;DF;~S7$@R6kuJ5QEFo1O&mnT zBdv_HL|4#0jsokpBU3l^vOyOgM@I57>^yt6!ZigP;4B4b^2qlW7dkzG2@$rmGIxD^ z?$NQ4qzwqvk@exj2V{fYGLR~W3>(HgIXpZ(IobUvvdm+7HZU--*S3Y0o<1cbL&3vx z%l8Xh*(cc9kNBFKn_G9heefp$ml|VL8MLqIcid@@<#DJbNcAAAD1xP48>R8_Od12} zyTPE#%ga}vZ@+Ql#^Taq#ivi7C|Hm&dOzOByi z!!pl_o*wCebd({dk;Wtx8YHi_U%wEpbbI%@|D^`DVpDoLH9ftXfXBZF22hkg*VHKV zJUg4Ww7lF^>=0}`eHgHf4l&YHECm|q>+5?im~Q`p14zwlUn1C`Apr42uqvi!X4 zqUN?{8!-!7?rrXPeZ>bC^x>>+2AL-WQbMcaC)*Ki;);b#WqN1Xrr6qf(3MoJg`iAWHr=s?#pcE`P>r#M1 zfCiK-5J7&VD3>{mJ&ua{`Qkzt5>V@>cl#L`t12s1l9VY~hU()OPrHkFo)2PW3WEru zPaw$eO-;9*oKnP(5S7LbUyW+u@&Sbs4rM=VWdA473dEP9rof7{r&2Ztyvxv+2{ zT_Z!6yQ|>tvhMuw_oIgn9b#ik2?z-ITm|l!Am$K6!|yn*&EnhYIOQyXr0==5-1hV5 z>o)7+icK^YR~IKJq?@cEbD=c&(g+I|O06%x=xRe9^7r>QyLRpO;2^j5>%_o?M^BzO z-Mo3?HfFPqb-{>w~Tb{E5&Gkzv-+GLb(|YFj7q^8!YqKM2o}QjaxoOdMq^au?B%0$_ zu3Twij7>^9?q9Lg$6$H37;s_Z!y2TQN}kkD#=QFa`la)GX-a2jXHh&P#tc=Kj%W zh6+U!ECJ-3G!w9Cp!+wu=}Ra{fOLQ_$9${5d;x@3b>qa_VsTWYZLdOK>dv?Lfh;b1 zkh&QxChyvphe!Y|b^A7dpl^sdy~X<*p9zPBZ3)|?6diZdU<@bc3po=$d z{MjYN!NU_~wDyRm5viHT&WsU{9-V^B%)^=vWRrNtXMVEV$k1@Tf=^nqslLybhAwy? zE$vw+5#;wehlM`|3JNs{Yo7RlNo{`QIak}gP4Cl@(mavhVwHhZ0R?-?k}d&R)|nR8 zGAGt4$jj@zbIinn#un(c=`qiR{l;qe(g+H^!S2|LJVoFGP^xT%L-EvGeRl8OJ!EMI z+IyE+?Hgap1KZk6n{CR!NYtqytmkE^FG_J@bCsL)xm)Y&Lurn%veMDfwbWMSv{@rH zc&1T^iWY%+siolbrCf?`e8j#7%d)ZhS6SfbCZ@0_j~{1V(>5Y$ajpy#-TLTw6i@xF%?P8J`?kZUkR?~726%*6c(kfJ!v!U^?z{z^H&i^Jq zA5!s1C9r;zQ}l7jnwy^x{7_Yu61edDR*^%Eg<`x!(G|m;qwG99Qb=M5 za50C`PaAF#;o-wAnX%E)Z9oj%`fo3T13N`+zH;M+(%Rp#j-tOn9Aj~c3JUm#hkaKU z$~J7)^UxZ>)sETJ2w4Ao4Xk%+WAI-!?#OST2_v_*VviLejfN}OFs_vbWI3ecX|F_~ z4u^9(hL#;u@qeqVcoIY!?CvLLohRorUHhT~`QdC^6Z3f+ak;gDs?VPr4^boAkfx=o z0db45)V(BX|FZ-100}sbF`j1JPu^YovS+>K%cnrv2NlaPfQ|FxZGU5#PgYh|LM?m# z;>Ad4;XO&u)u^(jo}O|aDsoPv(x)^>PM&P5t@L1FVVQH>H~#%a6|zK;{tf#ZI~q)% z1&Du8J}fC|fMtftWmM*gWp-GQx7ZEQ5`svv`_iqF^>PpOmP?2DUA2V=H@Mkqd9uXZ zC0&d@QQ0wh++I(8380 zj%)}$OEUv_-@3qqiCq7X1weCZ=F<`^EN74^kd8p+_kB`xmWa>Eu~S#yTV^)myUDA* z;d-El19L*_WN@-AmB(CGfaOIwIRZgtWb8Qdz9pz;ASOEc-1+l+WI!VqQ1x48EfLk1 zwXR%w_V}?TAmY)LJz3g0S5e1&!%wOu1Cc<5A17y;tz!0q3?3=QB<}d?UtKY_uGD$D z4~ZyV!eyp115$@DXiy}F7O+D5R5sK7<4iKyvbDD3P3;uX;&5JUkE_$$X&fMnD7+T&u^C|MlKQ zKxqF~nyq|JPEN%pB=66)@si>qB2neWVDMMaOW5p62!XhsB7N>=ee;YGi%_P#a@F$U zM*~T(=3MoQ5)5@!6bKRxOjNcuAM1U@Iuc>s-`{_h0=hExVWVr*1o>BLH}q?0j$zDF z%S%gNzJ3)t_}a8C29<1&45S9!+)BmYXQ#OAQ7V74^8W&UBG;_{$N z|CP_PTr5pFZ{IotTT}>pYo0uDA{9}GZkv?5KQwQgBh_GXtkq<1@Aq5Zk=9qQb#!#3 z&S<0C04M~-rS3h8ppT!JDSz~8_H9Kz=-U}u*{JKn0%W^qfubzMyby9Fiqi+A>+Dzl z^8)0c#6njY8ymZD;ld7nv1iMJV&%yFSnXJvJqHh>L-V~l6L3fAsYvhO;NvGxswNK# zS~dY^LY&o=xaBQGG<_aus;Kmik3UUFVBWj;SOd=;2%o{h!7oC0aSF$qt{>X5FXZtu zTN1r$6_yr9(Y2 zxZc~_`|)zLwy=L?)gF`4g|XD`Y_)~ZTdI9mw;k6AOxxzPC->HNj!|j>Vc|0L&c-;j zkfvpm)N$}%rl$Vwf&OpJ;z$q{mi0aEqM!U=*+dG|FO! z?y-;}_odw6Uhx+^5%mvYqK!^P3aL^XuSp;lysLs_( zHAZFGvpykbl-KzpA6U#$Gf6~6MpkYptZaJcG?~1frOnxbWJ0vNy@jlP71*fHTh0!D zhp@%9DDb_$KCA0e)(D+PzdP%;8*kQ4mM@d<2$4U!Qp=p}ar2&hW6sIb92Xo_m-Qbb zZCVd}jpW)FI6U0>PWX+`U-TFi%YtI=&sXlOSGIu|53w1zv8ikG9B=d`Wo2d72vOq? z-YDaKTL@X*!2vCa+HZz)6TcSF;oQZ1T6TWBG!2CFMM`(Ouz0%J-U{;dYqd;=ew}=? zQW_TGv*I4_6(1MZ`S3v?yXDXbvyw5|WM3h%h&kHZGm70dSJ;Mz(Ug4~l;vWFF$xwa zu@HhR+V(4h;(>D}g;wg+nsA%0JU*~6{4=Xp?lFUXu0=ws2kq>NL!T2gkz=f^1;!H3 zrIAirS{~EnS~jNx+A1NV}jg+1`T8^#h6oRbJv$ivRk3vOOMi>nrK*m7jgYigB?pH& zwC_vb*2i2FmGoL)C1-84F9LoWQl&@VB;3^sJwyF3b@}_K!G?i$RqsuR!@usb1X9@A+5+$c0pddrFft}Uv3mRV z?SpB6psD$JR^R)K!b;kF+rwVGcu`Ow#DdPiK(MU`B#E?N?x+jzUH-yj;N1V2D*b|{ zW()cTf`ZMJmD}t`H*MXHb9dOGCWgOkBjSN}+(5`Gm5<&XDn=m@$n~+YWso|%PGYN3 zDXIPcZeccc`qSYu*(E7M5nL$-YWX*~3AKCmC1M#um1+G`7kteA{n55YQ<9@fJp4?F zEuWU-x99E=r*rR`6%`Q?0Smpp<%I!CCV~ha21*uOBB4@2#w5cXnS8zvNs1Yi^5eZ7 z5JJ!|fHaX&Qd08l*%hdu(4zDPVlD!KAS7kv+}+*#YuM4lKnhrypFj>$D3Qq1=7hZf zna<7CwczW+4bt;L@`dDW-YqZHQoiL4*aw%oT~z6Oo`SM)BRXpMb3eglC|GcBXzEYT z&&Nx7o%WIu@hN8jYmt@x1Qw6(bFAktTuhcxS-cq3mbGw}vq)V)V+nF#^f+sgjZT z*!tONqJ0i^KGPw^!ph2umNo(^4o>0P`pP5~c~eu8Py$G_ZgaBnwkYSdq1kYINux>bZ#IX zHkhy1_yORs?s#igsOV^cv7Gh0&%pPwwzd{zyS4R+mwacXj}IA@B{;?Yu76?2_EQC5V)2t&j_Jq(>=!+=yT|b6c9a#u1w?yz*^!3H&SRudb;Vi__~CLj~_nl z`}0TX5H`{f(rK0yA<$TJG0KgUVu=|h%CwLU~n@}=Q-nYo68W;q%8smVRT>dOx6GRc$0`Oh6IyBC%i z3*Zis$DvHLYrGB#zDfNR3{8H1eySQd5Q&hno<4nwmJegu`#*i<=niJ<3W74lgGY~mk*|%p?L$SP zIq495YtTL2{Mv7NkJYB_!l};|S5`pP&8GVZJ5N^Tn*Mx#YN|QvG0r5!fQSbVMnDqp zZrhRCNNyurp-2X{fj&p~dlw%?vQ7UKlBw)ssn{Y&(pywQe|=OP-D^ISaozsgy%Hh) zJ};@X^_R;yYnLFjfjHrs=$${^juN!eR8@TlfvRi>y`~T&K*_$|-ZO`6f4<%nOb$f1 z6$)jD*Xpu|ozB35&1KpRvB}`V<+gJdEaWw;`mbLbzkk;$ykP*_ zRpdJ~IwWrohv(!>g9cep=`f&JL6&k|_%ksupkZL3=+OT2=P@?6mBq#Um_tD%-A!a+ z3!Q3~n-bp?qbu|?$7D&Wi0EPLf1YKT`lBc~=;^Cd9A$6WPnPiVvv3rq=Ki_I%F2qK zmQI1S4nDH^MPg!4Z!ZBITf{b2p$|f!;v~A>_YVk;;#;6|Tao*9reO?xciTUhSBJA; zIX=yDAPccHw6p-@CWnS)3B?(AybGki6F?A3L&)UXj+n(nQRQvglojzR( zH4@-R((q6%_ulv5Zm^ zjfJs&YaX=PR~4629fii5pLaT?nV_g*Lt1iZjgVe}tSO20X!`M^e<4B2%M%tG`1-)Q z;9^=`M=q3)V7=$>4~dp2;ZOiShUp}t;A&;+Y82A>CMOS~LCmHYBWt2gY6xf%71&Jj zjDo0-a@yG%b3PzA*tR|YBvL7Q#Dt;cEnrYU00p{BmLCB1$*B(f9v#(n($vcMj&=_u zDx#%cQv=yZOjI=Fkoe>DCM6e~4!9>$`$HIokGR1WaQIZ&#`?RcCTL85nnz?qwSYh!)w z<4%nRbQ7-uB3`*t{>>1j2L2-nxA~oI93&OO<=fPX5{m}ShY!+lvSo9T;A0^8JQM+} z^2S8?)oa%tMMa^D1|NbvMOtR&+{_Hl1Ylbz?{j)FDCxLq9c^tI8RW8;NgJIRv2~{6 zP@6O~cFRBlUSH|nXxx7sDVFg?QqsWqc&+W9(nrH~GrMCeY<@pPz7#KvU8>YjS37?` zSy00pnyzoS-_lzwfJ{JKoIwTQ5rSk-$pRgGkGuEB@COh0Og`^Kqio#`U34NdU%VKU zmnVQ8urMsA2OraHmNtRC3K1C*5%G6s1{oHXoOcdmrpCs+(63xwGW?Jep2o!i3#PI9 zlt+QMfas#eZ)Fyt0`(X2Ty+MpO)rAUi(vGG@UsM60ZR9e1BY-gu^{!FhA_kL@l6)>dC_LOgd&7=1mryRPjheU23_9>TB zR-XL+g1oE@ns!@T8`^Bxr`r`7j_^BLHnSr+B9MA3m&;P8K2}r^&7X(}H3Ngp=g*<3 z(Vsng7RCb{JctN&u{c_*bFD_$$U&YR@WUmbZ;QZ%Y<{9gY7;4cC+e!SHt{QIfvY)L4DKzkimD)f^^1V967LYokB}x^FD^b?!!*%s+?A73AYP$m*xPtF~ z_OPm7@0_v`oU~)9P^Zw#)Kyf>yutRQMiK@=s5oQw9|d@MK~02CowDu?*d#r5831)_ z77`yaF#z&d`x}mC`?X~U8=DCv;hQ1{T}^0xkw{eAH~_H#xBtl((no;=(SwB5%Of+_ z%mAsB=wKn`{^=-sk)D2$;v^4GA$k~dbLg3GHnXyN2ib}>A{rJ0i^gMz4#lAupq-D9 z17AW$Y>s<@PD%|989)h81e%G8QFgbAI`#{gLIr(4@{WY0x$BVFEVBG+Jn9563r;-R z*^mvPFt|_kY|7OlNu4Ad<-I4lxd|eGqf^x3wd2xG=F=Umt%ZWk{?M_Bu(h(Zq+mg; zY8Tx){!iGESbSmP!Z|p~%gc-W(shz9I0?ZqJ}v>rBepVK0Mx9paRv-X{Rbe!j~{BO zyLX%i1p$d09duoU72tg6LELsiY^)o2*r?VyBO@a=HnuD0-&(ijLZ)n)_&)mG^SPbv znrB?GLwLkq`Wl|BOP9DPLTlbL#iPqRs<+PM?C#ed-#qVB=R{%O#r z_=gW?kipZ_*}+($?|_dLBBpzLfSPsn^rT#7d@bu^1Z%KP`^GiU3*54KGx*7FIyy}q zouxNda3Ttu2ktw z-qa`hr~$pTw07;-A?`Bs5`8Zg->QC`VB)f2(R?nRKl#}-k9f=L*?zm2xqrvGVr8Un zLUuxm#bQbenwXei;}_rLcw&sg;=zLltAY>ncTiCDFpIa%+FqOwqWO4@S0au|`|8H} zjT&QKZ_|0g$pKgA-RnXD4#z+ z2>Nrv1CXI1hL>TdlhXnMTUBpAq`d?C_XjF<4Uyv@+(!ol&J)6>MD&H!An}}bo-)?f z{t49KyI&O=KiWNIBO>QtjI^dZX`C9~m{dK(6h_a$@bhE&CT|L90J`B;&_6gOwvmxJ zjDWwNN2QjuYCcBfRIGVg1*Bk zKE5J{F}lt(YXMD7>PR+VuIX)vxMDM$8kmd;(wzxP7A0SdYBkk; z+dn-n($>oQdTvh6`{}KK)}~fgD`>Yg9BOj1|EFgUbE+hgkdjjU{rv)?@hE%GSYvj} z2-$XV=BGlT{vh?|`}B@j8KJBTRo~upjdg7&=~5Ae)wlZVS6Du}knIs3>dNl!@8Nd? z4Fl2}37N1Gy3w&X-X<`!5lp_s<4&9)_WcYD9VKo=AH_EuZXj}UazgX>S*DJTjs{8h z4Tk`$lV?icxGrx(#3t}}()X4YI$dM*omWkg93OVO6{X)jwIRa8lYRZ_W|GQXqkNL| zZw3a2PgPYAbifIB%lx#Shv9&HC&Pz?VQw*;Vi3196a0p&z!dfKpZ9~D99BguW9)EtS$nZlZBlBl z=2RG({!RRRo4ijD12?jS=@ipZO7Rl%8Zn1`7nhcxFMwn;GBQ+FRQTvhpa~UR>4Pn> z33>j!56yM-bY%pQTydd0wr?K}8I4U1R6_S8WEX1r5#PP^^xb7%-QC?r6nD^94kaunD2a>dGPb(LR#scm%ASxVK5DazYD_43^kl@gPt46`Z z7)t=nR@?y{mXLq1BK+mc-!Oy{m`o5*6ygb7o+BaYcEs#YIL?M)@$Iw+SDJKyMP;f1 z>F)7TD&X=I6oSPDZ@OqbZ;bJ@v2#(Z?sr-p1iRD|5h2lRA`p?eJj63}l-_WMWrM;a zX%Ry%K+vi2z-DO8ch}SeSM*XyRTl@7gAK!Ma(I=2NMd`DN^EU0Q{$v&p99i#!`L`H zDoV~t-)L?uy9{>l-7;(TQW1#W4iC$x|T>O zsvEcv94T=Lh0rU)v$H3m9Qp2tV=Mz1hecLXQwXk8B(;z3Vz}ghL||x$rs@Ra0AxWr z`IsGk+!9TQ>mV<&u?iG0gd7ksy&o7T4`Eb?6IzTWdUaU(HtT}WP$g^YS7~V@0CDhQ ztzz8b%vRcc`_OK10I2gzsr7f191_xfIv1itzrN7;biKG@ZNtbKNou`&W4&--%QjLm zrm;vzjvYQs_{x1@d5=VHx}4X-7!(%fbnBKYyw=Uva<#tv&hY!FsbzuJR43C zG3eY4pdF4V-)-&;T^evfQAvr_H!3>%o}b@LMhJ9n68L59*RP{sz`r-N=(BX+1pP@Y zyKc%T!Y3yVC4l<$ba=1!?Ab$An2f@h zTTsC2i~EEWbZY1fniqgDW%fhVW&Rfp)|Q46Mn^}9)bI>Lc%81=dv#9Q3GUO8w=*@g z(@?sCK02In^xXQd3kz+PoJohj5*Pm<{K=D)v@}u7V8AX2Q`OwNthv8`_0Sjg^gP`R zZ(2!8N(u;K@V5}x#VL5dSl&1{R8>{AwG~~Tgg2a&c^01t#Kjifp&WCiY(SG^Yo~AqywuDI$pLNZ@+(vB?c$K;eNW)Bs$QJ zOrnrEa_SYl!dw)_w(s(He*H1ZO}5$OCIrf0wrxEQV=)WG^u$0Li1ig2Af zx?l$*>C!^40DZtffNCA6;eGfSG1=OcT6zM65UKcV$gvH;p0OY?C9(SAJIKlP1uOk+K86pA#uM(EnIB_1%3f-G9K;M z-j;s;{;<%RV!n}4<1D%?U~CX!Lw4n1JhHj@xUaLb^QpB#Yy^-2EJgSi>S5q$d3pAh zmZL<2s=F$>+*m|hybKBhF}B8k{UTD+SbSu7I4?i{%+!>eq9W`k&Lw%k3s)#vNDZ$b zYyn`vzYl*mhyoowy={Fbpbr4XTaOh-%k;f0*FJb}g4DVWTE$p|XdWfn_kTK2465tu zxVX8|I|j~a{_z8K=0|I5SYRL@KmYSTF2AcEfYzL1t7h(>n23A&RKlY1rD;n%?wV8% zoSs&w-T<)xjfkdf1C%^eHGoW3#qS>F7_kH7_5xc2U=cjc&&wO$es2nvzU~eoHt77I z;SQ~gs%l9@Y)x{}l@s1AB*4*8%YT{;&8DTNHh)n52ka9rBDj+4uJIGr=aiJzBMX=0 z~i(TdADFux&FoIrK{-v@563#af z9Jo$6Wsj|7&3~H7J-He-k#QswCi!MLT3sOmV_fr?bdwPs_>zHQ;^ zT8xP`NDd80h$f$T|Hw#@G_!VFD9_gfMX(osLs~c49t~7!(6(wM>ago?2Ka zEW})aub&?bqFu0iVa*X^tD8WMp$x$+JJC^;Cw-U9yMX9BCsq;D?>iYTgZV=-^ROQp z99)?liO9$p1J`6+zo2~oi?)zmPf*~NftO{Mx1U;28%U@!;qG#&m>fa!y>%-W(QSM* z%co|*5riT!(HJd8=<2lX_5=qwiS-zmnDBsI1~z05`U)jFHR> zU9YFyVQn>pD1yv^Nr^~wBE!Q!NF8Tm6Nc#rVv{3!T)Yo9OUDwbazjN&hlGU0d+2s( zX416RSAhZJ6Wo?&j+b4yTPaaee|7e??fV-{#gFsnr_OrXLJx%%u5=0(s}`qEUOH3YKzsR9wwLYl5(H3Z{8PFTKf;rFv2Wpzx!y5hDVy<|T{$dSf-z*Y_|w z8c9Z8Bb%H=bAlkTKhfCH)Yd+6{P;kB|IyVHLU8tyuzzLxLqO(MV_(F1Pwr~nh0~ig z03hJvrND^X-g;WZPfzT>gUt4~Zb1b?+aH7D-IFC-e9CV+IZ2_399((C7a9P{*0j?! z?QYnVQLK@$Vz8R9O{Efa%d#ahCB+O9(?|%O$Use8P%83O>ca_OCs^g^JxN%H)qcL> z&a$!g;$SN1`g)wn=kNLYLKP+RL3^C#DI1`tbUzL_%qb8YxmZ~p*H>L2`ZAX`1Ht`jHI}9DsnJk3$N+nihgc*T!py z5%1MekTp^3C|DSUtj#@R0-vX(I6=z;2sXWT?RDEYpbL^3bVA{wcz_&iJSf*3YROpoO>si9i;` zI0~2rLiGC{`A(|znheXbg_*{$2i9}mzjr@+RPQ1xBW{M0g&-my`>~pdcDTqyN5-cD zW=aCIm*&hZEYQxylp#>?UuTJ3yTUN`i5^Eldib0Ph;SwX&f5CYz-u@>ba94otw_hw z(O-IRre1-S6)(&=&2guwYC&S%TW_@s!9_f9=MMuZQ4up9E)eEn&oO@$g^6#JT9nQ8 zu#%Pg!K3ZVr1!}UNj~03R9_tqQsq1xboa!Op95%EG<_3XrbbZWHdd^8Pll!i&D%pzgC`>eABU)a`qQ=%T|;< zNG&NPq<1!?b!y~G*mg3qjl8|xNVZ~PgvzI%bugIn27(|$`SkbJRuRNC#KHJ6 z0X-cuQUHW;oW(Ewf_-|jTO#4@M_PFIAxwH!BcQa^jAGpPCGjs&1n?f`FSSMTh~_R zL!8yO@NIkTM|~&=PxT;qUo`;bSzld}{XID7h$ol0T+0qf#k3hTvLT#tfHXN-R2rN! zJa31ekM9Z@BplfOJ@9|*e|8DoGpLy0*A&#$Lc+pkJWxUs0x&=Lb9~=gHd70R;Q;40 zAlJW_T1zPtR+3 zTYvu4Hod3y1EX3-rS8$My$Ht)<=dhnv|Z71J1HgxeP7R$M^#G;%959y9L0|kyM8|` z4-nY#Jzqey@qm-cM{m;Y*%Z;j*4BD$TFbFY!8nVm2ap+glSs&^jqIUh07Gw4NHq`zC*S|i3 z5PWgt>KF8K@kAoLya1N)S>pb#fOD{r>`}qif|GPFiQ;@6rj>cd3*`{bjk>?ZTzUnZ z2F2=}bhHnOid@jELY4nHHG&F*UqJc+ELt3X5eAC^;SqqRifHaL3Q2gaPZrPMiqW|~ zB_i^+z9fi5y0{rA$K1eI<{97yG??fc!WCJl`Ao?c(< zPfR@gGK(a=L}aPVdc4W%>gvxM3!#4R9#f5&&V6p2p`X0|ZAFN?F!AX~dPWA?OvuGL zu9tLl+5iM!{7b8$0=DnM_}c8$l<`9yXl1Zz+lJT!<$&yKqo3&1?a}%n3_cnX*CqIk zva_>iC$ISxA1F6*t3S|Hmsq#4vMp=o&D7M=ecLeB(_c8Q6T!Oy{spV|FK}d3;Gbi- zL6D9(VcYoRWK#k6?IiDH!jPf+0=+xT+J;S7rcSf&8j+|dwBiw`Wm-sRQq_1feE#B} z&|&hF8>i_M*3|aX(G?(&U76xBOwLHW+%S;?HMe~Wdb%)h30XFsfIhVR?b;om_~5R-<2LxUUf^!-MjIy_!o%%WGUczJ(wh5|1DOF0J8Swh4$@^6 z2$j-SFiekmdz0qxTRtugb@eZ>+36r?NT*>s@JL;q(rV}8RK+ehK&r?}lTg(lFka#x z1KNJGQ34ksm`PVx7i_(73-;Wydrhp~suZFS&w07@tE+wZx2u=Op}FN0igSHwWA&du zNu}8lPx3)>TKeX-{^Hs6<3376AO#VDNzm(ke0;pt=32=@hyE@ZdCWBrftug2NQVC# ztBOtuN(wy&gqV!~dE5eEvm{X9!8L-9$=*h<5M$E(Hr)R9j`q?C^~qGxi_cR(Uhn$e zm+K|O1ZD(s)+A>jf9xUp%ti636r{svi8aWeV`3`B!+M~UFZ<77Q-Sj*kcWPBpV$+) zhn6<_x(-sK%$2%xhO*aeZNFLbLNis@@~X*xg%55}&BW6YFra^}-P1#yY4Kx9uf4w) zorA#fCl)I!D{!pw+1!zSjrK5j%;QIoWA(8t3ruE2|iX9VO@F_EMTATxQlC~?wZ zD)!uAnx@k0CME*cs>2aB&aSRs`Apwm4so8+C-&HjY^)Zc zr;1<2Lu<0p(Z!Q+GSbrE$7w;kEdaUc6DK9ykkCqwp1&X7UA2j1z8#n}@y!b4J1FJS zvUuhKDpe4*KVk+ck&cmZ1)-ALt&=ppv?j>a2AngQeM8K*m@Ulft@|0tQ>ae@ZRmfC&bhdM%h61 zp|U{@Dy;uFg)2&Id}(!k<}KCQm(lpc2?6h2^(<4@R)!2QK!{2bXbzR5v5n&hp6t_# z3KuwxBS(mFu0Khn8KVD|ZwXHQQV?@c_yW$z&+MUZqTbQp^N^6gt05{OxX$Kd!l zXUT7NVPVX-y@0?+APGA=olFt-%+flMyB~Yw=fJUXGGex8M$Y2m=>BFi_+R4Zq=o|S31dcur3i3<-f`Rq@ zn#4Iywq7A;ge}+_T>$J}T}{n9FkmD&^xc+Ly}ZJ!zkLHI8ipZhA7Om&O83nu-6I+IZ(HO4pe!1}bjX(A{v6{|9nhR+ z0mNgxJA0%%_$?145v|mH<{ZvB~{(8K58r zC;>13AcY0X69Jgd03w0MWr+Rqur+^TD|Nf|a({`%ds&&-unvPlsb}j|NZiDLNkuPa z@=)AqRWNf*SnpuH)Hz2@I;{84MqEcj8B?4`#8CWUdf$5})Ezh%(=~YESyRdARL^?@ z`cNM@RgI1!Ue(p9OGgP|q5asNFEBjew0 z*0~GJ9(#B1wi|2V%F$j;F1$U~Vgo&<@pvJ2k$7TK!$mx(gTIUq55T~43vx1s^(3BM z#y~>|?0pC_4C*zldtqu7Pfz(Y&Uf&X`Q@=CBP2^{(SgCi;&<-^1k<(SevP@!<&0lV zvwfAKp{^MjZQwqz{#V?qB%H~_*!bp1<8jd9Bd*vR$ops#ve8f=1p@Tr&n0(aP8?l$ z2oSv7^m7k3NvHh-nwp?=z*QM&4*w+XUhPDZ&LY07q$e!K1(HCPWOT|&6%^kRg=cM;V2~hC z_W84CxG`cz;@pLovY0f-F>*tZ#Mb@(eGQrR9PuO-(#Bh$S>bMXS|%n#VxEHgNsSFA z*}&xi^42khaKH%zm!KP7SbMNvj9qwn{h#XIJgVltegFQ*oUzD|c?*dok|8Rtjm$-p zqRcW+A&D}?E<(m+s*utw8Ji3dN>Yhjh$NLFDWT!_dguE7p5L?9v(~fL^WW3@uJ3){ z*Trt{&wjtp;W&=-IO`bnD|1>C+O&=2XI`IdKQnq*O_8i{KpTUi+uTu%MoV6%Ha4S} zhvtB`Go#A~?@dij1(O#LG|!CwrIorK{NQxw#{zb&`mhhfrow$3Gm4d8h|he7I!SJu z?^!wWYRYakyZ8^kTfoZYjHU&~aVHoVuIwn_*n7>=(t5GkF1n8orJz&5T4OJC0-W6K+SH&r{V}I8*52gER zmre%>GiZ~?O#D)~4xDYaFwaQd{MdcCWZVu15h-j6Octb)k3JWU=j!>gX4kOgbF*$n z9C~FwV!?gIs2+@bT>n~!!F#*DTDWrM=y{3K-}nD*(A%p@ z#gM45-E+w5f{^Jt9bN~AOR6BnX9^BTgW$5$Oscdota4M3d6zgiyc`(SP>Ss>YAUt) zKimBN^CuyuySQ3z>&cEP89`A>`_c+fvFveo=i>G=F!+Pq@|51P!zADhR=;EKp44q#yx;zNC4j4rR_40*%G1>E0uZD8Q zNNlO6JfNzoin|1F5w#h!g`q=+D3a6D*Ksa5v#D)IO2)I+YN&byETnvE4MwT2uP?vw ze*_5ecAq)$T`bk=g&kDCUcKJG=`Q9#uug^0nSosI$@2!reR9ufNeU#2TuS#o1?L1^=XV<-3w;JM+zv&2vXFU-@ ze)4K98QY2DWC@I)OEVH8P3$DU0kX%_kbZ&=^IKN`UK{)oGZ%h~gQAAPURqiESb>WnOou}-`fS!b8To{hEOk`+i%Bxqi{l(O-q-Q>UygP-oT=u^F7Xq3u z4R%tq$H&J59-w9CTmDi7%)ylRVFit?$ml4mKRM&Nh~fk(9i;lX4ME$5}49y!a__V$e%FYn#U zBi@Lyf&&MHITK+<0p#1CJNV$d(6k;ttVqTmWA=ikl7s5$am^&{)4O*4GkLPI3Ux`7 zMve5=BGi3FoRRhJO(gI>cP`B?J3G4va>PsLw&z@$(c|WBVSD&(2}hTF*E@jGc);^X z?{au>1k@GP+m_Oc<>s#Cu#thfk67#W#soNk7=m){8SjWnYPfB+Bz-ve@+z;5#nNF7j+fWLB??m>@f#B>&oSzAchel9=Jhr zxcpChK0K)&*X!Gs|;_&T*h(Z zo)`;s#Tay!(R{4Gh!PQF)`PA>?0j$0NiyCe0?F}|jEr*H3ON%(;qVCqMhOv#+h*F^ zhoKF=W=Fi^Ywu!cCiBM8VIu>EE9dXVIFkR{#QRy_oLt;GawlM5Xmz#Ar`veaL5nrY3Sgr@$}ug>$Cbu|GwrpqH~7O4`#fK+Wg`LPXA3 zuuB}oLmqpw6A??j2VCchL*h7%?tU)q`n79kv5+K5($svU{BoP~KV`t7K1i%NdMfFE z4e7!^lex*=mv7y&;SOu4;yDO+;k-S-0Fn)DHc_)U_BHVx5P{8>gu z?*LjDEZs+AP@|}FsYMrPrq)6-Z@ru^WS^>0a6FuCvySg8Y1t zTa|QLqUE9nAT>i0Q6uxb?QuMJk&y&CijpoLrG*iRGNbb6Ppg%K#WT8cw{K+8>>XT6 z3vUyq(SVSHhIJ_2luRWw87b#@rtC?x%g&~2s?m@2p z9VE9a?@csR$3Nu$He}!kg=$+BF>FJE@7j7|x)_|2l8x=`1bnVS6F}*q+mSY>0liKm3=aO93GfAkQ>4jRgF~wI?VfB-@D(_XmOPA5bIO2nrPapZx$Jl{DToFpfbz z-Od}H@<;7h;hrk_B?WD$^E2-0#DlGew#Jq8M|3926wW&JyN5^f6HnBdHA2NgkK8K& z$ve=9WGb9x-8}i~D2ezNH=W8B5R{?ORXVGy56OS+q1m&iv3~;*u98)^HuC2eLjIsK zP;Rsn@O6jrH?WS%+imms)ciJd+DpAIX)|t2kG;NiXUVvdh%FuKO>V`hc!AP`^eTJ1=_fcvYIC-ZGfid_ZW_O`YHNl9a^RrPB~a^yK+NGJWmWL z!d{6l&HNs(Kn>rH;`oI(Vot1;&~7GjF0rKW?FCiG*BiW{vE?c_X@0;0pLfJ5vyoDR zBPoxm^yo!WQo!1eF1!JnxkFYe`6+=*j~PAsW%=d{!DTn)=GvioHyoHSpk^W2OfM~~ z|58&0NHgc=I5~nrC?`u1`8{`Vb~JAX1jul~Kuufexkr7?-FXIewJ+d6)Qgv?nr&aV zxcXjf(2Civb5fkNkEOtc7a$nJD?zR8aNexjKrE~c4Gc~x$l+e&trtX9q2)#tp7re6 z%gFivl-#7~=^K#qP(?`!>KYzEB5>NraWPpM(WLUK$xFj^D~xTMI|8-0V`6 zl=s5w%v_D*DQ}!=tB$!=cKQCR8cY_)q<>1I>JL#4IV~479KRy}~2uR9w-L#Z^xp?kY~RQ&Bni zrN+{CU5(#}JFxAfsScd(>J=egWd}=J#o@40-pm)OY0SqUt6!As780*bcp<^V-YP zb3ybxev70f@7Z>+mwHwNdO?Ll)@2KH#0zu`U29$FkmNt^H0=RoCBf%}lwoT4FH4#csNFvn6bvo7w#Vk5-+CXC3;drRU)3tcXVdoWwbV3=d*Ip$ z=1rY&p`A6#gp^Nr*5y5z)TVWtHYZFpjvqfRV4A(nM5!;QoOgeXI;j)~-sEmu320yIN<3Y!{z$blunK@Ds&CG?S z`{XjwiUgILp$w3lV*zxD+V7)KvzglA$+yxr!E3_8OI-?U4cy;&3RuQZ>;3}WXp2L& zu1ZWL2$7S5-6XXl#*Erv=l^4d+jG1}6hY7%ryqnaZz`Fp)_KfVSHPXlUF|Ozdf3@ETPf2>}6jK}W}oIn(Vl^TMEa^gpWX;V_L(Y6JP_GM@VE+l1%u zvIc1wwwt2SDk5*tagz_FHMh6NS7saXL8LwpE!Uo)=32jb^Nh)pf9LLM^B3C}Gq4o4 zy4Nuxr*bU9CKi)>_5H7V?FJ7$5& z*UE|+^UoywS^2NkC7)}E(Wg&8KxUZ}P=9~Ckzav8qU<$9z&3pNaH4-~>}dr;#I~xc zLlz~sHB30rrx`u_Z#Xep9Gd@q!^fO_m`4(*Vo(IL!4r9Wxc z&v!SU&#GGU?#~?U_FJ__*7htumy!*F0(Ly$p{9sZzMse{+zBxq`sDFjYkmK}obAcK zw06mDA|&yL30^?fw6rw*)Y#h+6dJlRJN!&^bU7RWpm4vm8Kh{jP=bIpb*kgKb@QL@ z?io|$D@8(5ZB{^Wt{M&DFBm2~X$4+_PK zq#1_5oy$6G@YeBiT1c9#gZuU!S!xOq(sTfi<`oLAmR&~-2Dyt1@PE2>jmgrw2KuYt zizO?eh@co=nd=1CiH_3Gy1#g|+Wap- zK;2bySH&1*dpQ;@npt<$zILizR9=(UM6zhmDGpuIf^}n}N1S%8E&Wq?>0F0_*3Ujd z_O+LW@hOLinZ;3~oRO`Nnko){$qdc_Ri|A0i_~4*SdueLpRX=q`>2m$B#+-Sj1T^- zseRM16QxDhuB=}`Q7MLZ3BemcROA=PoN)BrEt3~T0A}j0%F*lWiqrn5ood#S-vT&D z2JSeau-Y&8(WZkdk{Y4MXh!Kll-WrI5gBI4w~DYyca^Ld4MQ~1OVPa8-=_Z`Ae}8>vzzUJPc&Rg?Ve54nJo>cLQ^^ z^=8;fKpG}+IqAZ7UD6xJx0;br*WY2|w-)DAwi)QVls-Qf{>8B7PzjT%y3Ea$@Ew%% zEu#1nkes=xX)dPBK!D!fJ0hmSFbLI=IXgO(GS+U~$kMGlR=T{hsWuosDSxW1S6W5U zn|QN~ZF5GMYzF?jc$)(uzaMTfe8>=AET)*ego}7LW`QJ)7pRVTn^TFXRxMX*@G{cZ zp2LTq(7yflh4GYGXWj)Bc1v}V7f|g6!+?)D9M7(lDCG6 z0ZsZJwK$hwhgWqe9CmBaF^~A;j$+#YHPw>aQ+1zFXGK{7Pbogr^L=g0ijBhp&oJLF zmra^Fbx{sIhG#1wDah@H2}V@O;qTcM`$K1?*PT0j>J($^FHw;OhD1cnkgwdKEu*3A z<-bHz3K}8qP!j2XXo4mXLd=?XH+BjolJq!{EgGu|I#?>YY`OBHyn4vBH{o*)WMT^q zdgcx8Ba1&J)Ya%jPchR_CEa<|UiWS*8IKoNL2Hk;n|r<$FX9&f)_}VF$<+aucQ;?A zqdu%={qqgiO7il`UoAaH3D5A+U@N@WXUMrXj!dA{)%=7*q8cKzQ(G-=Zz#DbiFQlt z@1{V91{3yox^wNIU5Z1M+}nD6_2j@G8(u`%pF`TLuKsvV=h05z0M0!=a|FmYlNtI7 zICSU`Vfcv#_FnGw&#a}^4T@9a7K53zxE5FNSSDU4NwyZ5H0PPEJ**s{2Pj<7)2cz3k(r6_V6gbzc%bN%WoaqwF{V{QRsC z&+zSdP{){WSiG-Q^2BFH-lSBHj010km4>G#jzU_)P=(TzbC>IjS|eOAYqR{wF||4wI-Lr_`H zsn1u_XKpn!KWS?^DBPk7&jX{;qpOL|NHd6T{D1Ig^I5anDZ4|K4p+fTa4M_{tVjt+xd+SO_h0@g;@r~LyX#phVItbYb=aQ5@(T3XIe z%G{~>DCk1Gdp4x2t^X}zW?^dO2!%e&1K%~bjxG{IMt3-ZZ));LffL;tl15K zI>1#DIpg}hw=rCD^VY3FXdB6q*z5AlQz~G1pzIjBc<}HctJ;L07W;05KgWtjhX7_Q zEc#qeYbqc+5&xRpc5U0ZKIZfxe=Y*N1wveMiy1U=*oQ4QKeG$)o8bxUJ5`u70GmLe zdWyo!*O&35$a@rZ`uImOA}<>SKrZBVYu=_d;2VI6(;rKSq;w8QW$Y_|_;3X!> z-);XBhVYW4>vLO3JZ@Fb$S`V56inTTvs)ePM0#rP$5`YHBebqfGVpyD>lQs^P*o%s0eNR1c@MWveZ4qVk(fSs3n zvA*b$9n_rQ@(HZV06n>oD=U{XjYe_!J=sphd&iDDNZ2#8vOF~V^;=3i&6^PMWYLNh z0}c*Xk~G_j)TnNH2RV^+bT%{t_D~=qv)L~r$Ie8^3c$WuW|9B%IpMPgDvI@G3S@ck zBp!-;?=wd{jPyXk!4trSv;V!NN|Ig&&l?ThmK!(T%!``Z3}5}P)7QA4KEG$lKZ58p zqljtn5~qqFv-1M9K^gHG08hRM<_XiXkb)COk1}tc2X-$1SXwG5jM-y4OMYe|CS)ao zq($Uz$2%XP3)V=5MMa}9jAReRjT^8@|1gg_`z|5L?ZtQvRhED(fytJ6D+FcVw1>;L zH=Ez#nmF9HrI0s@VzisV14lgO7gc-&62bH3LSUe3I=>q8DvgkS4gdQr%56R5Xg5=K zR>#JUCTNY?oAlrT&APaWH^Tk>(;0K?dorJxl$)Da(0iK@`b?|fQKFZ%LkL~y>*Mo< zC&YwaY7ZcZNjSoYjxPD`U96QJ-M@dqBW=H@r?37h8${qIp3J4Q0P0_?(qBq6sE2)w z`Qs4iisYOe-?^vl*~nw-;xhVN+RyLbVd>B;Pg<}*cBJxfAjJ)rszV2TTrO_z5jC>5 zHIz0G6(jyWklNWGY}|>6ASX6?z4`ZFpMRPo^>zM~(z*M=pQ{fZHqjuu+QlqCCYR~z z>5V29A;z7$tFh#u$9haj?b#vaQsyr)#b=o(b`3yi;#xXaEN5&%kSKpju45o1q~*a) z&1TOQW}g5MOFV_%%H}w3RICdT?q84WPz#bo!T7ZXZyiRwprGwD<@nm0bLwS82HA61 zSlNAyv!jDUkX(id2m@96LgL*r(xZuFZv2nd4d#B^d2?}oY#!MCU^Z19e>~;%$Ri30 zO-QeLP;e*XGN;c|!?<-|zz6Aff4+dJ*^FodXaSFTdTEUrBMN=w6APli60_u2X;~N( zW{+R6S=tsbIIv=-h!kRgl1PSV+%KzP>s8v#*dFRY*GYi+OnW&3Ce;$EfHgMkK zZ;s*2=nr2nptm@G$9G=%faYRU%VJJV8Ho0`)6-hW@>0y8`k(uA5|u;KKl+^ z0qaj>C5dcvaj9o!o7__dx!ABNxm1m-%=T{J;@-X!Ig`8hHKkWwOyC zhTKFVIXahxVnMmo(<K>)K>r{s(*ykmAvJu*52$f}tg3w8$q9FLX279t)=rK+dkvQ)}W!a?eQb z8{{of1c}kp$E-EcHZ(k|VDA(6)26_O>H-{L*D`={R;^^$K1`*zrikI^;lqMyX`+*v z#}dAjGX~cM&cWguJU$}$Yo1=0&1iWU9&~inQ;AuY@rhW3HsH$}!CLYys(Rdi`I2LP zk1OE0uf3F8A{e-%HULE2Xz^Ho;J-WV9!AB+ayrndR7EJ7&=^8)Q&2#W=70X2Tu|;2 z#5}yd{w9Vx2@0#PRq>{b^VvH%$mXg8d1-2;XIjDD-MdeNa_)FFz}v)p&YXb-ox1FP zl26qXNy#BMhuLb|mf9liZOOX?qjPCENZk7G;#b$dtsEF4pEJAuf~jlNUl7n}rV+G^ zDqh5d9`??C8E4bb_!qkojMsLxF+8;J84t(r3PF@56o-!L)ZXH zl$V!>Z1{~53Q}TyZeoKKD~gvWjw3KFDJ@-%>ly|k=(q}P!Q44JQ>Ul$(7~C$Y)NHO z3U(y%+E|LMdc5T|?+B5r!ht0Y6``lEL`E`yuC^~JwUat;gR#5+qnafL?%Mhxu9=UP zM$Ohn5x2zu7H7JIXu%b~vLytIIY6dqr$?As0_N+r5p{R)u)#Yj=-QYrSVet8F`KH| zQ9Pxt1e4SHt8%#4C&PE`x<^E!KsMWo3h6z-Jqa3DL(roiM93-cP&xFG1%5gj%J}!| zSFfT9`g4If75sqzo3vS|wH*t$8HT^^m%8Ffojj*s0Mo(!SnbA=BAItAgNDq|Y}{^4 z1MMy#u2^)Gw2V`kI0LpZT%*2;nuGTOEbm0bBaGmnFlp$6dRg66&Gs~EXt0kyvV#Ui zbwXT+FWwW`B*>r!j2VAGycP_@YkdOgF1T&H(HtimR zg&J{JG4@@`Yz@sjKTsS1(Wxq;8wm1cn1047{SvB+soD4MFQSk~66{o3!WRpLYi7xIIvS{U4O2a;TMfSYETJsPz_95p_uN$T-Ehz!Pg+=~#MhH!b#A35)tuaZu1= zLySqKrvjVS9Sxfzb!V0o9AJ)x#duP!m~&NpH1p25fBz$oov(;&Kp8+gAitki#^D&j zgW!V?Irav36mV^RD1F7J;pJX9O{X{`UEe$U*%N-TRjXrLf+T5uJ-!tSZVVnv~1C$w~WGp3p0Z$i9M7G$wGPO7mF5o13QUix9}mu z-=>Q}9N*uhCAxK~j~@d<5zelCX(%Funm4wIq)gN|L+28mXnhdTCA`istp0YduJ&hw zynW}+!T$bcy|;)$0SXAzn#(K<;=0b_-8Tw_)7QVfqA(;p!PFgV@y%C5stPOlD zXK~b)?;7*6MQX>=cYLqdJ~hkKG;u#7IXol)4PCj$ zkH5TGAwzdaAxHB5TvRk+;zZ<_b`1YvZ}=piaA;z+DPkgs40Sk?CvpFNkq1#0PCM92 zGTttFl|F*j<!BiMcOS zLd5U82LNVyo6l%d(T|;~ni*vsJMWGdcOe^rY78_oLL6L38HDy|-Fey9?1&!9w;H-# zHdfgzna*q#THnT+Cfv9&0?<=`t58-Uq(3RM}6qz?;gFj9XK85{J-a(`ApdiL?>gl4Wra5|}ztco}X@8~#C<<)aMCxfIlHlP5 z?W~DBfAJx6=p|AdtTF4Y`m6l!5J|P3{7sv=8Pe|39Lme**SmJ@y1nZCUg9?1Eesb` zib&>dwV}j~8b;>`9*3F(Af#cmu0et}J~U_xeZ98TnCPUr{pRY0f4B z=RK>q{S@Ui7dAK1DjXZon~rwx-xq*j#y^8T72XoKx&vRhlGcJT7Q$*eV&!| zx7+ud3`2^l;fdu;`nCT6iTs}rI19`}Ag5q?L?PAJG}l~&cYo-y)A($N^iqx?W+O>4 z(|q%3*I95DzP>pIu@qU)cx?)6Gb9-NOOKsotop&%qh`ztpq5bqxmT+PfE;f8Kek+t zhXLyo{Lo9tMGCD09iQgfbC&i17Wln6?!?DrJYnt4jddzNR}0amo?c6;_w@8$0mz9N zj8i0i*u1s9X7!HJsUL zF1{dKDt-F)Ws41;ei^bi!m#{)LHXi%uRs(A982;A<9q&o29jp4mAx8Ci}fh|`QqB8 zqm0lA`DZ5=%5O0~vtNnh#Q2k?;An*3`ADo!>oP6CqUdFS0%)-3ztD>t>TRNjGKp_G zJD&9{^Ob|lRm?R&r?GNULRFvh6K zBafYQdBIlCYiP=42T`=_aNXqc#s3aRq3Ms49fZqNx^#>)ezb@{83 zn(Q_E=TWvS$+6j^$}UYmzc*ml;V6V1ylKeDb+D02JB)j_MQSvpF7?r);IgG}tn9bN zu;^s7(-hpg@wT4zEDqWRnE2=;55|zEJ**#?7{)iEEF{ox;|%DuA=oV8*8$6#H){r_ zR?35qVD#;?Vo?NQV{i+g0!me^ViSIZVa4C~WS_RpxYZhMo4vj183eBiuQI*}P1JoVd5$<29Qi(Zmu$7?$c4hpf{@(;fRjbLOSY{XrdsvPm# z^~$5PTIIi7+O%nNvRc_1`lzS~Vq}sgmKu{K@hEQMiFqP8clDYzf2q@}(}{=VBno5D zQJ`ncmT!`uvDO67L(#+GVWG0^))&w@)XHK6?d1K$_Kw*vUi1wB%|d^>pn|E%dWer@ zsBL+7x#STn;XjuDqS6;uh-GDh+TatiEFtLP#R_f`wVV1Zz!QM0NphO3E6V5jmf?El z<akl#M6gM?K&MJ@vy@?@`=~3R8sy8F~CAK}bSNWsNWbFir z^g={*(woIMl=hXS4u6NSrK-2}!0jN5XaE-faiJ3zEX+~iaK|U)Z=#GR z!VZ9qpzy65KSsR(~4|-TZ1sc=XT0C?IzJmd^4UW2iOi%zC{pkNUiR7Qm|K( z8`VchNs$Z^ub{7?d$IVln)vOLV-4HCNN31^$VKt4hbR~$I50y?xX;3le7X+0r*`7J z%KyT&Zi)^%b}8@IQt3j&|CcP)8?rTFoSf_R<*RFo^1xqxA{Aobj0CtOM}VDTj^`)p zM)msAWT$c|A3>65BJ_tb6-s*W?S1HQ83wu76mKAeAp4R&F!I239OELi4M#$erLUr_ zLUJhA=&+Br=&ZMQuk7pwQlxm%#bz^Se#duMMM(7U^ZXkiO)mgW5%?m>1_H-H-MGBv z%jl&Ci49ozpb-UgBCAh&Iv`S^NGs?u#yOMy+X_}rVzlH=VtY1vL{MB)Y4Qg&7Sx-4 z1E`Q_OeX$SMrxk59(aJWvu~g90|a{fUvYNGz9&w3&jGMKq>&M^-vXmN0*$Ye_$gFP%d#{i@=x3;$CkNY_PaUVXGIRUI0 zN8bU>tN&RHIEzo2wzmo73LDr`?C@zkfM|f0tE4~89IL(+kPk!mG?$+JTMr%7|Giqg zBp(eNa%j*)_H>QG4WaMW{K7)q86mzaIFaZ!$x09I-~aLToe`@IqYRY)lRy3awY|`q z?{QQrresTb`t(!zFTy)@|AGj77T1A?wy2AU`*Xna_v9W%wfjxf+TKxK;1Lw%ee7k& zt;547bhBFMVV3<;_xQ$*sSn!S4p5mgP+gmCVt;uGwk23MnB63cOUt4^tpl!UoT7oyQWhc682KbZRVaa_1{{e z4I`PJiV5d+r_JN(Pmv3H%r|Z((RL`7M=H%*wse_wYJP*n6(ZX36Y73B@%xV-j%(MN zY6I3_py8=Nm3=jF3Iw!{3?}A5k+!6{jS7)J?G|G?DF|EgPPXgUua{rIj-4(+``h8k z$Fzdm5Sd*n8Ym^660k|Y= zX4Qb}>VVX#;~rFU+hbO}w%i7`v7QnDg*AjXVK?< z5i9F|B9~J})&I=PdK_OUNwF1t3?4}h3N0)Qu~JC{l+MVA=2w$x=HuP**3mKIUz$@M zrIt*9aC2^cKPBb}+K=U9ki%OTVZk1b@$#09Wk+w2saTy!*bL(z!nAGAcpqycwpPJB z@M@I$b%6^Tn0{vf$+!%*6LebJIx-hjq;cy`_+A0Y5@%Y}BP0~P+A{i03`(7K1Mr7R zLW(nf5yhP7@E)`rf0#uiB_-N2f_#`wjC0m?kdHnlAzAopwBKGm!>C5YDyxn&9{pyy zM8By%hmIWSEh7P(g~va2;Bywb?ui(m!(|B1l;Pc4xE-F@xP#k*=Y@_oVfq6HPL;!r zGxr8Z*F)vZ!lZpzz7P8Iq=SN{o_I@O)&T-P@q2*)$_{%1Efe*zN+?n z@67v*FOZYd4F$raO{AJ%Z#!fbI#NT;rSanH03mY(djY;q@E7+<`5Lfn`2;3*2(%nl z;i48{bm8!No*K{7Bbkp=b$`7Q5LaP&e=bX;-c)~yaY*NEgm@c+nPdMjhKvW!YNxJ{;A1I=#Y z`}Jl^gO1Hr6Zzv4I{2C{DgSaTooCHE8X!vmUj!a8YOw)Y$vh%^p8^|LzC$H<5!}DKU>HS z-6y2_@41k1*byj9fKsB?VU1`LwuuiZyTa3>u7vv!xnR9yNuVY7J_fcgu)I^tJv>8n z0qSeC#HfEx~OeZ#Tvuw}^HD~mjSuLCyaG9Z|6JWQ)eB!UuoOO#-3CZr(N zIl42N%(jj$tZ>fzt;O#F75odc0w41igiXJKuahz31kgA-G@uClQouMG8;&(M*pwAy zCRi3e4mx9^BnNEyj(4szXFdl2Ak^}acpx>^)$zYRb(!9;;bfzRQhPJPpd2~k7-0Uv zc}BlK_g0CDiLq#t-?GWBQFd!#CF#w~3$;~F8o9>bna4nzl@Y-_ZNxqLrn<`O2`B3s z7Zco>49{$umkWav^p>X?+#&BY1*lL*WfcrrT&uH7Jfb+eHR=q@7oYpNG@42RF~|dN zo`YoxaVM!}LIcT7t-n?HX+=wQz0X@3W-d6-<^mdoF!SKUHq9OJeySjHh&_Rc7Q3;m z#KY^CIq?#erT+BAwfl{i1qz4?K&jum8|%)iZ=fqKe~W!Vh)3Irvq6g$`guq05}||dZpnzm7!|#-DD!H&q@Enw@7>SNDk^3nmfGb`5UK()bJ@kY z_Od@3oKRQu72u|wH({^i_a5qruiYtq#xES)iDe?aWPoSe-u~|2BgTgf@grFjvTW;| zIsYO`kPG`}#wvzvTYWN3q0&3^`)c$EaBvWbVm`6xMHnk&N;%H$4XZd4Ap5Hy9qvQM zpvz@uZTYJ!7Zq5#QawBwF%UAUXHR1};+Ly@+hhsYNsRb{_#LwEbi6`Z<(>eSsdP zP(IP060c#YFI$HBDqPBvI)Xb4Ze2`j1^FC3W(+;Q3#9=A&Ajs$!LugH;WMK-KnfFx z4KT8Jy5)^o7_2k4ZHSpgMINlFfA>rZ`9bh$;IbISpB_Aar=l8(6z%d*pJPL2+eNcW z?E-ufaDV_KDb+K79zxm*6UHgz^H5kpM9>SEcB^6$&5#V|O5h?&RTL=}L8kM`gna#R z^tgmvEsM*nZV^k;5#4rf+D}6R3etdG@03gov5!PtO2xwbf^G23izG;&1C30T;|g1< zyIoIV*dfdQAnK{uLnk;9J&F!9t85t)bZLtW%bRYUJ1-mcGFFMEeR7Pbm>n14?^pKu z-Z;y79?9g~Y5i_){(9E=@o!ABGF}F~-GqX0<|T(ND8PhDOE!d>cVTbH3+d<(_s~RD zZ(4E)f?@U%S`&RoZCoB-i5tsCCX#mkGUq`*v8q}0uaP5p^m0Dm*5!OcRA6u6S&#$2 zkg`-iT+y=0Jz73OnS2oz))2aZM?!6{Pxq>WGWPQ7@M7fy<$(;0+`lhhc-t;w&GQQ$ zMZS!$7xqE@d}R4SZkGObhEHWPF_p}SNSZhJU$9f)SlM${2OwF=xP#7?GCOb=*E0P3 zwsDO+m^z#7Xzb?zBbvFlW9jzAi~c?E#;1CS4NVkn%0T<@%Gp6Ek#m;a4O)=oDWLrp zop(J4g9@`;ku&q+x3xAX(x0!`N z#`>1}oXh@vPmH;`Y0Vyz6}x3ag@2;^eg6FN7op2?;5<84yg0k=*m|68D*Wf)+Y{JZ zL_t)$+_X%#+^$aqk7vgt`QrF$Y&XNcKDx zv4ZvS?k-+tm=B-Wavppp{x~H?)22<+P7T+w--^iT*V_<)m>E;l8lA-G9J@Y#nEPKB zKWO1J=N&0l{mCSkZ5}84oI|7Mgt#DT?)mho7?x50qKS^_`i=1^x$uwvv~~J2Jzv7x zzGPBz`9|(w@WZWv)E_!BF4G3IL~Dktb?X+ET|7+PYt;2o=P1HMQlnWB(qBgJv;5SS zin|L9fgyG62PkPytLo9(&q2#FG{~@1k27(H)-8(fHk^@oubW{7EW!d3QdNn$`Hvw` z4jBwmW56PICmOnU4Q7M{_%e^AL2zNUL-RIm5_pu}ODG2~T6?Jv8~B680c3J!l*;+e zM4X088`yGCiq=K$H(D;L92|#>sn>*)XVk)puCA^y&3U~iJOSWd_TFy!&12r)q8g<% zRe!A=@rwMvFLU+eun%3kbz?@(K38hmbT2Oh$)Vfdcq?%=b>i^>R!*yz#f= zGI8V?yXFTtl2H=d>TW&Hkim@Xf*FPDhG--A#AbI2qj2*A!J#upEKDzGWl2RNRq7RCEK zN>2XFwUoZ*OS|xW8VZ(0E0~(bDw`%FO&{g7LZZMC?dRX%3j?6 ztFm@CPt*chGF>FPGgM&HFVS$F&6$(2laGsqxTgtOS9B82I&d`<(PyUrj4fEkQyzaN z;|gbi^c>u3ky>O^*%mjHH_+*bn5kx;>&(7P^w=!h2tSpWXsp7`^2#4?#^5BCo0g11%=Y%CFkO{R z{Ci50;tFS&1B;XjXY?)gO(xHMFtu5p*+|L-x{D&Se7rR-zt}1ZxMEJl=kVrM1r@c$ zLN;#DXYo(0ceWTOSt{z@OP*q5B^@%^ky4TA%$wl${2AGw_G`LB!f~BB@BN|7r23fJ1cay z5SDO1E!L!vNiLHDlYAgM(%~%Q>wf|L9}5oHED%8_LY;p2$PuQQ#c1o@NtW!g<)jes z!CY?Nx`hrh016kx|AuQ_Jiia>gMaC%VjI^t>}B}FAA2%#(7GAxG^R^hyj z14|m1l9!9lCn)J99}(X2Lt)`7G9Lf}D2&sVEr^@SHcn`rJFGXUrfNy5udt^f+J|U& zM>EY!Y%TvZ%_1-pCZC{9BQ}C1C?CB9w+LEK$>x#F!(wp-eIU!0pD~{qv^B0;d+Ih| zV-hu5vzr7pF~|;`)ujuA%+F|ifvJSRLAG8Tpv_;8=T2)N8TY3Y*#&1$$AO2G0b>jV z4uJg48#cVA6%gY3RXMEa^*wcJ#g>qYf~e@|7HBCMo%ixe#m|i~2r7jw02lyp4ly}= z2f^CmcAef+cw@&lPzI+-M*=`8`%qA@83l2erS1MiyFC-mzao`mlx+(9$J0fbLL&(h zfDBG74@VQV_(`p6zk|de+OSl(Y&q0BewBUV?7l*)<4V9hd3M*)ZrPLW*$$TM&Q8CC zWsrl5OEuvKPnHmikWc(U)=pp9oL*c(XG%H3COZduuTdTo>M^l_){*m`o*vm}>uu5z z&!}IYK3hm*%Q7aM`8SjVTU7BIAU5{atcwk##McA*^%EZ298224VES3AIj=R>3mtDU znNQPxp3WxeY#r~Ce;0=!=FU9o<0X^{^jS8UlOT-%!~k$VfA~P5c7!UYqrq8K?_(>M*$qpGfk{*+c9h$;~Y;e$8LV?yTiDTnt3703$ti^r$&$iC4}q zhBBxqEAu#burB|EJtfx933mbhKr@%ej%${f1LMq)bOc4yr-CtPgkUYpi1+k%+j~a= zkx7zWLlDu>H_))ayhNVgl_gs#va^CR3N1seb=iWd^6TS~8JUJc%SOTOVb!cbY-1uT zEycN@1S{@2Ss6c|nRB^(H6_>I*_E#ouGo@Wwnw85ZrAT&t-$jr_jaau}C2$|VCqq38ogsg~E$jZ)M zpX>B~zkmDw319Emt+$4Ap6BtrkL!M2*Zp~4Mft)mN(M>-fv`*dqKq1Wuw9Bk*z|@56PQ&fxpWf^GwDlc3enc48UEE8X=N}k* zK;V4;EPg4?KY}$72*?<7=rxKRs@4AMU zPJH@H+!(4{PYX<&cvZa69i1gn{bP1%E8h6umy|x=$nO9BhVbLUllSCH`}g(w&Q|*W zeSc5zXwLt>m&#zhwe5euG1*1I^}p|_tuJ2P^xxn3>73uZ^M8L)#jscBf8QVO`2TP5 z|30YL)UnQNmVk<{rJk;t(}{{<{0FGE2Rwc9L}l#4SV!hH-UFwuyvfMOpw)aqXmcZngXFb}MTmE$AQLuJ(b?NHr9=T6Lh!FVSJ&X{g ze;`Zz=~!4$^B^#g$ol*DZzCR6b@glf;UwzaciC16n_^S1wJ`tpo;6>Rmp^&x)cA+n zJL&1^1#9o_VyrRcSGshm%ur2V|B|4ac=QSBt$s;C6+^QlkNz70!};DT^X!VDIXW4; z7=^eDik^4t&0X8iW5{&YBR?(8>gLTiBoc|}kDsIZZwUD%WhErYXlo0fIu%46pOhqI z)pkNsvYh1;<)yjP|4^?Qtb*Ia&oI;eV^f}phD>c7z@;6h1B+0xRYk(u7p({sHk z+S^G_PEO9tYc*9p`O~LQzkdBXKvnbb;At7glLP_Pl>bFKgGeJNW`9(BPP@sGxiY%3S zrLCoCNO504>yKmph{CF|KAR!@Pbks_k__#Ls*|TTQpC2V1ICv0OgtvV%!MiEe z^4#W~Qtu>u*Tt{CCwO|U`1@}zx<>wl)S)voj`)M8Y!|dNG@6-rwkbL|OgG1!m-Jb! zGv!BAjSmgIHLlz)eJ?bWo|V)vc#NHWytmkOpzdj%_GZ5m2+6}TnwpxQKYxyq^ewwN z9&zi|Ice$5y)@*P7brL>Y;LSGIXStZu8ws3c9f*= z_xAPz&xHvRwUUyO^gYDLx)A{Vnt-2m*ZMbEcWQGx{Y_F)%QY^aKZ4zP{Yh*cg=N zOM&-jws6BiEiS5z*VSEQWQ_dv%Y^(EPeMaOpFNW%hVvTxU*$b{^8PB%Em;RAC)@~y z%a?uUMni@J5bqR-_c$ked$*Z^`;Q*&Zl7CNc$=I1@zbXSVGi;KxKnMO=k4vCI$!F! zaAyyTp@xQx-NmW&t;eYl7L?mlpKCR44fXf;&&}m$-OAoXkTOL{rQT+1J6`*k!Hs$$lc1YtKGYPmFghR?6-@oSqwlA%$v@-96;`pn?Y-gD;+3M^ZbPytBPqXXy2!MHN@GXTeU_^m9Ff`a0w z{TT!|3e@qlw>C?)25hDG8|FPgB^1fb#B|BF{%@*Lu_mE<;&6H;SGa(rHfp~ zP+2>QT&(e_V*01utUI#|-risi@m-B5DOnx=_BJReNS5gULBI^5*<9b(=exeT6cQ3b zqNbp@kNWzqxL93~4WEI)a4YY6lk&?mPd^%4T3g?}eH%C8&O~gia{Q}Tmt!QD_wJop zp0loq4GjE9qS$BN6rGu#u6WIc(7YAtE0vd$lEQbb#%p~wd{p$z878rtmsC}seoy)L z$_iJn{=m;52#KswqArws_FNbwNh<2;b>H2?^6}%x2w}Ud={XBj-T0>Pe?mwBdo#x;{%j?&*$$g-u zxtX|Y*ZB8RF*E_fdlmu``}OQ#L)dhGZC{bggV8s3ee39&Ys+)5{`=Do3lj!cu3X`` z+a53bpt)J)?AfzL0ao$zQRA6Yt1p$RMSm@jNI<$-#k-RmQ;Jtbjm1dY|)-_5lqoE!+-DO0AUCR7)!>D@#j? zb-Zv_k`m*weP-7QQe5N;T80vGOesP`N9Ur8fq{YRk3U z&&l=3+ODsRSAfA7g>oA9&{`uQPV#t z@LBT^id1sd|94=s?oE*eTziLWo961YiiQFoS>xaF0)x_W9>Y3Um7V#xF7 z2rN=+9=l{k4yi$=D(v&!4X?TaTrs$Hv+(P8s8Fd%W_$6N0-B zaK5_gC0&Q?M{!U_p(GGKgoKA%T3Rm63@VZVPZjd+xKf0St4fd-(3GR&4B9#;Cnp6f zI*?sgt{H%yE*E`o+$O^6P6{r+nje2hT2Ej9%ysG%JBjze!=>3FyWS$YCZ?b}K|zh^ zP86&W5fKg!4qtsxK$XsEX@!P_Xabj!FaOBl!|$uBZ%@QBL;{=J05P38^9~TQ<8eY_ zqKk`5(8Gs+#>Y>cI+Z$_jTCa+i9qxXOET@;kW@{jB}E z*jwmS`{9Fs(~zQ~V$%yga&r_F6-AtG+qUiY?c3-b*@mToK|$WDiw?4~+X@m;T+#PO zzP@J5ytPHD^)@ieJI)g)?%ltCP~6Sl;MnYvmyuCl2&eXp8;V+f{$JF%lr^!b+Mlya zZ{EDYbs7}kL?1`nP9#T*p9lWpwE3sSp%~v6mwqEbm*>YPAw<*Bj{DJ~pS$BbT=cH1<{TY-tN#yxIbb>bk^hu46k0-KiBP?de z*!659FibD4QtUgXqpJ(B{+4?dGfQOSZc0iuRaI6Jay$I=^`gQ;Rd$h|O^(COtQ?-z zru=)DMM)?Cgw>HnuXVt*jin(L>AGj^iX0pqI3k}S1zp{xj?60{`BU=&TL=dKI>h(y-&t8% zskWcLa3Ogj-NwcyTHHN8Ir)Oi+S=LDk@I`0=C37v7E7wee_7#!=niBKOi9B z)ho7uip3EW-I=bu>nvwIo{yq6$A~!9eE1+;r+R)1C>0?gA>kW6he;OJ*0ohtS6BX> z9zBoYrSX@eJ%zJKc+~GXm`_ZE(PMnaDk@-8;Ia#ZH;?${vw{IWcyBAwz-H|c< z_b;tSPf!bz9k@`A2*irOH(=IIOiq4l`wbK5-YYAc{OHM8Cly`$;DH0Q^z?hBUtCJU zTy17%hT)Rc^vC;K`?>WkzL&TgWc5!@O4@xV&tKBS2i1DzK4&8v>8%D-e0_X;^2{5L zka)vCVUWQA7O|l+rtC*s3$bx^b{6+peTNn;XsD@aW^O(YwDpKttjv1_*DzDtd6JV8 zQw$Igoqk7c?S+)5!V2x}?TC=->gw6wjo-jyFl(3kZj_;CHbw}(ioOUSP8CDF`Q9tU zkm@Tr)vok|r_D>eSAxBog>o~4PiVi zl0IIRmZ|o>n^gATd;K>y2ipycoKNNgb5AADPEEz;YVY2?8@WnnnoVRySLf8qI84GA z$jZg_CpipF9z$|kL4ja((J$*AKwUEQwO*jO4iITZuc7w|$t`Xx%Y!@|OD-P*)j)zp-YYLS(d1rDRH z!4wU{w&&ebk3}X)pOTAPZ2v5J`2ZN<@1vraHD6E>%65=%Koq7g6-IlcDUx_$j)XEU zD0O0C*Cr0brrp3gEYE(<6K5% zFDLBrQAckt+dQE*v9#3H(wc7+X|s;hLoMEa=+JuW7zmk141x+dAKTmME(@0bM79IX zJq-?C8R=ufXp8zW{OIj1hr%Afu9GKD5PiZC-bhWFdGG#TzW}PWX5VTX7_0%_d?@32 z&$3G_hfsA%MG0Wf?Q zr*4gQcXuB`ddSKSMh3f!e}Ax_2Mm#ulM^Qg2Y9I~1y*1U6OxkV8QQ-;^7Y15GH|&$(IZc6>F6-e>snr3#$jK1V?(iL z&-K?j!T^XPBlWlq>PeSG9DZ$WkK(&_CnhH5N2E+jF+xeqbwb>I=BR{(1P=D}>C=*u zF%?(q>g!!5db-}fzuNQ80n@ef-LCg&JGd21QDPT}szA?aX}|2xke*~26xUQ&Q;f*} z!SD=DbSIIRl9iPtH!v{pyD6sJq?(eQo!z*HCU!bj*mpZ&Gv;p%_RR-+cbi}ZsU29?A4Wv9IO@n&cotTMe8;52FX@Au_t|GJ0*{SGk$P>Emh z=a&=})0foo+T>}@af=U6{ZISV)m6N)wZz3My1M8Hf^DY=5t}jORLPL!=!xvcH34>ZS6fwXPzuKwzagJCN4GkuB&f&PP?Iq zea0x=;pHa8%X{zMy_AjWO%V*_Pg93JUABM-LdOh^!aPv=;7;w=NVcRTn!9xGo1CsL# zavbg6z@QfsN2mDl#B;dcm!m}Iz+n{BtT<~qu_Q}Y#WK%s_$t4+qT|4O#$h3G(Q&sn z?>k@{08$~Ft4ilEZX;b36%>f9hYlS=mcIJW+|*U#o>yEf##)7W3`2%F-{D&rD}hPF zRy$s8i)k_{apTiG5KV1jZS4tmOE2+VYin!ehY#P&yd%TIb-}qKS5%ds z?@OXnF*tcL6`VG=K@pLyq$aSoUsp#*Mow<8w6lv#%vsNl7l(F%1+)6t(9qh_0vcew zqL75*{r&Z|9jvC91&%AfeDdVUVi04dUcu;O`9@NA<=s8yXxbp!!WuB!^q`@GeP3_X zMBj=;!vJa)bsnB#6kZFs^n&*%=6B>eN{GFK!_sf?Z?gyl0JJD^cYa~vFlv4j1N>Gn zV&5TkAZeE|C=8ay#x(Tw^K&FX*Hh?&6<5W5*Gm9BUCJH7{w>dqIn*8Yk-ahaz;74M>+0#vxRn5)?3Mmr?#qIfnVEUk<|{AMq$V7Wou--D zAcpqTMx&&pq@ZK!>N~?4qJ(Vq%*+zszFp`kbSf7Psy0DxIeg7A2HpYE^;}(?MyBKS z|08gATKMM*g^7HTL!tDpOSI{ANNawyi1|EkIy<}BY?w; z%*U08;Ls6dRFssC&dybe3VzEVGzhP6V#FLZ9o7UtW>jwICJcnWHrk$^dNWxoaL>Y{ z(9n!lu_o)s63RXHkyc17b2BsVwXMx3Zj(shl@2g6Zp_mG*m};5%6f|rkBk%o$KH7W zS@*}Deu!HkwT^)4R8-HOKhGH2mdY%k5m|3a`Ta|KH7Keq{lfT^6rH96Rn0iBl<`%} z=>@y1S8k!wOm^kf*3}II#e8_EoZzz@^#k7~D@Do?3th%SL9gxM*3{K?AE=|*v*$6G zuZq}^kanaML;?nJN55lWCkU@G^#2|mjfjk7+`IQkoA52%HnLXdIeBDuI<$N$F22kE z0mVsojTLlBoQ=)mV$~&JS!frbJVp}0Mt#M=k(hmX=N#XG^Fk+!`&^79vG6Y`Elu4o zg25|{+rTPCa-a3@oUJ;0FR}H8$`vt;U*V{`sNi)n?VjTDUYf}05N$1|2yj&>Qw&Ch z@g&k#jzrwT?2HWkT1{}3?HwJVPoJW@>^FCg|J~o8XHp$F>3zJef11p@J$cd$SRdii zXWdw6|8sL>qq4j_4HZgkUuUPbeT@J?;CW5qY5LffC&9sD4!=k_oV%ZghDrc^TIC&m zQMtUKH?l*l|B=5?$WzO|__3JiXzoR&m0d{0Sf6Y}xRexuJi|1blHvPD!(DfO@HYL= z3viHs0F`Rj;&pKN*D|B@_hlB#t%&Scvn{qV>67p1{v06M#L#kWUjfZnr_%EKH z>&w-LvKb&u*`pjbc^TTc1Z*K-?m)g2E7x0E(Vqsx9 z7L3l(gff?XoOI{T{8*>mrx$$we>4HYfy5SuTi8sq38YQnoFv~1Hw{}#A(!ZFYW_6m zhFj$sd3JqGo-JQ#I?d0|z|Zd>8zsK>jUwZ%U7v@Wn~E(W1aMVI<0`}P!yaLB+DS4)*XkBk-Si_T6Z|Z z^!fF*+Onl6!4O9eT(F%@!qBuE$eURD`O)?V9#(+M7XB!#yAO$9B=QLh@1dl$`YL== zRaF(S>_73yJ?T+WgrwmYebwI&hn{fTZmbv^Kq(HS<7D7H%J*|@EIljB(9lrgM$Z{1 zr&&;rboBJ=SJyFLdU<M4^(vqBJ%hVgrg-+p;Rs zhn9{mJw4sGzxogIccQoW0@3)j&c^EO<+TTGpafRq0I?@}3QwDTe2z|6UthoGRgs-i zSXx(deN41tLE~9ix9CdW`4}*dA(4^aa&EOKtE-=eB!ON+dICLH=>_jOP0a$ZY?$o; zXVz|Q*@5ohNk;MexmVW~`aq2e2?{D*zD(vgU#%voNlSmIt-VW)!DY6;iDPzV1_j}J zfwi`;ukYy3@M@F7qM|a-h0nFM$*Q5NJE(=r-GxpO1dcH3lrq$Pg^lVtn`nJ$QMAF z0a#)bcLY->c@d>~H;Y8ik1!+*iV&Uie$lzK6}`OZOb=JB2i`G?MDYB(DJbF|k#1b_ znE!K-k+B#Dg(2a(sp*tk$=82hlZ|%hRQC4v*UnmYcXZqYFa_cN?X6u5uknY@eH@&e zP!cD{#|>0e4j;&e!dT`lR^YjlAhQK?;ExUV9JRa$ikxXamP-w7t9FK?k87^-avPO- zp#r0$f$R`*`VF41y(dt1Fd7WmdsBY!LEr?yHDp2o!Y$6umPA9|xpOB}C>&(Pvj~!94h7YRk4 zb(^{>C|IE9bbv|@1zX7G>lFHyVW|%*#bPb+-Ynw#!-o%6K|rqW-%CLO1RSNv)do3> z&y5U~o2Qhj%Gt7$aPQeOHRxO^yDq%^IGQsQBlp5NZDr=k1(t2&M%|B&t|Rg@GBdA# zet8g6+Mz?x8Q;3kngeWY4`59x`8+g>!Ilh}4YShH7^tZa58vp@W#`}s{KxwL`O4=d zPDC|5D)_+BszB|z$y&Gd%8l`jUaPhjqnA0^3*JUO$U8luQ){Ag z+0g8)Pl$X$_@&?XXxK<}N0jv5-tdOfz;@vgmto1f*x0M{f4V@_opBykK~fM|VP%Pq zj@H=xpb{GSOE@yp3{+M5Y`X<2Lh}K2Jv}|uZ7*NGOx6v3WO2uW49(4xVl&srcC=Zf ztVb4D_E2Q#A)8ej?o;n&W^OdktE{ZtMy_-K;}~MhUQY>I5W0W(`VgdutY9Zl{o+0w z-dFrMR~&KX+s~oM_y-MX^pnLrXL4lEpFfYHl;ZFOX@9a!D+5sa?wvbony+bTX@R}X zKffev-u;7ul7}#nKQ1mVz8Jq9l`!7whErD7dQFR?q*nFXf>)$m;kD)Z;N##55RXU- zAdBPk`zXLb-1wUF6CM-)(~sau7;21s>o};8Fi)_!%b-KPKtOu%7$vb|G*gRpL7kF@ zGl?lCJw;b|BnK$u`1$z(P;dVHu+3OjK3&MR8_0Tfwn-9~hJh2UjQiwCR#MyGVQCO& zP!0Bx2O-31_X(EU01#Cd8slH;E}2QbSW*gK3Yzj`P=IO}9v+Un{OVOdq;8Le30o^G zj+Fg3Avm#~zw>vZ_uGdLCU6Y+Pbd8tJHH)s7o^j^a^J`2w{NQ23i)TsNN~gE_w>?( z1-U{SDo=w~QpHkqVXmToqDEF9EbOzgOWRmo%7f4d&D?Px>3Vs@fBfn%A$NlLq~1hdPiGTNyF0b#C2y}E6|UItnw|4&1XbJ zrkA`h=A2Yd>OtY)=H@w64Z0xy9I0mYG@pO3?;`e~nXPE4%0s!9g9 zSk6hBMvCqIk6B-LMO0BO8X6i*7W-H00a|(Q`RsR5FV(Vbqa85QExb(!y!Q0{5v-XHk~vM@rUo1+Ci9^i9pov@`VtO{$3710cy4qRgYxkU{JB(n#trg-%1DssWU%Yirfhy}Z1> z+6ZOd+6nc#*#4(~aj|D(a1yjFG}lH*3J-P?%E(5>MPI;Se#4JqI@t${Q;xSdSfpmm-Hd7(W4D0XR$Lv#lpMIVYh{panwy zY9k>{z{Pq3;|RLC2r{5l6}!(Sm6w;t$D6>tEb5^K;8lLzk&}IpQ zd!LXo;3`t)zvcVyIv(9_ra3coB)jtR)?Qdj1RnjNV?8P^{<89CN_zU`7rb%5-z6rp zhrDJu>+u)-!Zy#LV&@UZq0h|dWPqS3koP36{&a_&g~=Q&MFz5k>R*|(< zmB`T04uoldzyGJk#`1+tvG5WADnn!jwY~N7UE0&9^WMEX18fU{Rr;c)W;?l$B*oR*OI-rXHR9UmKem~*8suc%Nz>%jv>D1NL}@SR9*EbWO>1p*S_!|{Md z2bP<4uzn;ls5R@8bCmmJXG_1w4dZR?A;G~{%6&@hU(v>46qmk;GGleN7nGv{1_fz| zP1@G-&{|S#Ix)`6&?VWEbwzj(&F6aVd~mq%n5?mmVk!i2MR;PQ z>Ot6$O*_6P{ovntCdrj~j_deFxEFSm=0Lp@&-f z=F7*$`y$J1Y+~ZJkF&pc7;##1@cEzOXVmuNX6y@nRAKnEF2C&irOd9s)4!294cjDQ zqp)zPGhHv=;v6x~mD5{Jt_JcXq92GnG9;w>r+r&nTX(+YwSV3eOH#D%h(x_>R}e@ECHSbm zzbB2OdIIt%zA>`J>%iFePh4rHg{WZysD(oo+z~>Tu**g7jdk2%Huk4ibZEk!uZRk6 zMEY{7X=?7Gq~z!0qfveL!5KXTY$nJW@P)`~${OGcm~_HIL*L*Xvb8b5*Z>Li*93{V zj6Np@tYrfgE-fy?Hd2%}T0C?SV?hIm2{77yiq{}^z$N5~e~no7Cl_5%ao}nSe+FzP z#KDkBAWc96-$~DP2E@wMs?VQq;HZ#TulP8ALimDL0y8s-nvLxhxCNVX#A9p&2#nf? z2ZJLb^lF#dB>v{)K@& zTmp|?{>85}9aTfKuH)Ts9ge+QYWVQs7bbC(kSr0*zHpMg2CZJf4N3d;>(|-Y*{~FC zxj;quKyJ{7ok2rUQcbnx?1*0>6exk5u7zf zsVAkI7tb5-peNi@Ha3n+P98!46P34YkoS&Yi zv8LuUu4N-U-`yJ>v31tg$Ta4maR3dtxn5- zN8B=rQy0kQdzo>33REnlRYDPF1CRmJ^Yh?1;)HXS`yC6R-GirPBY{8aD|X$}B#+cL zx!p8W4tEX!2(Sg@6Ubw@#Q<7X9T{Dn!H{eaSs443U6PffMkgmXl4CTH6gSZ?e*E|W z{{c*goy#L|aDb0JHH_(N6g?Rt*O8r*@Zddq^vFNU>hwsa(d2ljz2u@L^IX0Kb)EBu*Vae!))TLmp_& z(W!&z3H$elp=h{{w#l2i!aItZd09arzGz(U1ZnYWf#!zl#Qmn@4ZFpOM0Z_lrn^*| z1tg%m6Ks*qL%)C1)6krAIY?ClCpd-~)Ep;|Eh}e%hH1Ss)yb7~FEk(^IX^!_+P8Aw zjUPX*rb%n{&*CILeY!+P7lP!(rwUx0KvRttvSnxwHQ}3_U`Xs$UP?}P^D4{h44Qi3 zyI?FLCI&aNDwH^#Tbl{YWR^k{whoj47#z+(GGego%1wmfWuQKIWY-^UheCZ|_tAY@ z_U#J>T=><04(A~k&@_~-n|G)Cx)KpWEL;+DIK`2mwCRI$r!K{{*JJa5O$KOxjFJ|3T@bV2RkjWg@BOIJbV^r&n5sL zpp1z z70K5iKt*sIWN$?sFfG)A3;#@Ahq(~zpx`u0Kf{0y-#ciJFU%U1Fs&yrfJmnAQUXiQ zW#MYE6m*`|H{*PRuXSl>2`#L#2r$0`Ps76Cxh`~_Gz1(=efr|X0Tln+JNKide_{N# zkYP|PBq0&KI@y12v;pmaV37eVfC}~vP8jKnz)(Pr;73Pxk6r*ZjAR_2nD9Xp1lfSb z=2Y0j!sFoT+6jm=HTAXFHQU1fC~4sLZ_4hp#spuN!lGvxu~G2N^73u+J7Y{<1(C8v z7lJkn0%LZ5J}V{VhhrfS2<7hG681m*V5sPAS%YrES5{W0;n|v`bmBLhp3StwqoWeg zFgrRhsD!3XMu&yHg;!|W>oGig&KOQ2*tqD^Q8%E#z@;X*frcxi1Soq^NeTag*6bxz zWB;3~y6xHAJY1Qy`P<5=2^N>^DOm~kvJp!dcXD!gEAHjx%>vp0R#-e#@T>fJ;J^Wu zZ`pwA_VC+Id)bhk!^RMW4#3A?YI?NY1>P3u(3-4@Jv~5`Ae@j#i_`hIeLH8M9_Rs? zpl7&)^v48xfa*?80FHOOHF;0_M2q~~_bk=&{MD(TPQ`gS)o~Q@<&_m-doO~NFo*!D zjQ?h)ZteiambQCoX`=`{%!wnr9#ZEz4t|8&b+0tW-D}sbyp@R>CqlkbV8IKm^|kGrR%3{BXqp%s}RNn)M`F z()Wg`sZ9F~^n%HkB2L4B@TCwe01e2h^4G$wtO;@*rPTdpPWB=UeP$=SIAt|8Ll_1e z3(3kOxDb3T$KW!t4Nrw`Sdf8kM- zuv*S?2>U4dIpI4A47@NQ({651-}{lGKI zAYV}+d3b!Mew-6$#o#31fazJ>b3Ox5n)N6f+qLG{bN<~rzXH;pWhEwRhSlTs(X7e* zC_n!ZQpT0H$`@5-Wo5hIpN)v<_+&^UoxAg6^70)`2Y1QR57nOaJF<>Z76DM!<{gxJ zMFItU?`gVrHd&3Jeug~-P&0E|VQ^$&iNPh2VJ*Y`pddj$KHYcr#`5y_E&RO@_#o+1 z=JCtuA}zQxLQo{i0S1GV*-3CzcXl&#qy(`agEI$mDqIRvMtUftvc&uM?-v5pRo3jI zqca0mFgHJT(SR@f5(ujbQqJ`lId{XRx>IZ4>D;{5Kkwu*w=J$*>2oD}gTf_!eJX1x z2qv51Q1Www%<=(-7MQT0c`gQ6>T^SIECmnCacXVyv=ZP4WE4rzW^s3F5eW0+kYg_r zU+3h&kXFqpfh(rI_xSN!xC8!<>?1oV7nheIyFQ0~>`%XnRnzj1{;U6g2lQ z`ItFiIyoyY4#AWcLk5~MrO#0wHWBxfH?!|QpDl<`>VItl8P`Bd!~W#JxDC<)AUFKQi$8tk<=`*M^Wku?|NK&H)2X&)C`3yTym(ZITgJwb{Hg8IQ62g2;n80ZS} zf*=qmK5g6lDhmt}5&UKf`ua=|>Vgj41PoluGAh4u?b>-_SB`Pz#}Ljjrzq5LB*U#y zWPMR_akhS8?m0uZ^&!cPt~a)ftTNzoB_!69ACu8xa~04FS&xRPPDA_hI>TxUac^`h69|5Ien64;NT2`{v8H6GNVq=dM+&w*|p2A>E(7`deVtWyrc|c!i(qP=64`ZY=H#ct+glSj+ z_T%NPOP=7>V0eUoX-wCXj7~_&7??UD^MKegbzb`~TWe!}L41GDydoSCzp@?M2N)mF zRRDB1+{{%}nt|7etYFg@M_!BIgK%nRWh|Bc%udQG3x%KTKO_QtX6@}`OU*=rFB6%8 zH~+6wBDmgb>c_3PIO72Q(?UWW?d_UVpQ=pxuYY>+8oe*ux^h1)?H>RkunU5HBkkDo z3yY6GV&#w1!rW^i;+_LF2-7aYY{zaU>a|`J=^x3_65gW&1J3`voWT+OfK<5I=Ga_d zMXb%??jtt@s&yjKDN$?@VPIxfTI*3|&~<>F_8byl{Jm8ohJ}f#ENPX1Q}l$yB;uHG z^)tEx3UCZa%35p8O-GL%`!X|q754+sddX`YgBbWnSr*&_!YX+%#o8`xr3erVvB((f z^}ne9coBg3W2CyeI`~HQRahU$c}W;4D`(+YBqc#eE+x+bXIwga7ig)WySu0((LW%d zGedXwPuJ;+!y!c|0c0`|Nl8%J75Huo!4?!Rx;6x-Zw1y^8ohI;^bD-W@9cl#9&NqS z18Wbii_Bj{MJW*}h(umN!A#HjKx)u1zJ!BTsVtS(iy^U-aO-t)w_mm|%*xL`cr|)Mqg&W5I z91fqBwheIyH!U$&8&{3;dQo0}dUp2wJSBmFOyEmJg4?O8uBMU3!6akcczDHmv~2_k z4!1>RT~9^Oh~(BZoeP_y7KVEG1Z$sH*iO+Wgh*o^QWCKYH4cq&i#G}YR-NIQ&Bg)=apfjzDODrh7MCLx6&yz zuAm*9KCKRm%n4Q>Gw^*7d=SocSOp#=$l&r8lQ6-8=g2`zg((1XeTL`qorb~B0K_;( zjZSoiGiMefSq=s6IrJFoH#ykz#n@0mHdq1#llLZ;jj&=AKxXT#;O&7P&rYH`B(77{ z#W_=MqDH&MJsNzs?IdzVSMasn&cO}y42)bjbw-JIlkePTkFjE{jl6vYhW|0vrr}Ws znS?>9@0~+`m=Mcr9WF^pNr2ik#i)kWiC!_|s_>AI!HJ0*c6N5==0Z1m-XXRifg2UU z$Fq})3LZ`e7Z=#`A(+&d=V9x>+sg~o9DzoP%vzC+Dems>pq$WmbFp4a7Kl;V}{wqtGP*SBxrtF&`TnnKABQy$LK3s7O?I-#JRE?UmoY zi5))dS8YNgjY$}C&(`Ec!RIJdnDMaJD01e^84iw76f4lPuo>CIfhIfzlBsi5E*Ya6 zVj0XoL>_nSt_Yss;b}6@!$$mYfB&oa_%At|wh+AbpllpgBL_@~3bff#+Cwyo7cWxh z-<`MKP_(uV{RmyrCg+9EFe(Z<7A~o~Tkk(tOu`8X)*TAbGb3w7j)5!cStaQo0Uv6(SNGN||A6bmQ=jMn@x3WqD zvP4h(kzRus^K^GtEzWu#5;Deei10p}oLrPfYUyPMlTx6-enp)fd6o#Y{60|v6f#}0~hp)D57 zMOYYCf}g#8E3BqXkYXbbvBOxd#m1yK4o~_X@)sIfTpa7Er)}b~Mfvfg+F|>{v?;rh zYmzUzRA6$E^j?-B9u##>A>Ke+AV>oIx?mqmx(@4oV=>p#u&_CV5(A#K7||um&d77nPhujencuKJ9}c^qpdJ{ zkmnTXPIxpBKiAF7WG`I6ulLsn&TWEU1PW7Hl(v3FYTA0@psxF%zYs7LoC?{8e$A$* zOzuF71|M?U^ITj;IRbc|w-V?3dkuVLHw@ z9i`ilBf&$A1l_8*ns56}2us4$ABKYO-VYD(c$>O1vqBNGZ5&e&9GURF>^da=l?-t^ z-Y7*Hz0+V;rQiaUI_h-<=NzjjBU6Q$h=LWjQqpzeCHMy33CMx=n5STwixzbWqy}k2 zw{zzMpn)`Lde(%Ll)ApY4ag)gPY6EVnc$4|g|04lSjWL(Ymo35g}#y&+%}XTD3tTQ ze|p`$E-kFrPET?@J)8S%ujy;{bJWtR{t0h%IA!S!xU~2GHMG^w*KCisFtE*jqsMXc z)LsfYlRnvdhxZf$HktbPzFdinw7!4ToIiMAZuQmUNs-yJ*Cm`b?2k__`A8;X zpGvJwQxEhOpmo7&7vV>B4vfmKif)eWnH3pbR;$8S;nQV5CI_ z3TYUWCL5exu&s_Uhs9^nSWBzJiHGOJ383u?m<9$Mmyi+w{weMrjv$=M*XQ7t3j^Cd zI5ebq9Gu2}E*&g-{{i|VrQne*7?eLtFcCDK{YkAqOK8)8_XMEg(c{NqyRQhn=_)+@ zzUIrjKj~TDKaTFFy(u{+**Cj=7XvK=0|)6Hlu0)?H&fFAEGR@5O<{4Uy@~vl4H+x( zN?lm(^ONdj8|$7Bc_2$s8i0whxb?mT*iD$)UN?KWl)}4oV?K2; z-~YqL$fTv2Sx8jWDH67D7iMRz!6{w5SU3J{!}h)kxD!lnQ2bHsG`PcX&%K~!f;$lL z_?wa?$w1Jc-9+!FHgd8)gdDpZDKuU@S;jeZ0e)`5 zPw)XkwNhVpWqW1bRs*+V8wqfRmTh2Rujgu|yyZ-lv#m1*oK3yWW zS-8Y#Z*u86)qMJt;mpW&vM55p@)@WyYM6}akV>@DFCruN;~5}ybl&SrL$I8;R9x8P zw_neyFeYAXLqVBqHtA4EHwz0P0yZH02W0@i} zMa&uryko#Km)AYhRZc)M8ygw|G=w{3e`*t$a6dUPn3zu!U*F9e|GaIJOXJvcZ~510 zrhm0PZ(c|gziAklwLbs0{2=2-)0a$4%$S|VT3&5rd;`@mhvO{JkRVv>B8Ldzx+|<< z(x7S4#slcm)a7Hoy;?>8V6)#NnyZ^q#_=SMsFyF>tO}k!RmB!HC@X9( z2LzmlTFuP#u|UCy6No)w*Bt~hHe=iz{V|sRrLKfv0;NMs*BAiF2!0tv^U>2zS5x22|h4(uHX14_N=iX)beL zfP{2N>?RjKza!X>h{=q^lOZ3`Hsn32z_;)O*Qb?T#JcM?c(MgEPX`M>^1iWhQ(o1f zo>TqJu>{jli9)RZBVd3iC|UL1*tm~(3pVaCS4f;`y)20b4G1*_Z@OByxSvwWc0cOp zuI+mcW%MZ=1>J#R0kix)Sa&X6g6}LttOvg9q>=knuaT){?(p6j9VXuuh`R zShN~M)2(h*Mk)No}$X;t^L;-tpMyb;_dOnhvLZU z;0^>Rq4qXX#mI`Ms}BqJu7dNpTml z>1b0))coOGm_9%qWNN*|sx25Bad9u?lJq^0t6qOwE}$~fN@J(h7>)zc6#>GOw9c(< zv0C2>os#o?${@0Bk2IuUeXd{zU<`M#J?bv*3K$1>AW3x72nvo64pC8$|Fl==mpH3s z1nNv%%@lH^$llqx?P0&&bJqeFn=e~fNsm3xo-Exf{k6LreAP}?Q~oaN?9yW-Jm9IN zq#8{DEZ}WwBk#G84uu^ATXJ_#KiIuqF@vUwrR1xa(Xc%<(wdBZid}wfkNS4p_jQ~y zdM#Xjb&ZX-=+a1u%eGW|(A2~6C@}NY&ib*zl2PLuan!%O)QWyz0^AY2Hlm8>ZJmrb zjYt6sp_SGL(}d>Fqs31crXSLKF+h6_7m^FsGOk1!Zq>)^AwzdpD}6RHVqF9 zXn4TK@df6h)wMM=dOU{!-rU81AOAfeWZh?Gs3PHc{)NH9w6dUZYLk@~>xk2+`RxzU zICw}oZ{PBG%Rit$l|W8F0wF+V4@y%fDj`}19%vRJPzZHA$o-`e^dl^7y16X^(8v61 z`B)Sso)CU?4|lslp^n2H!{s^@sL$GVZ~rmcM+t zFYo$gJn-P|-3ucWShmM)ZWzlhzj6IK`H@5D>T(w@%zDDjdq*x##S5$25ta8+7}Z0W zJDlHma1`jBpxcu{9dkh-p_ssJ2^rxcbB`dN2yv8T(VDbtgpLqUO^HJYOHUsI z*H5Cxq&wc89#+=Sl8KoJMG;@vrv&+O{CFDx0%+Au|GpBxAwdae)zaIuOJ+VodJw#> zSKQs`{jK(`ZRPRfF^VM{)sw0#*KUMJU_Y$|g%qocjS5*{7mE^=k)VPu2cn&<#&7BrpMb49Hsl^C4!!_CUf;sZ)tdH9}bL zAWI^}Ol#z8<-n!^+jo78z6muG z#tw8=NY&v}`46j&E#RgDup>`zvEcE8yiDlc zOTQ!S;J8X#Do7P5)c=lXz`!*k(m+rNrbZYC`2geWkz7?Fwt&J#GsQ6h%}~1i9ahDo z$uNSFsBup)$KP~zw)yrZ6K=Jrs9q-?IB(XG=6E>d%cv+9Lr#LleYL)A1iwSDi75o2 zOpLwVix&#SqY1D!`n(1YuNVXF74X3e8yZH#@zxcFE>33kaNKBgoSsOn-DKRMjNt*$ zom`x4P>PqifoftuklXF8|7-8e->F{PzyHywG^}Q6q)BL|Nrt3JGzdvTGfIOLDMLF- z^Dapm3}t23fHW!X=IkP+K}C}yBxNYV^SZRZ&++{79M3=Stm8iJW8eE`S?l^-*L9xf z`~5!OCqeep$LkGsWpKk|p>HS?>J6Mq3Jaq{2I^&<1s}Au9VJ~A^-9Vkl5u&TA@ELI zLXleY$&lV*la7%Zv~Z*~Bt zY_S(MO40qrTehohsUR7q0EWez6Fe}9(*}Gw-cXX1iG7+f&3Jxilasa7)w4>p(Ugu8 zj&eUf>jVO~lH`z2uv|w+yNJk{z59}so|Sd07u6)#I!Gw$CDmKp5wMSy3&DI1ZwoV% z(pU2oX=Q>xug@OVrCT@B!dK+aDHkrZQ&L*_H2N`H8=!+10$pDGGdw`p)fKk3$B|@r zfliDbD=w^sP`ktA^Wa}1QHF<)KX}x7XM>CHfH@jLNCZif4eBc9vJ!B3beR)obUJ~f zke*p;KaDwc{{nefY`nJ=-At^8QsZiDsD9e+s|t^b#D#Z(ifE^(_yQc0hHLFJ z&KLUZ>tj$a54MXv`j^7n+xIIMN|Hsd6q{aMyAIsj>MUPVM?QaR!KY7E@#DDVYrba; zqn?EhXsj=W`HOB+Ijum__Wj~`(S9*R@BH0Ij}oaj|LlyB5A3$eM{xg^U8|ibH%AEa zHNT-g)$Kc1iIE~bSs|vUi^nS%?iLr6+R?ggT!khBHb;vm+24Qm$$z_8A7tay@s~%2 zlz?o*9$x#|kh5UITA5+W&HOcza|acON#8GDNj^EOosH-R0-MltuLrIeqNPO+H;P0A z6OF;?o~yq%m$q-`v$`BOew@yqO{#v-Uhr$zGJt!d+dQnlfnNIXkArMDy3AU(Xff3G z;_QgoisB({e_^B;et}?rpamBJx}=&RToK`}+Pz+Db~b8DUjUJrOgFoq;(XGO+(pd^ z!++In<7Zl^XZBMJi{%cb1lPkP0q6|GwVg>*sh7y7H6x><`iyfm7JDB)xnd!`tcC-E zesu7Y$28ajjvmulc{(XuGTb3PgB2yoRBZlaCxOVxTK+8cL2ZR+>*qO8%CA8$0`(r8 zQPA4oD8>S740uw6{@+=m%V#=E$veAPOU})!+BcDWk47BVJInv~zPR`p@Kg=Lu}@)K zuy{1t%%3k*zZ4(iwfH5I(^hen3!6%XR&)mdz*VFd@tE=1G#`)LJS;HqLuqNk^Dms_ z2b!d9I94WDQ6UkeMbCkpVpoO%D;c-BsxD& zJRw_*ESG9!d^C%-hdtId$|???M|JOvG3hjJ_rP`y)B#^Vdy zB_{&HVz~pC@`}gJte3g1&AfMyjP5Vl;(z>FWgcC!bZIgYJXK>jY+80MWHggXMS6LY z8_>jAn!^png}U+)z5zq5&%TA=C4KK;#KRmvcI>^S=c(AaMX^%MAwkc`C{D`M*IoZ< zPhKpyxBBECivNtXa_G{z^R#V1xQEthLS%%P4isiqPwciz;hN3ZE@L?xz?=R?8y?NKSNqW;E;b#89Qhc7ZBWduUO^a@`N zYh7JkRbvyA2gLTDl*W9wJ-EN>%;&HSd+@U9O4vd^KNuF2ro9rheM~#yA z*Bm@}dZ6>0tDEM^&4WTO@QFE6$ZS%neOvEp>Dx_YPIp=>DQONJ+SQ1@XgS$^b}z~j#cn{2td`7^`@!W$G#$D7X0B}+dJ{li=J z{Po#^OP4L9S=3N*(c;D5vu6woYA|woW98q~Md1&C(i8v%4t$bIClS0VtT1jdn3OJQQv_<5i9gN`b^RXNIv%u#Y^v1XUW9njRNs(m{Z?P)_l z_ZiP$E_G6Iuyh;McY&h9(>A{swhV7^QUP20=tUaOZ!8o5xmmtL_>TTWS@>(uSvh5A));*p$N1DAsRMn@^^BmJIe3g2JZQ;FJfkoUERh2F% zVo*;+vR9}pS1cS03`FWleO!DMQ``Y!0oyj_B5mhl-zv;7|GvKzG1So?ybpmIkpZB% z%IDj1?lDmqj1!E7L@y z-L{b-re`LzqZ}V5{iRWK6;zMhAk;G=A)!>1aqw_7uC!Jq7yI^jY9F0dFV^w_&0o!y zqNfltEJmSZLz!JucxpcivNbDLE&%YyxMW&>W@Iahwd^(id{mprP0ilT)x9{zDcd+= z_Mvr~xGJklUjaftJ2kbvsxij+JPrIRH&_jm3Y+nmoF^q%HPqLZ(Vq;mxPUK!l0tq* zZiHjs9&F^DCZJv;6N$@luCo-fW}Rhc(mlV_-x!3iHtAsBfdfA!q~;A#j9i(kg|`kJTBwI&KQfi7tHD%Rl0~SR4HQHfhV2tE}v= zHE2ySYlMM-H766n%GCZa3GD2DNR2ObU1= z*t^Mp*sy_;OKFD8ey&VFCORC}8;7_Uau{vjRSaBA2V&o-OwD=kK)<+1b17?xr}#7U z2|bRSH>Ag_-xcli&p**r^)nh;TU2%}IB`Y)$fd1S!9Rnw=AQ?FJn>vSWtXGvzGiym zI*^*+3JXMHQS*^b2tOH(hI<1706W@crYg+#YAmNF%*8VdrS_+98SY!YsAp83IehNG z`waK-PVHchvVa3RK10M-Q$f+!x2#t{m!8Yshr7~Fv98XMD7O5V+5e5diIFk;24?XEA^ zk8Xc>VDSAduSReAlEAyhDm^?JGxCD$D{bxL#=X3CYbh5R4vI&W@QMchke#GJCj~|9 za|P8rx#d3aegx7 z+USiS*-#Q@cgMm4g-2`E3#(q9eDarq;Z)AOaw2K@!;6Xj>n0CNP5E6m;AlbspDkxH z*^8^|dF`S7(m7U#WkyL=Cck}3Dqox&f@(+A7|^JlMsw)|p~m4N^nvz=f2TI@k~X34 zozJjyNl8y;n(;1{1zZMX^G1p-Teif2e}!4#;rY~7v(`_^_4sM++ekIejsZzP@MCF);$zJ7Rc~>AIB+KRKlv~*wL##! zLrt1X3mZR*iO;-Oeb&brCk$;!8Q@&Gb$x?Ngk{xpq3muN$quav#=BPPBrMw%qZkbLjjA%i}LxO9Rs{LXC;h0W1`lMv!UMx5DQqhR=4Y>Z^=4`DwXFYj$pGrF#* zOz-2!`Q3vLMd$d`R=w@hGSOs5Yk#%z<83@ksIz?)a@i(;1v3nMF13O0p@#%0_hH~L z2;w5p%NInwC8=bxn@dxkLnFW}H!ZbjBU$bfSKTqrA!Mxfju?$L{%5Sp&P!7f`x|C^Pn`>_wV*wb?+fdzI2K)y( z2A+A~5uhqrD3QIlS%^YQ^UT$b-MU4MTVgx4e9D>S3JYzw*gQ)buG7(I!UN6mn~GNd zEdSWHHnDT(`s#OCdr1Q#*0RxRdjqtWL0Z-I%OBW`s%R zqw8+{mgI*l@acK==&^?U-qrvc+?T?OG$^=@R5Q`HdAJIa(IOBVO0U3SAtCDiGWqpP zCvE4ag&+|e(eY8uSMtV~lLLeDUIuqerbCx0HM}L?Pfw*}1v4RJ04vfAot=hMWBK<3_%a z{~-W@JBOD~d39YS>q61`@$o(vOR{qHf-{alMA>;34KNFpcSqson6O&PYAN!J?KTPZ zrK$NmxWA7avA&bc5qxxH#D^2^c?W`C788UF_alOM#{PZy?o(#%Pj^R)P^GA0234;f zH6&XNM|A}f$_7Uo^PoQC5mgtGPQLf@<+IlGZ!NW87Z~cCGLM0%6-NQv^l?srD3sjA z#jjvEP)uodZmnk}-~-z}KELS!+bv%gwr}qk?<(hU!~Wf3@m6o$`kI>!TRQ9t2(V6F zy^uy6neeF>l&K6ovJl>otq=BEM5YbqoKi*p?mV~=t=nT10d)U&wk92SK##3dNmVNs zcH>($C!Je3s`vA#$-jmrUl`u|bu0*ZvI()MaIL+3THd~gjz(PV71M#@rj)%G>ME~(Anu%{*zTa4ojUc~OWhWpznH_J zaf70MlsEQ{k28|$s}BNQ9MZG*ykz9LmVXSg`1bf)YM+mX^lh(fOsKFv7DXE_Dc^3{KN%Tue=Td`tDwqve(0#;aPBuD z!D23)1X7^DJ7^gmx2o1~`}OX{D|vhTo`gyUJ<&(g6dOJ80yG&RrlavEH0jnx@|?=q zILbSrAu+@`NBe_8JNOX)*p3_S9f-X9bv-1eFsrV7wgA_f>+o)j`XKLqcE-K|ti-$e zjk{3*R+5L_Xi#AuH(humCsqo#$BY6i9{hcY#LyE@8?*YL4jns=q|?aBcIse*st+qy zxBYVX^FKkl!|Im&^2t5dqel<;Bif|V-$#dsznve9GRh0^6Nq`3-Ds&$3GB{d5Lvm~ zT9BVVANR!B*1Koi+0rZIS7Au2LsKla^J8qTQ_v<)2Hm~*P(upvN&j0t^drGpd1by4&VcT7Nr03Ls8+)*9{X)vrskj{E$}2KO;?^(e_P_^9G_GK-GrX`cmOmL5>(U$I8G) zg?&2bdJvD-VkXT@#eGx zZ#HWFz(6mUxBc>YOp6k*=}Ysd%BH?{qFkE^Li}qSiMYj7(0ux0A3b~+)NV(c?)0W@ zdYi6LbT<0p(kJzC$ExggMw@FVk4YV_b2&K3XN+Fz$DLlIXxR1n@o-GoRUft_XLX^i zEqvosdVd#scb1~fE7)Bp9IYH4OAMg17zTF_klJ(1>f?v(LXI9qD zE{uQ(2@DB&xnxw1b0xl+DLi?q%9SUFlC?)*w&R7=hnqO8w#&2_i>}?eG5bk~|4JKZ zbux~L+}y_Z%U&+*lny<6PQZKaf6%u^#65jI4DFuYdNtqP-OP@_uZSKOR1rU4D`7W40MXQ(hvHEr55`)LPPkgs z?U-N{31FU0Oa~{aHYoTm;#g}{`p`rM>%M-&hMZ3=n@V1N*$ggOHwbGMN~Et41VSTD zVj+VG@CMh1i*dq&N-6JUUYZ7OJ<-%YC6H^fhh1v#}OV8!$*A~i0~iHj=R#nA~>L$b*18iDFB0&Rz1=RaeH zT$>DDg7=lU@HbrTXvBW(&vY8j1P-}_1~tm>z?Zt_ci`=zC}MX&FibD9VZ%e7PY-EV+J-Z9|K&1W^UOV-+NzT1Ryx6w9p>JC# zEnfv9xC%fCEExJve;FJWf94IYD@Aq|HWok!#6~1EHc9g30G}`jJ7q@L8tCe-EKhst zT*+p1Y}(%Ny2oJ+-!EI+eU+qi2T_de9g}yF5pZt8kCcU?d?>Ck3o=Wb}= zu9B4jL*(Ve4xtey;nQoY4S-&|1`k)YeuaPnj5PMvUb49?;soByKr;=Y`9 zqAO!|{*;AxA93$vyD_D8678aIi;7|_I_4uO>K1hH;7G6`uBjP2po@|9fPFaR%o~Xj z1UI;i3TKee_>hj6=4IXS)rIw5zG6j2!FTk9&hT@?YzImfLSW_Gm+rNUj2VjWN=oAA zA8+UnuLLP9H|I*3wP3+3uyA|<23Ki3ymc#*b415)b!BCa(@V0?7F=?#NR-&B@|(a# ziSv_Av(h!OpM{c&`zTo^YHG+P)D5nw$SlAs>)!7khK!7{F^XIU!>;8H1;-UtkA4z8> zNhESZ(=L5KO0KPafd(>GvtHPymRgUz68^bagj#w{g98 zGfHOoRsa5eD^!{cZzd9!t>4|&;!tv4b`p3&?xV`3O5_C!%3%Zh$q+ChoS|U@!krZv zpQwUYyCIkZM}T22LGAbsS7F`wPf=Y&Y0NdO>A25MQ0sKL)zwJKF$9amj&`sgB~j}2>kV^1_rw>Sl$>YZK#dW5 zK_Jiznzd{x?AM=!zfE~=x8U4je?T?wII<#Io?v8Q_Ai`0t4#kZXQc7`5w4uLipG_7 zQc)QXL|Ia@3Z5xvo;_VJMdzKRXk||D_QZ=95w&X!8#ZfTAlFSM78Nm1=%P^3cH~Z` z=RG{X`EPc@r~8a%<3J*El24jDS4b|oyezL9pA0~n z;FsxAm}nJ8h5LgO6`SMCmV>d@FCH{W%IbDWfOnrE<&5m?PyoJs`D^~4oBKE4e5R?X z?NyI;U98vw&exEVU<6|lXt&AJ6FL0@L&!^GNJ^Q}lb8qD*{+n)r1xEn`VSh!_(GE} zCG}cFZGKBU5}Sn8RG(zG+x9kpU6*A?Qn!2)3?KI0(7HVL{mqxK9gbE6Nv$!HJ5YdAz~smsH-i=Z)mBQ$5VbWgFVLyg|1kN(w*7h#dW!pPrQ9(Hld z=FM@RnqRY+uRhzG(gI%PH|Hv{iz&AOt*nR#ljup{bM(n>9iOd0-vrZ;5bYeigAc${ ztv;GV`u7*zUX0AKQtzC<<%c+p;M%d_4yYMIjTFp7NTBF7v>h(?tM zEgaYmC=;?-zpmnmtNwr~a&wplqzpyp?=-CAxpJ#&gEnL9us^MWYa4)@#BRE{DYwv} zYc}=qlDqqU)zm-`uYPsm;meno9>g~HeL%h7kOk_{ue7Jz`t@R5YSL-&bDB?e=mCp~ zOQu%^Nf-KQx;Jp-5R*LH?S^>FVbFs}f0-R9ze#0?0O=a_<g-ulo8rLqYgXtmR9BZyU+=nT+#Zt{mfl?hK9(0?%bI&>K(ZcP(F=i6JXpjD2-nf z5EhX?X=-V0sVF?acvR0#py|Z#%lI+y`zG>OOucZB=J};vy~;H)`;I^Rk)sq;Um+@9 zax{5mu4MSUaBK7Q@Svz|R~jW1{0xj{YHI44gO@3!_u{Xt13F_Cwf=wKCY9$zc%**| zK7GyA@+oMgsm*6xXO3SHJC|bBNiPjDBA;bt+ttRm0%|2uZQrI1#-W*kWrABVTdjj{ zBn?{NYYVSHQYV&oHj-K-99Lj~-ru%E?Qy3Ff>@NCMfcwSd82%}UtyxSXvvZ!M)LU^ zp=Ft{?)|O1c0o2~m#$n{nR*okhhQ0wR+vQ0M(vkT(C{PbHH?l`qAl9C>pUhIe4Zuq$;)z6GH?+Fy%3iMS7(=J zAR4jfz&Th+j6!SK^G1pktb7zmf2#x=z2bvt)I`#06hKZTm^QinuKoMF<+eLZ7Lw=F z;HBz^t2(h#jHq;Vr3VtQJ?Z>;`dcu0pqOL=n1j=}7Z9zr6-7Tj4xD(&mN~n*jkzz# zyS8IiIAE3IxtUUyjsWv*0bE3iC_9NNko&~@Su(hdb7-gjqA#QjvWEIVq%U|5Q$)u` zgJ)Qbq3zy-3Jdv=Rxh|ZOblGIZl?cbdePe zw?%t0%j-h8@TQ`o*?_8`XgHQdjBmoVu+MM@UrbuCA^{U*g;P0%1l*#lj@)j&gy@eu z@n}UX;T(Bq!SpkJGS^F6*ozxCZse#^38HwD8Aa!O5mDW5qpoZ3@ov);%Tuq{C6tIw zM3%qd6Szj0?0s0n@6UnjQK4Vr0L4syMx8+{JayY#!7vI6IDM@dC?)+HMgcsJh7Wxj zJih*Bv;Xgeh@6O`UvG2-mlFvzPcwV^CC>EtdzqQ|gJ)~yTWJJw@7Gj3nWcHT>tJnd zH!=~UfcE-7-`190=XqQf+<{TVY$!ykwisGC_iu=eC7;;A24n}u@ox&Qegsm3gk(@2 zvl4eDulP0s-Rf~tJekqJKrYF_!-s!szPp*P2E1kZ+LSfB~0|!+7 z=V$vgI?|@`ehGC(sLgabbn7;TW<65M89NC2ICgtcYiqiv;_26rk7iA#rmg*yG>>Q_ zw`X}nv9N~5`|hk=o3KYAfY2DuLq}%)X@x40j0Ys~+cM?@9BJO|B7f7jB9?wUuDpQ2e|vE5n=o2dWv%48_ehdg?M6C=Rd3NxJ!OwF+_#2> zvScx$alw!GdJP``K=_e!7m_p0ACF1ugbiOT{5O6KV!%cn4O>ronrMb{u}6OHVMp3` zv%SHgu45KrK0^8iJJsd#b$}24e1YpGWc~cYD+pKjd@py@CQz3iBmZRr-wDLSw6yuj zSm~ixng%mQ9W8O9Q=vZicIz%JB+ES%(ruoS7WmYbj%n1m)k1p|2>@hv9rI{1fn-3; zv%jlxw=Vj}5B(2~q|ViQ(P0Y1devK~c&NY1U&IlQxNk(|n|wUBW3>VQmiOf~BkWK{ z0qzm>Jg{rXb@A+X4J4uG-oZb>M;l&mukK%sn zWYm-99)6=y1YHxvBF^GQKJZDy2>#d$e2F~!j7IJF24beh3(SMBI6lu%q>cTFWqiPn?{X#!o*gH zVRW8LN$8-fp1YZg5C*#h77%^KeS&9&BX^F4Mh-?Q^x#Kd8G}9gc;YKNV#}7_1UjxW zT9y~D5{kwTJa%^AMe?aGmlt6+1$v20*I!1QLVD4^?Hh$ZxwlZ^WX}!5SAaU95haQq z{r$%e%tQzQ1AC!hBhYx&6h$Gme7;7HCq=nup;#`;r`oSqE_>?^p$sd9je8m<8r#uV zEvwFK;v0MSx{1`LgV=|L190EKO4Tttj?_rh&LnJ>e{-Vn8y~EbE=+jHt!C!WNU#b% zbSTa*WxfXq+5YydU zB}kpPc&Ral+F)&i%z}+v^nM6SlZx(2G%gmn`Wr=9XuuNEQ3UI-3Am}-r5}L#xDE~7 z%O()6IWA9?B%7PmgxjMDaoMSvRDkZq&&(QyEZYu;gpA`>VJ&Cu0AArv4MVAIw@a8* z6U>Hw-9mdYw=vdkQP-H@D2BC@N?O*`%X?g2U}F#Gn;K7e(BK#dgQkKNVqG^W)`VapF;ct&*I#T5AZuqk&^j#V3V_Kik8{%y)|z7ld_G11Hq4wn?zv2>J_ zt^|bVu(lB_)Nm#_W5sKcfSet?*YJK`yayFPe#sA#|8**l&i(&{-@bI;($*jQ4NVUS>7dE5WU`AyI$an zqL#+#8)rwC=GF&&et+l#4W1xiNB%~OX3ZSSKS{G^3NCo}jvaS-H$NE)4?)@g5w1IP z1dxtSXSXs7fd9re``$hEOn)LiiO4w&m#DhpF5o>G9w1SQD5C6-fJG8^xvpNrc%bD z33!7Y*p*}ig+un&1(M-Q!NvbAZiceFg^KUks+~HWYFv>v^FUkBXe^I-MoLa|1jvjx zql$~>`{gnk@e-tk@a9yd-SH}B2Q&#(x-0munDYhg=Fef{@mrD9fIlzY%ne6p`9-ll_q+)=e`tJ=6k( z&TZpHJ18TNTZn{;1wqC!7WKFb0K+tD%?R)Sro~s(rIaRoj!EnAr=y!h)tI2`Q7^V~ zO5~2ZR;qShl{r{jfdSN0Yq5vZ0HnQ@0+|5h^5$|5Pf@W05Fd$IXqy({t%b;{Gf-i6 zI7hZ7fxb+`{gGX)3FbszPJ|!^sp#o|A?EVjNMTN~NnUN_o z_lQCC&m7~YuB}v<{evWcbM31j1onIP_M$x!Tz^KGJ=DfFGnv0U%}>Gmno;B4tHY!16wuy4Og^OsAcZ zEV`5E@EYD3>|1n_%u+h*Clm8|apL}Zr3`Y1=>7{0C@~XYl9|R9o8;1LIlEl^wb?WR z`pYnLnRO!ELW2#o5rGw7{6WEY01j{JOK8E8yfjg0$DTEZxZ^zYa!@BZio7v*o`VxQ zRWiCvYB@1gjT0+-PZq|-Y&l0wDs0N5=cU}*srg|f+Mpq!x|fK)RD@{=rn#iBet7Wc zsuXVX0psGvw7jGi9&FHN;CUwUy$!7bx+=>=&2-{0#? z5!DY#nBu#yU+XCoM0P+A2kb4{VU&Bn2!((Q1O5IcbGc-j^!p3g&~f^h^^03Hs)-xF znD4|>xS%(_+6a8(|Nc)$1s5D$MJ0hF6e)Vh@#Du2AEwhYhvc67u}$}px41L&bBb*7 ze<1zzlMyf3Orec8ahJ0^JglO>XI58NyRTpWWTBo-@R1`PI0JC{Kqi4jNbTR`k_u5} zqFoaFOPLMYxLK;rW^W?jg^W5eW{us(ja7380mr)1RRSqkaQ!n?ukaRWttt}#^8G#* zCu4yrK`Hwf1%PqmHIUTNJ^F9K;5t8@rnnB+6QrTIrj%pUwJq|0V8(*5>yRRJH+@O$ z4deUVUf>tNnX0#FhNA$8DBI;0NAdtoLdVuuK)l$-4<`uyY_68=?fdlZ&_PwKHW))O zySX97y=;!z!lL~2Fvb2dBg4O3J7w+4nka9YFk87Kd~Bup)G0eZG>=a`mv_$QZp4zP zg*m%g=c?H}9zQegZR}+Ai#_k2%r=>LVDb=;iOmiiGoI5d;+A2P{$+hOC;Z4b=Fn!E z%dN7{XUK^}Z)5 zlM~#P;$mYLj}q?Jt3fp-kBQUzccf$E#2xAZM{N}LnCJYj6YnJOwSkjDT6_{ zm;ghwi|@6T(v5|4P+G)eM{W^r-tKBDM0p;@hPMjl$3H19Y-!Hyj}Iz8q(swdr3 zIU;5$JEt5C@G}wvionTY?UOU9Hst0`4jQb|=xy)ReBk0GhS)y6Yw zkaTle|HaeK(e@gHEWiZbH|6tVM{S-8y7UWJOfnRuswyvKWw1@cqksQBWFjZXy}rl6 zI@kT;*n`Ie8^Jo*H`D~P0zpAtjtyeS-mAA~m`+7xrJbh9*7V$5F-Dhr>?JmXad#j$ ze7kj38cpn;YD`lv>13zY{uK3}THGu6PR&;lG|#TX?%Qey?m_Ty+)4be!k?wiO~Cjm zzhc?hdO{wl%O-fi`NKbyl>8R`1)o2!Z%SGdXH7$usXUZ;*7FMIuUZ)1t8yL&gqW=0WNOzwc%T*j;_?*=;O zC>_WG)DBGREBjen>r;Na+t?Fr!W*8@jGcu*C*WRQo}GC5-c+i_OBXG=(ffguw#vq< zZ%J{GfZfSnV4Tdjvb|HD!MTqHBTybWU$N zKi6=zmwp6ZT(N|9>y~vmw5FcV11J$=5_Biw*|1?lN>yo_TdQ6N{sT#M?w?Ji%U->B zL2TojS~ZNpg#Xl|>X5K7;murENuLInw(*K@kaHJ@nY?0`Jty`C27qR-`e>jnO|YNM zeWG{ju_N3|fFtp3|L!oivkn;42<$Dl6iXynI<=GZz23fc%h4e9=?Gwqu6aY|pYKo6 zP7A<*0n3QFQ~>$#u;sh$NgesLsi;aUE#(#(;9=D6I~jDO*{|QW9#%FsD!qD{8B_4m zF^mS9ktR&q72_8=2+b0Svb=l@%jxSK16#r)#VQU~icURPr=_JNnGEXtQ0_s!3fU4L z7YC2zj2&iLnim7CDJ3hT%+)(nHQfCmKYbd2iPc-abm>@K-A<1wRE6*6>KCNxG;yJp zLDu5I=|P17W5okG9w1u9xaDMY*4d*F0fl&J$t^=BNR?1>mk#*9^`bX_*gFR2X+Rx% z>O>c)+GV(N=oKALx#{*L7YL}lzmT~B1A+GH*Y>ty>LrG&OkyQ1oj+d)UaCswZ+yFi z_Uny$=mUEgcyD1SB^E~%?bu=?YNQt;kDf66@?riFAg3K9bH zU%;moY&33?+mJBWiZ+1^SkXA~i{Bm&aags`O zH~s-s7q@gy;t42)hmAPjWOo2!PjKuFp7Y0LBaYmV3rzOHlF(8!mx-Un76$8TcZ5#Z zbTH+(uKT_e5OTZCAGxY-GS99yN~n> zfbGEkFu5h|s8|M1+58P8X#TbR?E5UA2tK~&>2v1}czL}4IPY3>=AvZ7WisFKGsW!f)_o}}d&bA#ol;>?OTX#S< z3h4}yUyWyHxBn}vBh_VNhxE{L^azv(?6uti0S*IZo$C7fb`3^N zN4$aqxM>on++`)RXhHTo45*4T_T8H*Wk=mIiVq z4b!rcMVhG{h$MQ+<$KW`MD327UUt~~keW=DyomaFZaMiVBkqUez9BkeJ@{p&~xFm8$%zkQ%>b4CQuk8SpD#ruyJ+D zJ|fWhhe^o7XNi!x>e!~Le@^WqXDz(DOUep+>oZoW*t2b0)7o^s@tf6FM?TtjjFQZD zb@4hvw&}orY8NhT!$?7iZXV`B_M7*f2Goz!PQwwMJSo&2xcY!P>7la2!Eyg`zN4@A zzaX`SYry}VoQk-~xh@3%h+wCO@+#9q9kDA^R}B0?M>XHm?_5h=q$xtBqC?w2plDK=)tx$>gi z?QOa*-qK`7!=?NW46*bgn}@-CmbdgN>z$VejCKFsbiP=)Px0s@xIxfn1^fQC#?5E;zKQ*+(0;lzj~5Yv0ekKT2+_TEuCM81FX&NG)U z+vsjxX8P|lUHm7FBWJ6_r!I3iVmoxuNybvCb=-Y>e{CX#$$|7Hg?ImF6GDlTgTOBU zL%y!JYH?Q2_}3QwSF(wlV+Yw~ScU>;x$7EU@xFG3?S*vrN?hFTyC1;t>4alSIxn1+ zis`Hv3!xi^zz>z+)S4Tp*N@QT?d`4KVS4|An4jRR3-M)dZ@<%c@x{d%${lxpq@Kfs zyO`t}QBep}VrVxEF}?6dbp)=A2>IT(0;a%GvzJ^5R!VgnX*}hydu5X=2N;rq#hJ5% zvS!=$Zf^b67{o|L8-Uyl}daBv3An72kh*X~QB(5O*? z0eN7x5wl-B*-Ud~fHA*cfAO;u_p9ECC&T@X#5jYEZ{Nb+KkVfO87_S@MqRn+WgNrC zfS5`rC~5Zn(uv}Y%o7qU#wLO7tq)Ow;(}}l)Rjlm)^;q=5ZC2hf6EfHG!)vxw96~S z;^vEtJ*>8{^m+fN<0?z%l*_nK6ZdPHzNk?Mzy8m_uTs_$u7hPkpIM9{nwq1Anrix)pWQbpqp^W3YMI@8VtJ12-WItDWQwh(YX8 zCWS?(0ub2&@es&ehm-_-#Do#tGc1767@JnRRp06X-k+C9z3cKQ5cdUuuQY3NWA4zL zXbw8JSj{H~Ukmi0SJE_BTLdsm;0 zBkjPAr6m0XzznCc;_F7PL}RSyg~ddXa22auJ+tW{lL58ENuf_9f|y`kt$)2A-=U(1 z*56tC)dC6$7nyTs65?O-iG3hQONQ&a#6Mctzhn1DdgpF7qr=S|wRPifCnsyGQM^B! zoA|_oRHtOZErf-2d3;+eTNtJ5Upl{>X3V|4bPoqG-z_HTlHZh5j}5Sjtm!Vkffx^f zvVN8^0zmp((R)8m+=bx=ElEUhv+2`S)hPCn57_0eqyaJht?(uQH;SJlH+T6n0T!{m z@vVKA=K@i=0FR*3&+=|WR_1&rw&|#!a&$oO{-B;V47exqkl)M ze=Ao}Az;3sHXaWG>}K69_L;~{rcHC$uaUp$bFZ#t9Xe!~zoGO|S1%;Bh%e`<3U??- zq&_YDB!|Dg8T6Dq2kYy5lNFL)a{IAH(?<#MxMl6!;M+M}Q;fC|@1|GVR&{ zM$&h)-?GTXg@Fn(6_qcAh4g_bpR?|XzW?)Q?)33$0LWkB@>ik~gE|^?lCei5twICJ zNIwoh;6O9tP|4nV07wj}MMYPgV+P_E?qi+inKD~_m6KC>W#tLv#n6~}9v|A$mfBwKHw7N_;_7i zVL#P%H~rv%(mhpFJb|ktW}^nsCnvXyPk6o@)UHdH$;OBo@vfj`XKINnxGqg0HVI^5 z!l&)uw(Z)sU3TLIi^BZq()aI2IzLrM-N1!SCJnBppApnFeUxy1udoBdC#wgPxpBdR ziAM}%Y?T?ecj1l3IPLcfv;54H&F9WW-S|+B_DA&dtz7vETL&8( zPZUR|PY+~~scTuM^*I*I1Q<-oEMtGI15 zJ<6qTTIJumwvi_2LAV44(yjdC?Tx1AtPz6t?AY=BmoK@g?)(a|inB~yppCMmzeCTn=q7sRiEe-*NidwZnBUg`kthEJg@lD`y4)E%|<)hyI0v1qg5I z)E(GkJ2>>M-gwM*=$Y79>g?2%l+w!ITn?-y>+;M|n?#q6Uc!Uk3FCo**smaV5^yS` zml5xNsr0PzGmp6nBX4HbHY^i`t{?59TRYZMnRDx6h)LcKiAq{-kRfl9zNQH<%J2L|3?|IRek`l6k_?VbqV5g!P?U)v=dgA5n;^8loOc&zkMG-}X6YG=rgY#fH zcWytKBH4#`V2VJ|LAFQvvLBCJ4hT@x56ge?Lb-Qu?;oGco~Z|Cuw@uTtf6Le)nTPQ{(1RM zze!yD@8ys!M!@{{YMiI=-#;JG<`Vz!l^!Xwwf|lN#Z=_~Uc;UK&$ks5CjWbxs^EYB j-|PSX2^bTnhV~lYn=Zc^aeI(hmg$pc8Ydb#{Pn*8R01_A diff --git a/previews/PR264/assets/manual_contraction.md.xv5N0-nB.js b/previews/PR264/assets/manual_contraction.md.MU-4TaXZ.js similarity index 94% rename from previews/PR264/assets/manual_contraction.md.xv5N0-nB.js rename to previews/PR264/assets/manual_contraction.md.MU-4TaXZ.js index 5b633523..0906ace1 100644 --- a/previews/PR264/assets/manual_contraction.md.xv5N0-nB.js +++ b/previews/PR264/assets/manual_contraction.md.MU-4TaXZ.js @@ -1 +1 @@ -import{_ as o,c as r,j as e,a as s,G as n,a5 as a,B as l,o as p}from"./chunks/framework.OJaHWZpq.js";const y=JSON.parse('{"title":"Contraction","description":"","frontmatter":{},"headers":[],"relativePath":"manual/contraction.md","filePath":"manual/contraction.md","lastUpdated":null}'),c={name:"manual/contraction.md"},d={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""};function k(u,t,g,E,b,m){const i=l("Badge");return p(),r("div",null,[t[6]||(t[6]=e("h1",{id:"contraction",tabindex:"-1"},[s("Contraction "),e("a",{class:"header-anchor",href:"#contraction","aria-label":'Permalink to "Contraction"'},"​")],-1)),t[7]||(t[7]=e("p",null,[s("Contraction path optimization and execution is delegated to the "),e("a",{href:"https://github.com/bsc-quantic/EinExprs",target:"_blank",rel:"noreferrer"},[e("code",null,"EinExprs")]),s(" library. A "),e("code",null,"EinExpr"),s(" is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. "),e("code",null,"Expr"),s(") but in which every node represents an Einstein summation expression (aka "),e("code",null,"einsum"),s(").")],-1)),e("details",d,[e("summary",null,[t[0]||(t[0]=e("a",{id:"EinExprs.einexpr-Tuple{TensorNetwork}",href:"#EinExprs.einexpr-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"EinExprs.einexpr")],-1)),t[1]||(t[1]=s()),n(i,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=a('
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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

',6))]),t[8]||(t[8]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[s("Missing docstring for "),e("code",null,"contract(::Tenet.TensorNetwork)"),s(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Tenet.contract!",href:"#Tenet.contract!"},[e("span",{class:"jlbinding"},"Tenet.contract!")],-1)),t[4]||(t[4]=s()),n(i,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[5]||(t[5]=a('
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

',4))])])}const x=o(c,[["render",k]]);export{y as __pageData,x as default}; +import{_ as o,c as r,j as e,a as s,G as n,a5 as a,B as l,o as p}from"./chunks/framework.OJaHWZpq.js";const f=JSON.parse('{"title":"Contraction","description":"","frontmatter":{},"headers":[],"relativePath":"manual/contraction.md","filePath":"manual/contraction.md","lastUpdated":null}'),c={name:"manual/contraction.md"},d={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""};function k(u,t,g,E,b,m){const i=l("Badge");return p(),r("div",null,[t[6]||(t[6]=e("h1",{id:"contraction",tabindex:"-1"},[s("Contraction "),e("a",{class:"header-anchor",href:"#contraction","aria-label":'Permalink to "Contraction"'},"​")],-1)),t[7]||(t[7]=e("p",null,[s("Contraction path optimization and execution is delegated to the "),e("a",{href:"https://github.com/bsc-quantic/EinExprs",target:"_blank",rel:"noreferrer"},[e("code",null,"EinExprs")]),s(" library. A "),e("code",null,"EinExpr"),s(" is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. "),e("code",null,"Expr"),s(") but in which every node represents an Einstein summation expression (aka "),e("code",null,"einsum"),s(").")],-1)),e("details",d,[e("summary",null,[t[0]||(t[0]=e("a",{id:"EinExprs.einexpr-Tuple{TensorNetwork}",href:"#EinExprs.einexpr-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"EinExprs.einexpr")],-1)),t[1]||(t[1]=s()),n(i,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=a('
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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

',6))]),t[8]||(t[8]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[s("Missing docstring for "),e("code",null,"contract(::Tenet.TensorNetwork)"),s(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Tenet.contract!",href:"#Tenet.contract!"},[e("span",{class:"jlbinding"},"Tenet.contract!")],-1)),t[4]||(t[4]=s()),n(i,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[5]||(t[5]=a('
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

',4))])])}const x=o(c,[["render",k]]);export{f as __pageData,x as default}; diff --git a/previews/PR264/assets/manual_contraction.md.xv5N0-nB.lean.js b/previews/PR264/assets/manual_contraction.md.MU-4TaXZ.lean.js similarity index 94% rename from previews/PR264/assets/manual_contraction.md.xv5N0-nB.lean.js rename to previews/PR264/assets/manual_contraction.md.MU-4TaXZ.lean.js index 5b633523..0906ace1 100644 --- a/previews/PR264/assets/manual_contraction.md.xv5N0-nB.lean.js +++ b/previews/PR264/assets/manual_contraction.md.MU-4TaXZ.lean.js @@ -1 +1 @@ -import{_ as o,c as r,j as e,a as s,G as n,a5 as a,B as l,o as p}from"./chunks/framework.OJaHWZpq.js";const y=JSON.parse('{"title":"Contraction","description":"","frontmatter":{},"headers":[],"relativePath":"manual/contraction.md","filePath":"manual/contraction.md","lastUpdated":null}'),c={name:"manual/contraction.md"},d={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""};function k(u,t,g,E,b,m){const i=l("Badge");return p(),r("div",null,[t[6]||(t[6]=e("h1",{id:"contraction",tabindex:"-1"},[s("Contraction "),e("a",{class:"header-anchor",href:"#contraction","aria-label":'Permalink to "Contraction"'},"​")],-1)),t[7]||(t[7]=e("p",null,[s("Contraction path optimization and execution is delegated to the "),e("a",{href:"https://github.com/bsc-quantic/EinExprs",target:"_blank",rel:"noreferrer"},[e("code",null,"EinExprs")]),s(" library. A "),e("code",null,"EinExpr"),s(" is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. "),e("code",null,"Expr"),s(") but in which every node represents an Einstein summation expression (aka "),e("code",null,"einsum"),s(").")],-1)),e("details",d,[e("summary",null,[t[0]||(t[0]=e("a",{id:"EinExprs.einexpr-Tuple{TensorNetwork}",href:"#EinExprs.einexpr-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"EinExprs.einexpr")],-1)),t[1]||(t[1]=s()),n(i,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=a('
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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

',6))]),t[8]||(t[8]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[s("Missing docstring for "),e("code",null,"contract(::Tenet.TensorNetwork)"),s(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Tenet.contract!",href:"#Tenet.contract!"},[e("span",{class:"jlbinding"},"Tenet.contract!")],-1)),t[4]||(t[4]=s()),n(i,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[5]||(t[5]=a('
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

',4))])])}const x=o(c,[["render",k]]);export{y as __pageData,x as default}; +import{_ as o,c as r,j as e,a as s,G as n,a5 as a,B as l,o as p}from"./chunks/framework.OJaHWZpq.js";const f=JSON.parse('{"title":"Contraction","description":"","frontmatter":{},"headers":[],"relativePath":"manual/contraction.md","filePath":"manual/contraction.md","lastUpdated":null}'),c={name:"manual/contraction.md"},d={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""};function k(u,t,g,E,b,m){const i=l("Badge");return p(),r("div",null,[t[6]||(t[6]=e("h1",{id:"contraction",tabindex:"-1"},[s("Contraction "),e("a",{class:"header-anchor",href:"#contraction","aria-label":'Permalink to "Contraction"'},"​")],-1)),t[7]||(t[7]=e("p",null,[s("Contraction path optimization and execution is delegated to the "),e("a",{href:"https://github.com/bsc-quantic/EinExprs",target:"_blank",rel:"noreferrer"},[e("code",null,"EinExprs")]),s(" library. A "),e("code",null,"EinExpr"),s(" is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. "),e("code",null,"Expr"),s(") but in which every node represents an Einstein summation expression (aka "),e("code",null,"einsum"),s(").")],-1)),e("details",d,[e("summary",null,[t[0]||(t[0]=e("a",{id:"EinExprs.einexpr-Tuple{TensorNetwork}",href:"#EinExprs.einexpr-Tuple{TensorNetwork}"},[e("span",{class:"jlbinding"},"EinExprs.einexpr")],-1)),t[1]||(t[1]=s()),n(i,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),t[2]||(t[2]=a('
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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

',6))]),t[8]||(t[8]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Missing docstring."),e("p",null,[s("Missing docstring for "),e("code",null,"contract(::Tenet.TensorNetwork)"),s(". Check Documenter's build log for details.")])],-1)),e("details",h,[e("summary",null,[t[3]||(t[3]=e("a",{id:"Tenet.contract!",href:"#Tenet.contract!"},[e("span",{class:"jlbinding"},"Tenet.contract!")],-1)),t[4]||(t[4]=s()),n(i,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),t[5]||(t[5]=a('
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

',4))])])}const x=o(c,[["render",k]]);export{f as __pageData,x as default}; diff --git a/previews/PR264/assets/manual_tensors.md.0_S8Iedp.lean.js b/previews/PR264/assets/manual_tensors.md.LstjxskI.js similarity index 95% rename from previews/PR264/assets/manual_tensors.md.0_S8Iedp.lean.js rename to previews/PR264/assets/manual_tensors.md.LstjxskI.js index 33eb8a8c..232b1554 100644 --- a/previews/PR264/assets/manual_tensors.md.0_S8Iedp.lean.js +++ b/previews/PR264/assets/manual_tensors.md.LstjxskI.js @@ -1,14 +1,14 @@ import{_ as i,c as e,j as t,a as s,a5 as Q,o as T}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"Tensors","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensors.md","filePath":"manual/tensors.md","lastUpdated":null}'),l={name:"manual/tensors.md"},n={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={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"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={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"},m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},h={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"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={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"},g={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":"-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"},H={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.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"},x={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.666ex"},xmlns:"http://www.w3.org/2000/svg",width:"20.528ex",height:"2.197ex",role:"img",focusable:"false",viewBox:"0 -677 9073.6 971.2","aria-hidden":"true"};function u(f,a,L,V,F,C){return T(),e("div",null,[a[27]||(a[27]=t("h1",{id:"tensors",tabindex:"-1"},[s("Tensors "),t("a",{class:"header-anchor",href:"#tensors","aria-label":'Permalink to "Tensors"'},"​")],-1)),a[28]||(a[28]=t("p",null,"If you have reached here, you probably know wha a tensor is. Nevertheless, we are gonna give a brief remainder.",-1)),t("p",null,[a[8]||(a[8]=s("There are many jokes")),a[9]||(a[9]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),a[10]||(a[10]=s(" about how to define a ")),a[11]||(a[11]=t("em",null,"tensor",-1)),a[12]||(a[12]=s(". The definition we are giving here might not be the most correct one, but it is good enough for our use case (don't kill me please, mathematicians). A tensor ")),t("mjx-container",n,[(T(),e("svg",o,a[0]||(a[0]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"T")])],-1))]),a[13]||(a[13]=s(" of order")),a[14]||(a[14]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),a[15]||(a[15]=s()),t("mjx-container",r,[(T(),e("svg",d,a[2]||(a[2]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"n")])],-1))]),a[16]||(a[16]=s(" is a multilinear")),a[17]||(a[17]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn3",id:"fnref3"},"[3]")],-1)),a[18]||(a[18]=s(" application between ")),t("mjx-container",m,[(T(),e("svg",h,a[4]||(a[4]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"n")])],-1))]),a[19]||(a[19]=s(" vector spaces over a field ")),t("mjx-container",p,[(T(),e("svg",k,a[6]||(a[6]=[Q('',1)]))),a[7]||(a[7]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[20]||(a[20]=s("."))]),t("mjx-container",g,[(T(),e("svg",c,a[21]||(a[21]=[Q('',1)]))),a[22]||(a[22]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("mi",null,"T"),t("mo",null,":"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mn",null,"1"),t("mo",{stretchy:"false"},")")])]),t("mo",null,"×"),t("mo",null,"⋯"),t("mo",null,"×"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mi",null,"n"),t("mo",{stretchy:"false"},")")])]),t("mo",{stretchy:"false"},"↦"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[29]||(a[29]=t("p",null,"In layman's terms, it is a linear function whose inputs are vectors and the output is a scalar number.",-1)),t("mjx-container",H,[(T(),e("svg",y,a[23]||(a[23]=[Q('',1)]))),a[24]||(a[24]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("mi",null,"T"),t("mo",{stretchy:"false"},"("),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mn",null,"1"),t("mo",{stretchy:"false"},")")])]),t("mo",null,","),t("mo",null,"…"),t("mo",null,","),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mi",null,"n"),t("mo",{stretchy:"false"},")")])]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mi",null,"c"),t("mo",null,"∈"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"2em"})]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"2em"})]),t("mi",{mathvariant:"normal"},"∀"),t("mi",null,"i"),t("mo",null,","),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mi",null,"i"),t("mo",{stretchy:"false"},")")])]),t("mo",null,"∈"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mi",null,"i"),t("mo",{stretchy:"false"},")")])])])],-1))]),a[30]||(a[30]=t("p",null,[s("Tensor algebra is a higher-order generalization of linear algebra, where scalar numbers can be viewed as "),t("em",null,"order-0 tensors"),s(", vectors as "),t("em",null,"order-1 tensors"),s(", matrices as "),t("em",null,"order-2 tensors"),s(", ...")],-1)),a[31]||(a[31]=t("p",null,[s('Letters are used to identify each of the vector spaces the tensor relates to. In computer science, you would intuitively think of tensors as "'),t("em",null,"n-dimensional arrays with named dimensions"),s('".')],-1)),t("mjx-container",x,[(T(),e("svg",w,a[25]||(a[25]=[Q('',1)]))),a[26]||(a[26]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("msub",null,[t("mi",null,"T"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"i"),t("mi",null,"j"),t("mi",null,"k")])]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"0.278em"})]),t("mo",{stretchy:"false"},"⟺"),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"0.278em"})]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"monospace"},"T"),t("mo",{mathvariant:"monospace",stretchy:"false"},"["),t("mi",{mathvariant:"monospace"},"i"),t("mo",{mathvariant:"monospace"},","),t("mi",{mathvariant:"monospace"},"j"),t("mo",{mathvariant:"monospace"},","),t("mi",{mathvariant:"monospace"},"k"),t("mo",{mathvariant:"monospace",stretchy:"false"},"]")])])],-1))]),a[32]||(a[32]=Q(`

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of symbols. As it subtypes AbstractArray, many array operations can be dispatched to it.

You can create a Tensor by passing an array and a list of Symbols that name indices.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.976206  0.978749  0.442035  0.768274  0.35523
- 0.455892  0.443304  0.708809  0.346929  0.17127
- 0.705407  0.40146   0.960216  0.726671  0.24676
+ 0.126993  0.0192944  0.363565  0.886366  0.433367
+ 0.90074   0.162383   0.555864  0.580037  0.734327
+ 0.287734  0.736746   0.647137  0.559476  0.0124155
 
 [:, :, 2] =
- 0.176675  0.584914   0.0266599  0.581237  0.673574
- 0.985415  0.519334   0.865824   0.378477  0.657279
- 0.410891  0.0205745  0.944653   0.421887  0.81741

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

julia
julia> size(Tᵢⱼₖ)
+ 0.40317    0.324705  0.892068  0.431755   0.757674
+ 0.0351718  0.875881  0.837071  0.489488   0.762924
+ 0.724361   0.251444  0.327777  0.0737632  0.312946

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

julia
julia> size(Tᵢⱼₖ)
 (3, 5, 2)
 
 julia> size(Tᵢⱼₖ, :j)
diff --git a/previews/PR264/assets/manual_tensors.md.0_S8Iedp.js b/previews/PR264/assets/manual_tensors.md.LstjxskI.lean.js
similarity index 95%
rename from previews/PR264/assets/manual_tensors.md.0_S8Iedp.js
rename to previews/PR264/assets/manual_tensors.md.LstjxskI.lean.js
index 33eb8a8c..232b1554 100644
--- a/previews/PR264/assets/manual_tensors.md.0_S8Iedp.js
+++ b/previews/PR264/assets/manual_tensors.md.LstjxskI.lean.js
@@ -1,14 +1,14 @@
 import{_ as i,c as e,j as t,a as s,a5 as Q,o as T}from"./chunks/framework.OJaHWZpq.js";const M=JSON.parse('{"title":"Tensors","description":"","frontmatter":{},"headers":[],"relativePath":"manual/tensors.md","filePath":"manual/tensors.md","lastUpdated":null}'),l={name:"manual/tensors.md"},n={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},o={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"},r={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},d={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"},m={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},h={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"},p={class:"MathJax",jax:"SVG",style:{direction:"ltr",position:"relative"}},k={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"},g={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":"-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"},H={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.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"},x={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.666ex"},xmlns:"http://www.w3.org/2000/svg",width:"20.528ex",height:"2.197ex",role:"img",focusable:"false",viewBox:"0 -677 9073.6 971.2","aria-hidden":"true"};function u(f,a,L,V,F,C){return T(),e("div",null,[a[27]||(a[27]=t("h1",{id:"tensors",tabindex:"-1"},[s("Tensors "),t("a",{class:"header-anchor",href:"#tensors","aria-label":'Permalink to "Tensors"'},"​")],-1)),a[28]||(a[28]=t("p",null,"If you have reached here, you probably know wha a tensor is. Nevertheless, we are gonna give a brief remainder.",-1)),t("p",null,[a[8]||(a[8]=s("There are many jokes")),a[9]||(a[9]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn1",id:"fnref1"},"[1]")],-1)),a[10]||(a[10]=s(" about how to define a ")),a[11]||(a[11]=t("em",null,"tensor",-1)),a[12]||(a[12]=s(". The definition we are giving here might not be the most correct one, but it is good enough for our use case (don't kill me please, mathematicians). A tensor ")),t("mjx-container",n,[(T(),e("svg",o,a[0]||(a[0]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"T")])],-1))]),a[13]||(a[13]=s(" of order")),a[14]||(a[14]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn2",id:"fnref2"},"[2]")],-1)),a[15]||(a[15]=s()),t("mjx-container",r,[(T(),e("svg",d,a[2]||(a[2]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"n")])],-1))]),a[16]||(a[16]=s(" is a multilinear")),a[17]||(a[17]=t("sup",{class:"footnote-ref"},[t("a",{href:"#fn3",id:"fnref3"},"[3]")],-1)),a[18]||(a[18]=s(" application between ")),t("mjx-container",m,[(T(),e("svg",h,a[4]||(a[4]=[t("g",{stroke:"currentColor",fill:"currentColor","stroke-width":"0",transform:"scale(1,-1)"},[t("g",{"data-mml-node":"math"},[t("g",{"data-mml-node":"mi"},[t("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]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mi",null,"n")])],-1))]),a[19]||(a[19]=s(" vector spaces over a field ")),t("mjx-container",p,[(T(),e("svg",k,a[6]||(a[6]=[Q('',1)]))),a[7]||(a[7]=t("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"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML"},[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[20]||(a[20]=s("."))]),t("mjx-container",g,[(T(),e("svg",c,a[21]||(a[21]=[Q('',1)]))),a[22]||(a[22]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("mi",null,"T"),t("mo",null,":"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mn",null,"1"),t("mo",{stretchy:"false"},")")])]),t("mo",null,"×"),t("mo",null,"⋯"),t("mo",null,"×"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mi",null,"n"),t("mo",{stretchy:"false"},")")])]),t("mo",{stretchy:"false"},"↦"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")])])],-1))]),a[29]||(a[29]=t("p",null,"In layman's terms, it is a linear function whose inputs are vectors and the output is a scalar number.",-1)),t("mjx-container",H,[(T(),e("svg",y,a[23]||(a[23]=[Q('',1)]))),a[24]||(a[24]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("mi",null,"T"),t("mo",{stretchy:"false"},"("),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mn",null,"1"),t("mo",{stretchy:"false"},")")])]),t("mo",null,","),t("mo",null,"…"),t("mo",null,","),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mi",null,"n"),t("mo",{stretchy:"false"},")")])]),t("mo",{stretchy:"false"},")"),t("mo",null,"="),t("mi",null,"c"),t("mo",null,"∈"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"2em"})]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"2em"})]),t("mi",{mathvariant:"normal"},"∀"),t("mi",null,"i"),t("mo",null,","),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"bold"},"v")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mo",{stretchy:"false"},"("),t("mi",null,"i"),t("mo",{stretchy:"false"},")")])]),t("mo",null,"∈"),t("msup",null,[t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{"data-mjx-variant":"-tex-calligraphic",mathvariant:"script"},"F")]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"dim"),t("mo",{"data-mjx-texclass":"NONE"},"⁡"),t("mo",{stretchy:"false"},"("),t("mi",null,"i"),t("mo",{stretchy:"false"},")")])])])],-1))]),a[30]||(a[30]=t("p",null,[s("Tensor algebra is a higher-order generalization of linear algebra, where scalar numbers can be viewed as "),t("em",null,"order-0 tensors"),s(", vectors as "),t("em",null,"order-1 tensors"),s(", matrices as "),t("em",null,"order-2 tensors"),s(", ...")],-1)),a[31]||(a[31]=t("p",null,[s('Letters are used to identify each of the vector spaces the tensor relates to. In computer science, you would intuitively think of tensors as "'),t("em",null,"n-dimensional arrays with named dimensions"),s('".')],-1)),t("mjx-container",x,[(T(),e("svg",w,a[25]||(a[25]=[Q('',1)]))),a[26]||(a[26]=t("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%"}},[t("math",{xmlns:"http://www.w3.org/1998/Math/MathML",display:"block"},[t("msub",null,[t("mi",null,"T"),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",null,"i"),t("mi",null,"j"),t("mi",null,"k")])]),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"0.278em"})]),t("mo",{stretchy:"false"},"⟺"),t("mstyle",{scriptlevel:"0"},[t("mspace",{width:"0.278em"})]),t("mrow",{"data-mjx-texclass":"ORD"},[t("mi",{mathvariant:"monospace"},"T"),t("mo",{mathvariant:"monospace",stretchy:"false"},"["),t("mi",{mathvariant:"monospace"},"i"),t("mo",{mathvariant:"monospace"},","),t("mi",{mathvariant:"monospace"},"j"),t("mo",{mathvariant:"monospace"},","),t("mi",{mathvariant:"monospace"},"k"),t("mo",{mathvariant:"monospace",stretchy:"false"},"]")])])],-1))]),a[32]||(a[32]=Q(`

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of symbols. As it subtypes AbstractArray, many array operations can be dispatched to it.

You can create a Tensor by passing an array and a list of Symbols that name indices.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.976206  0.978749  0.442035  0.768274  0.35523
- 0.455892  0.443304  0.708809  0.346929  0.17127
- 0.705407  0.40146   0.960216  0.726671  0.24676
+ 0.126993  0.0192944  0.363565  0.886366  0.433367
+ 0.90074   0.162383   0.555864  0.580037  0.734327
+ 0.287734  0.736746   0.647137  0.559476  0.0124155
 
 [:, :, 2] =
- 0.176675  0.584914   0.0266599  0.581237  0.673574
- 0.985415  0.519334   0.865824   0.378477  0.657279
- 0.410891  0.0205745  0.944653   0.421887  0.81741

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

julia
julia> size(Tᵢⱼₖ)
+ 0.40317    0.324705  0.892068  0.431755   0.757674
+ 0.0351718  0.875881  0.837071  0.489488   0.762924
+ 0.724361   0.251444  0.327777  0.0737632  0.312946

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

julia
julia> size(Tᵢⱼₖ)
 (3, 5, 2)
 
 julia> size(Tᵢⱼₖ, :j)
diff --git a/previews/PR264/assets/manual_transformations.md.DvStKySo.js b/previews/PR264/assets/manual_transformations.md.lo8exH2E.js
similarity index 98%
rename from previews/PR264/assets/manual_transformations.md.DvStKySo.js
rename to previews/PR264/assets/manual_transformations.md.lo8exH2E.js
index 7c298e84..d8ca4580 100644
--- a/previews/PR264/assets/manual_transformations.md.DvStKySo.js
+++ b/previews/PR264/assets/manual_transformations.md.lo8exH2E.js
@@ -1 +1 @@
-import{_ as t,c as i,a5 as e,o as n}from"./chunks/framework.OJaHWZpq.js";const o="/Tenet.jl/previews/PR264/assets/bdrzgoc.D7V6hupC.png",r="/Tenet.jl/previews/PR264/assets/jlsiued.xD7oqz2Q.png",s="/Tenet.jl/previews/PR264/assets/bvndqnh.CiEHhneS.png",l="/Tenet.jl/previews/PR264/assets/axctrwo.FFeR2tQ7.png",g=JSON.parse('{"title":"Transformations","description":"","frontmatter":{},"headers":[],"relativePath":"manual/transformations.md","filePath":"manual/transformations.md","lastUpdated":null}'),c={name:"manual/transformations.md"};function d(p,a,m,h,u,f){return n(),i("div",null,a[0]||(a[0]=[e('

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

',16)]))}const v=t(c,[["render",d]]);export{g as __pageData,v as default}; +import{_ as t,c as i,a5 as e,o as n}from"./chunks/framework.OJaHWZpq.js";const o="/Tenet.jl/previews/PR264/assets/bdrzgoc.D7V6hupC.png",r="/Tenet.jl/previews/PR264/assets/jlsiued.Dr5tWraZ.png",s="/Tenet.jl/previews/PR264/assets/bvndqnh.CiEHhneS.png",l="/Tenet.jl/previews/PR264/assets/axctrwo.FFeR2tQ7.png",g=JSON.parse('{"title":"Transformations","description":"","frontmatter":{},"headers":[],"relativePath":"manual/transformations.md","filePath":"manual/transformations.md","lastUpdated":null}'),c={name:"manual/transformations.md"};function d(p,a,m,h,u,f){return n(),i("div",null,a[0]||(a[0]=[e('

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

',16)]))}const v=t(c,[["render",d]]);export{g as __pageData,v as default}; diff --git a/previews/PR264/assets/manual_transformations.md.DvStKySo.lean.js b/previews/PR264/assets/manual_transformations.md.lo8exH2E.lean.js similarity index 98% rename from previews/PR264/assets/manual_transformations.md.DvStKySo.lean.js rename to previews/PR264/assets/manual_transformations.md.lo8exH2E.lean.js index 7c298e84..d8ca4580 100644 --- a/previews/PR264/assets/manual_transformations.md.DvStKySo.lean.js +++ b/previews/PR264/assets/manual_transformations.md.lo8exH2E.lean.js @@ -1 +1 @@ -import{_ as t,c as i,a5 as e,o as n}from"./chunks/framework.OJaHWZpq.js";const o="/Tenet.jl/previews/PR264/assets/bdrzgoc.D7V6hupC.png",r="/Tenet.jl/previews/PR264/assets/jlsiued.xD7oqz2Q.png",s="/Tenet.jl/previews/PR264/assets/bvndqnh.CiEHhneS.png",l="/Tenet.jl/previews/PR264/assets/axctrwo.FFeR2tQ7.png",g=JSON.parse('{"title":"Transformations","description":"","frontmatter":{},"headers":[],"relativePath":"manual/transformations.md","filePath":"manual/transformations.md","lastUpdated":null}'),c={name:"manual/transformations.md"};function d(p,a,m,h,u,f){return n(),i("div",null,a[0]||(a[0]=[e('

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

',16)]))}const v=t(c,[["render",d]]);export{g as __pageData,v as default}; +import{_ as t,c as i,a5 as e,o as n}from"./chunks/framework.OJaHWZpq.js";const o="/Tenet.jl/previews/PR264/assets/bdrzgoc.D7V6hupC.png",r="/Tenet.jl/previews/PR264/assets/jlsiued.Dr5tWraZ.png",s="/Tenet.jl/previews/PR264/assets/bvndqnh.CiEHhneS.png",l="/Tenet.jl/previews/PR264/assets/axctrwo.FFeR2tQ7.png",g=JSON.parse('{"title":"Transformations","description":"","frontmatter":{},"headers":[],"relativePath":"manual/transformations.md","filePath":"manual/transformations.md","lastUpdated":null}'),c={name:"manual/transformations.md"};function d(p,a,m,h,u,f){return n(),i("div",null,a[0]||(a[0]=[e('

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

',16)]))}const v=t(c,[["render",d]]);export{g as __pageData,v as default}; diff --git a/previews/PR264/assets/visualization.md.Wnp19pOt.js b/previews/PR264/assets/visualization.md.CN2I4yqR.js similarity index 95% rename from previews/PR264/assets/visualization.md.Wnp19pOt.js rename to previews/PR264/assets/visualization.md.CN2I4yqR.js index ef715297..688494ee 100644 --- a/previews/PR264/assets/visualization.md.Wnp19pOt.js +++ b/previews/PR264/assets/visualization.md.CN2I4yqR.js @@ -1,3 +1,3 @@ import{_ as t,c as n,a5 as a,j as i,a as l,G as p,B as o,o as r}from"./chunks/framework.OJaHWZpq.js";const h="/Tenet.jl/previews/PR264/assets/omlitti.BZEa2jL6.png",C=JSON.parse('{"title":"Visualization","description":"","frontmatter":{},"headers":[],"relativePath":"visualization.md","filePath":"visualization.md","lastUpdated":null}'),k={name:"visualization.md"},d={class:"jldocstring custom-block",open:""};function g(c,s,E,u,y,F){const e=o("Badge");return r(),n("div",null,[s[3]||(s[3]=a('

Visualization

Tenet provides a Package Extension for Makie support. You can just import a Makie backend and call GraphMakie.graphplot on a TensorNetwork.

',2)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GraphMakie.graphplot-Tuple{TensorNetwork}",href:"#GraphMakie.graphplot-Tuple{TensorNetwork}"},[i("span",{class:"jlbinding"},"GraphMakie.graphplot")],-1)),s[1]||(s[1]=l()),p(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=a(`
julia
graphplot(tn::TensorNetwork; kwargs...)
 graphplot!(f::Union{Figure,GridPosition}, tn::TensorNetwork; kwargs...)
-graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

`,5))]),s[4]||(s[4]=a('
julia
graphplot(tn, layout=Stress(), labels=true)

',2))])}const b=t(k,[["render",g]]);export{C as __pageData,b as default}; +graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

`,5))]),s[4]||(s[4]=a('
julia
graphplot(tn, layout=Stress(), labels=true)

',2))])}const m=t(k,[["render",g]]);export{C as __pageData,m as default}; diff --git a/previews/PR264/assets/visualization.md.Wnp19pOt.lean.js b/previews/PR264/assets/visualization.md.CN2I4yqR.lean.js similarity index 95% rename from previews/PR264/assets/visualization.md.Wnp19pOt.lean.js rename to previews/PR264/assets/visualization.md.CN2I4yqR.lean.js index ef715297..688494ee 100644 --- a/previews/PR264/assets/visualization.md.Wnp19pOt.lean.js +++ b/previews/PR264/assets/visualization.md.CN2I4yqR.lean.js @@ -1,3 +1,3 @@ import{_ as t,c as n,a5 as a,j as i,a as l,G as p,B as o,o as r}from"./chunks/framework.OJaHWZpq.js";const h="/Tenet.jl/previews/PR264/assets/omlitti.BZEa2jL6.png",C=JSON.parse('{"title":"Visualization","description":"","frontmatter":{},"headers":[],"relativePath":"visualization.md","filePath":"visualization.md","lastUpdated":null}'),k={name:"visualization.md"},d={class:"jldocstring custom-block",open:""};function g(c,s,E,u,y,F){const e=o("Badge");return r(),n("div",null,[s[3]||(s[3]=a('

Visualization

Tenet provides a Package Extension for Makie support. You can just import a Makie backend and call GraphMakie.graphplot on a TensorNetwork.

',2)),i("details",d,[i("summary",null,[s[0]||(s[0]=i("a",{id:"GraphMakie.graphplot-Tuple{TensorNetwork}",href:"#GraphMakie.graphplot-Tuple{TensorNetwork}"},[i("span",{class:"jlbinding"},"GraphMakie.graphplot")],-1)),s[1]||(s[1]=l()),p(e,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[2]||(s[2]=a(`
julia
graphplot(tn::TensorNetwork; kwargs...)
 graphplot!(f::Union{Figure,GridPosition}, tn::TensorNetwork; kwargs...)
-graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

`,5))]),s[4]||(s[4]=a('
julia
graphplot(tn, layout=Stress(), labels=true)

',2))])}const b=t(k,[["render",g]]);export{C as __pageData,b as default}; +graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

`,5))]),s[4]||(s[4]=a('
julia
graphplot(tn, layout=Stress(), labels=true)

',2))])}const m=t(k,[["render",g]]);export{C as __pageData,m as default}; diff --git a/previews/PR264/developer/cached-field.html b/previews/PR264/developer/cached-field.html index debb4c70..01085b89 100644 --- a/previews/PR264/developer/cached-field.html +++ b/previews/PR264/developer/cached-field.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/developer/hypergraph.html b/previews/PR264/developer/hypergraph.html index 021db720..b911b40e 100644 --- a/previews/PR264/developer/hypergraph.html +++ b/previews/PR264/developer/hypergraph.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/developer/keyword-dispatch.html b/previews/PR264/developer/keyword-dispatch.html index 20b54fa4..0e049d13 100644 --- a/previews/PR264/developer/keyword-dispatch.html +++ b/previews/PR264/developer/keyword-dispatch.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/developer/type-hierarchy.html b/previews/PR264/developer/type-hierarchy.html index 6c498f3f..e013afe0 100644 --- a/previews/PR264/developer/type-hierarchy.html +++ b/previews/PR264/developer/type-hierarchy.html @@ -9,9 +9,9 @@ - + - + @@ -44,7 +44,7 @@ style id4 stroke-dasharray: 5 5 style id5 stroke-dasharray: 5 5 """

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/previews/PR264/developer/unsafe-region.html b/previews/PR264/developer/unsafe-region.html index d649b649..f98e2a34 100644 --- a/previews/PR264/developer/unsafe-region.html +++ b/previews/PR264/developer/unsafe-region.html @@ -9,9 +9,9 @@ - + - + @@ -24,7 +24,7 @@
Skip to content

Unsafe regions

There are cases in which you may want to temporarily avoid index size checks on push! to a TensorNetwork.

julia
@unsafe_region tn begin
     ...
 end

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/previews/PR264/friends.html b/previews/PR264/friends.html index f668cf1d..75f62c4a 100644 --- a/previews/PR264/friends.html +++ b/previews/PR264/friends.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

Friends

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

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/previews/PR264/hashmap.json b/previews/PR264/hashmap.json index 63d248ea..950e866f 100644 --- a/previews/PR264/hashmap.json +++ b/previews/PR264/hashmap.json @@ -1 +1 @@ -{"api_ansatz.md":"DWb-XF3P","api_quantum.md":"CVcixumW","api_tensor.md":"BW2FfX_k","api_tensornetwork.md":"DhUYDEMx","developer_cached-field.md":"CJYQKzxX","developer_hypergraph.md":"BdQbfB8k","developer_keyword-dispatch.md":"CylzmcYp","developer_type-hierarchy.md":"D3NLJtv-","developer_unsafe-region.md":"BOY9vQBD","friends.md":"y-Egr-fK","index.md":"D6Agu2CZ","manual_ansatz_index.md":"Cz5tP6K2","manual_ansatz_mps.md":"D1UWXfR_","manual_ansatz_product.md":"CPHbRaU4","manual_contraction.md":"xv5N0-nB","manual_quantum.md":"CMG_Z1Iw","manual_tensor-network.md":"ALhf9BXb","manual_tensors.md":"0_S8Iedp","manual_transformations.md":"DvStKySo","visualization.md":"Wnp19pOt"} +{"api_ansatz.md":"2mzD4lK9","api_quantum.md":"BbOVBcUx","api_tensor.md":"BPOPV5G-","api_tensornetwork.md":"BgtYFy5s","developer_cached-field.md":"CJYQKzxX","developer_hypergraph.md":"BdQbfB8k","developer_keyword-dispatch.md":"CylzmcYp","developer_type-hierarchy.md":"D3NLJtv-","developer_unsafe-region.md":"BOY9vQBD","friends.md":"y-Egr-fK","index.md":"D6Agu2CZ","manual_ansatz_index.md":"Cz5tP6K2","manual_ansatz_mps.md":"D1UWXfR_","manual_ansatz_product.md":"CPHbRaU4","manual_contraction.md":"MU-4TaXZ","manual_quantum.md":"CMG_Z1Iw","manual_tensor-network.md":"ALhf9BXb","manual_tensors.md":"LstjxskI","manual_transformations.md":"lo8exH2E","visualization.md":"CN2I4yqR"} diff --git a/previews/PR264/index.html b/previews/PR264/index.html index 9b35c68b..539875d6 100644 --- a/previews/PR264/index.html +++ b/previews/PR264/index.html @@ -9,9 +9,9 @@ - + - + @@ -23,7 +23,7 @@
Skip to content

Tenet.jl

Hackable Tensor Networks

Tenet.jl

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/previews/PR264/manual/ansatz/index.html b/previews/PR264/manual/ansatz/index.html index 0cc58de0..4be3e4b2 100644 --- a/previews/PR264/manual/ansatz/index.html +++ b/previews/PR264/manual/ansatz/index.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/manual/ansatz/mps.html b/previews/PR264/manual/ansatz/mps.html index d82d3a31..312251d3 100644 --- a/previews/PR264/manual/ansatz/mps.html +++ b/previews/PR264/manual/ansatz/mps.html @@ -9,9 +9,9 @@ - + - + @@ -44,7 +44,7 @@ Label(fig[1,2, Bottom()], "Periodic") # hide fig # hide

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/previews/PR264/manual/ansatz/product.html b/previews/PR264/manual/ansatz/product.html index eb75c1ef..f2a7e24e 100644 --- a/previews/PR264/manual/ansatz/product.html +++ b/previews/PR264/manual/ansatz/product.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/manual/contraction.html b/previews/PR264/manual/contraction.html index 92855591..28fe5eb1 100644 --- a/previews/PR264/manual/contraction.html +++ b/previews/PR264/manual/contraction.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
Skip to content

Contraction

Contraction path optimization and execution is delegated to the EinExprs library. A EinExpr is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. Expr) but in which every node represents an Einstein summation expression (aka einsum).

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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

Missing docstring.

Missing docstring for contract(::Tenet.TensorNetwork). Check Documenter's build log for details.

Tenet.contract! Function
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

Made with DocumenterVitepress.jl

- +
Skip to content

Contraction

Contraction path optimization and execution is delegated to the EinExprs library. A EinExpr is a lower-level form of a Tensor Network, in which the contraction path has been laid out as a tree. It is similar to a symbolic expression (i.e. Expr) but in which every node represents an Einstein summation expression (aka einsum).

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

  • optimizer Contraction path optimizer. Check EinExprs documentation for more info.

  • outputs Indices that won't be contracted. Defaults to open indices.

  • kwargs Options to be passed to the optimizer.

See also: contract.

source

Missing docstring.

Missing docstring for contract(::Tenet.TensorNetwork). Check Documenter's build log for details.

Tenet.contract! Function
julia
contract!(tn::TensorNetwork, index)

In-place contraction of tensors connected to index.

See also: contract.

source

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/previews/PR264/manual/quantum.html b/previews/PR264/manual/quantum.html index ecc144cd..a332d274 100644 --- a/previews/PR264/manual/quantum.html +++ b/previews/PR264/manual/quantum.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@ - + \ No newline at end of file diff --git a/previews/PR264/manual/tensor-network.html b/previews/PR264/manual/tensor-network.html index 7cf4784c..8a2eb8e4 100644 --- a/previews/PR264/manual/tensor-network.html +++ b/previews/PR264/manual/tensor-network.html @@ -9,9 +9,9 @@ - + - + @@ -22,7 +22,7 @@
Skip to content

Tensor Networks

Tensor Networks (TN) are a graphical notation for representing complex multi-linear functions. For example, the following equation

ijklmnopAimBijpCnjkDpklEmnoFol

can be represented visually as

The graph's nodes represent tensors and edges represent tensor indices.

In Tenet, these objects are represented by the TensorNetwork type.

Information about a TensorNetwork can be queried with the following functions.

Query information

Modification

Add/Remove tensors

Replace existing elements

Slicing

Made with DocumenterVitepress.jl

- + \ No newline at end of file diff --git a/previews/PR264/manual/tensors.html b/previews/PR264/manual/tensors.html index 8761333b..88a9e028 100644 --- a/previews/PR264/manual/tensors.html +++ b/previews/PR264/manual/tensors.html @@ -9,11 +9,11 @@ - + - + - + @@ -24,14 +24,14 @@
Skip to content

Tensors

If you have reached here, you probably know wha a tensor is. Nevertheless, we are gonna give a brief remainder.

There are many jokes[1] about how to define a tensor. The definition we are giving here might not be the most correct one, but it is good enough for our use case (don't kill me please, mathematicians). A tensor T of order[2] n is a multilinear[3] application between n vector spaces over a field F.

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

In layman's terms, it is a linear function whose inputs are vectors and the output is a scalar number.

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

Tensor algebra is a higher-order generalization of linear algebra, where scalar numbers can be viewed as order-0 tensors, vectors as order-1 tensors, matrices as order-2 tensors, ...

Letters are used to identify each of the vector spaces the tensor relates to. In computer science, you would intuitively think of tensors as "n-dimensional arrays with named dimensions".

TijkT[i,j,k]

The Tensor type

In Tenet, a tensor is represented by the Tensor type, which wraps an array and a list of symbols. As it subtypes AbstractArray, many array operations can be dispatched to it.

You can create a Tensor by passing an array and a list of Symbols that name indices.

julia
julia> Tᵢⱼₖ = Tensor(rand(3,5,2), (:i,:j,:k))
 3×5×2 Tensor{Float64, 3, Array{Float64, 3}}:
 [:, :, 1] =
- 0.976206  0.978749  0.442035  0.768274  0.35523
- 0.455892  0.443304  0.708809  0.346929  0.17127
- 0.705407  0.40146   0.960216  0.726671  0.24676
+ 0.126993  0.0192944  0.363565  0.886366  0.433367
+ 0.90074   0.162383   0.555864  0.580037  0.734327
+ 0.287734  0.736746   0.647137  0.559476  0.0124155
 
 [:, :, 2] =
- 0.176675  0.584914   0.0266599  0.581237  0.673574
- 0.985415  0.519334   0.865824   0.378477  0.657279
- 0.410891  0.0205745  0.944653   0.421887  0.81741

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

julia
julia> size(Tᵢⱼₖ)
+ 0.40317    0.324705  0.892068  0.431755   0.757674
+ 0.0351718  0.875881  0.837071  0.489488   0.762924
+ 0.724361   0.251444  0.327777  0.0737632  0.312946

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

julia
julia> size(Tᵢⱼₖ)
 (3, 5, 2)
 
 julia> size(Tᵢⱼₖ, :j)
@@ -39,7 +39,7 @@
 
 julia> length(Tᵢⱼₖ)
 30

  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. We prefer to use 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 diff --git a/previews/PR264/manual/transformations.html b/previews/PR264/manual/transformations.html index 6056bd88..da73eabb 100644 --- a/previews/PR264/manual/transformations.html +++ b/previews/PR264/manual/transformations.html @@ -9,11 +9,11 @@ - + - + - + @@ -21,8 +21,8 @@ -
Skip to content

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

Made with DocumenterVitepress.jl

- +
Skip to content

Transformations

In tensor network computations, it is good practice to apply various transformations to simplify the network structure, reduce computational cost, or prepare the network for further operations. These transformations modify the network's structure locally by permuting, contracting, factoring or truncating tensors.

A crucial reason why these methods are indispensable lies in their ability to drastically reduce the problem size of the contraction path search and also the contraction. This doesn't necessarily involve reducing the maximum rank of the Tensor Network itself, but more importantly, it reduces the size (or rank) of the involved tensors.

Our approach is based in (Gray and Kourtis, 2021), which can also be found in quimb.

In Tenet, we provide a set of predefined transformations which you can apply to your TensorNetwork using both the transform/transform! functions.

Available transformations

Hyperindex converter

Contraction simplification

Diagonal reduction

Anti-diagonal reduction

Dimension truncation

Split simplification

Made with DocumenterVitepress.jl

+ \ No newline at end of file diff --git a/previews/PR264/visualization.html b/previews/PR264/visualization.html index 13681c59..46b96fe2 100644 --- a/previews/PR264/visualization.html +++ b/previews/PR264/visualization.html @@ -9,11 +9,11 @@ - + - + - + @@ -23,8 +23,8 @@
Skip to content

Visualization

Tenet provides a Package Extension for Makie support. You can just import a Makie backend and call GraphMakie.graphplot on a TensorNetwork.

GraphMakie.graphplot Method
julia
graphplot(tn::TensorNetwork; kwargs...)
 graphplot!(f::Union{Figure,GridPosition}, tn::TensorNetwork; kwargs...)
-graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

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

Made with DocumenterVitepress.jl

- +graphplot!(ax::Union{Axis,Axis3}, tn::TensorNetwork; kwargs...)

Plot a TensorNetwork as a graph.

Keyword Arguments

  • labels If true, show the labels of the tensor indices. Defaults to false.

  • The rest of kwargs are passed to GraphMakie.graphplot.

source

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

Made with DocumenterVitepress.jl

+ \ No newline at end of file