FunnyTN.Tensors

FunnyTN.Tensors

absorb_bra_ket({leg::Leg{DIRECTION, T}}, A::MPSTensor, B::MPSTensor=A) -> Tensor

tensor ← bra, ket -> tensor, leg can be lazy. Returns

T is rank 2, DIRECTION is ⇇ –A*–⊤ | T –B–-⊥

T is rank 2, DIRECTION is ⇉ ⊤–A*– T | ⊥–B–-

T is I, DIRECTION is ⇇ –A*–⊤ | | –B–-⊥

T is I, DIRECTION is ⇉ ⊤–A*– | | ⊥–B–-

T is rank 4, DIRECTION is ⇇ –A*–⊤– | T –B–-⊥–

T is rank 4, DIRECTION is ⇉ –⊤–A*– T | –⊥–B–-

absorb_ket({leg::Leg{DIRECTION, T}}, O::MPSTensor) -> T

T' ← (ket <-> T), returns

T is rank 2, DIRECTION is → ‖ | | B–O*–

absorb_mpo({leg::Leg{DIRECTION, T}}, O::MPOTensor) -> T

T' ← (mpo <-> T), returns

T is rank 3, DIRECTION is ↑ | /–O*–∖ == | == ∖–B–-/

T is rank 3, DIRECTION is → ‖ | | B–O*– | | ‖

all_equivalent(v) -> Bool

all entries in v are all equivalent.

assert_samesize(tensors, dim::Int)
bra_ket_prod(A::MPSTensor, B::MPSTensor=A)

bra-ket contraction, returns

--A*--
  |
--B---
FunnyTN.Tensors.log2iFunction.
log2i(x::Integer) -> Integer

Return log2(x), with integer input only.

mpo_ket_prod(O::MPOTensor, B::MPSTensor)

mpo-mps contract, up and down wise, returns

  |
--O*--
  |
--B---
mps_mps_prod(A::MPSTensor, B::MPSTensor)

mps, mps contract, left and right wise, returns

   |  |
 --B--O*--
t2_mps_prod(A::AbstractMatrix, B::MPSTensor) ->

matrix, mps contract, left and right wise, returns

 |  |
 B--O*--
t3_mpo_prod(B::MPSTensor, O::MPOTensor)

tensor(rank=3)-mpo contract, left and right wise, returns

|  |
B--O*--
|  |
tt_dadd(ts::Tensor{T, N}...) -> Tensor{T, N}

tensor train direct add.

Tensor Absorption (holomophic transform of tensors)

  • absorb_mpo
  • absorbbraket
FunnyTN.Tensors.bondFunction.
bond(tt::AbstractTN, l::Int) -> Bond

l-th bound of tensor train.