Skip to content

Commit af8cd2e

Browse files
committed
Use ITensorBase.jl
1 parent c848322 commit af8cd2e

File tree

2 files changed

+3
-79
lines changed

2 files changed

+3
-79
lines changed

Project.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@ authors = ["ITensor developers <[email protected]> and contributors"]
44
version = "0.8.0"
55

66
[deps]
7-
BroadcastMapConversion = "4a4adec5-520f-4750-bb37-d5e66b4ddeb2"
8-
NamedDimsArrays = "60cbd0c0-df58-4cb7-918c-6f5607b73fde"
7+
ITensorBase = "4795dd04-0d67-49bb-8f44-b89c448a1dc7"
98

109
[compat]
11-
BroadcastMapConversion = "0.1.2"
12-
NamedDimsArrays = "0.3.0"
10+
ITensorBase = "0.1.2"
1311
julia = "1.10"

src/ITensors.jl

Lines changed: 1 addition & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,5 @@
11
module ITensors
22

3-
using BroadcastMapConversion: Mapped
4-
using NamedDimsArrays:
5-
NamedDimsArrays,
6-
AbstractName,
7-
AbstractNamedDimsArray,
8-
AbstractNamedInteger,
9-
AbstractNamedUnitRange,
10-
AbstractNamedVector,
11-
dename,
12-
dimnames,
13-
name,
14-
named,
15-
unname
16-
17-
@kwdef struct IndexName <: AbstractName
18-
id::UInt64 = rand(UInt64)
19-
plev::Int = 0
20-
tags::Set{String} = Set{String}()
21-
namedtags::Dict{Symbol,String} = Dict{Symbol,String}()
22-
end
23-
NamedDimsArrays.randname(n::IndexName) = IndexName()
24-
25-
struct IndexVal{Value<:Integer} <: AbstractNamedInteger{Value,IndexName}
26-
value::Value
27-
name::IndexName
28-
end
29-
30-
# Interface
31-
NamedDimsArrays.dename(i::IndexVal) = i.value
32-
NamedDimsArrays.name(i::IndexVal) = i.name
33-
34-
# Constructor
35-
NamedDimsArrays.named(i::Integer, name::IndexName) = IndexVal(i, name)
36-
37-
struct Index{T,Value<:AbstractUnitRange{T}} <: AbstractNamedUnitRange{T,Value,IndexName}
38-
value::Value
39-
name::IndexName
40-
end
41-
42-
Index(length::Int) = Index(Base.OneTo(length), IndexName())
43-
44-
# Interface
45-
# TODO: Overload `Base.parent` instead.
46-
NamedDimsArrays.dename(i::Index) = i.value
47-
NamedDimsArrays.name(i::Index) = i.name
48-
49-
# Constructor
50-
NamedDimsArrays.named(i::AbstractUnitRange, name::IndexName) = Index(i, name)
51-
52-
struct NoncontiguousIndex{T,Value<:AbstractVector{T}} <:
53-
AbstractNamedVector{T,Value,IndexName}
54-
value::Value
55-
name::IndexName
56-
end
57-
58-
# Interface
59-
# TODO: Overload `Base.parent` instead.
60-
NamedDimsArrays.dename(i::NoncontiguousIndex) = i.value
61-
NamedDimsArrays.name(i::NoncontiguousIndex) = i.name
62-
63-
# Constructor
64-
NamedDimsArrays.named(i::AbstractVector, name::IndexName) = NoncontiguousIndex(i, name)
65-
66-
abstract type AbstractITensor <: AbstractNamedDimsArray{Any,Any} end
67-
68-
NamedDimsArrays.nameddimsarraytype(::Type{<:IndexName}) = ITensor
69-
70-
Base.ndims(::Type{<:AbstractITensor}) = Any
71-
72-
struct ITensor <: AbstractITensor
73-
parent::AbstractArray
74-
nameddimsindices
75-
end
76-
Base.parent(a::ITensor) = a.parent
77-
NamedDimsArrays.nameddimsindices(a::ITensor) = a.nameddimsindices
3+
using ITensorBase: ITensor, Index
784

795
end

0 commit comments

Comments
 (0)