@@ -12,16 +12,6 @@ dim(a::AbstractITensor) = Int(length(a))
1212hasqns (i:: Index ) = false
1313# TODO : Define this properly.
1414hasqns (i:: AbstractITensor ) = false
15- # TODO : Deprecate, and/or decide on aliasing behavior of `ITensor`.
16- itensor (parent:: AbstractArray , nameddimsindices) = ITensor (parent, nameddimsindices)
17- function itensor (parent:: AbstractArray , i1:: Index , i_rest:: Index... )
18- return ITensor (parent, (i1, i_rest... ))
19- end
20- # TODO : Deprecate.
21- order (a:: AbstractArray ) = ndims (a)
22- # TODO : Deprecate.
23- using NamedDimsArrays: aligndims
24- permute (a:: AbstractITensor , dimnames) = aligndims (a, dimnames)
2515
2616# This seems to be needed to get broadcasting working.
2717# TODO : Investigate this and see if we can get rid of it.
@@ -30,11 +20,12 @@ Base.Broadcast.extrude(a::AbstractITensor) = a
3020# TODO : Generalize this.
3121# Maybe define it as `oneelement`, and base it on
3222# `FillArrays.OneElement` (https://juliaarrays.github.io/FillArrays.jl/stable/#FillArrays.OneElement).
33- function onehot (iv:: Pair{<:Index,<:Int} )
23+ function onehot (elt :: Type{<:Number} , iv:: Pair{<:Index,<:Int} )
3424 a = ITensor (first (iv))
35- a[last (iv)] = one (Bool )
25+ a[last (iv)] = one (elt )
3626 return a
3727end
28+ onehot (iv:: Pair{<:Index,<:Int} ) = onehot (Bool, iv)
3829
3930# TODO : This is just a stand-in for truncated SVD
4031# that only makes use of `maxdim`, just to get some
@@ -79,12 +70,3 @@ function factorize(
7970 end
8071 return F1, F2, (; truncerr= zero (Bool),)
8172end
82-
83- # TODO : Used in `ITensorMPS.jl`, decide where or if to define it.
84- # Ideally this would just be a zero-dimensional `ITensor` wrapping
85- # a special type, like `Zeros{UnspecifiedZero()}()`.
86- struct OneITensor <: AbstractITensor end
87- Base. size (:: OneITensor ) = ()
88- Base.:* (:: OneITensor , :: OneITensor ) = OneITensor ()
89- Base.:* (:: OneITensor , a:: ITensor ) = a
90- Base.:* (a:: ITensor , :: OneITensor ) = a
0 commit comments