Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "ITensorBase"
uuid = "4795dd04-0d67-49bb-8f44-b89c448a1dc7"
authors = ["ITensor developers <support@itensor.org> and contributors"]
version = "0.4.3"
version = "0.4.4"

[deps]
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"
Expand All @@ -22,7 +22,7 @@ ConstructionBase = "1.6.0"
FillArrays = "1.13"
LinearAlgebra = "1.10"
MapBroadcast = "0.1.5"
NamedDimsArrays = "0.11.1, 0.12"
NamedDimsArrays = "0.13"
Random = "1.10"
TensorAlgebra = "0.3, 0.4, 0.5, 0.6"
UnallocatedArrays = "0.1.1"
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ julia> Pkg.add("ITensorBase")
````julia
using ITensorBase: ITensorBase, ITensor, Index
using LinearAlgebra: qr
using NamedDimsArrays: aligndims, unname
using NamedDimsArrays: aligndims, dename
using Test: @test
i = Index(2)
j = Index(2)
Expand All @@ -55,9 +55,9 @@ a = randn(i, j)
a′ = randn(j, i)
b = randn(j, k)
c = a * b
@test unname(c, (i, k)) ≈ unname(a, (i, j)) * unname(b, (j, k))
@test dename(c, (i, k)) ≈ dename(a, (i, j)) * dename(b, (j, k))
d = a + a′
@test unname(d, (i, j)) ≈ unname(a, (i, j)) + unname(a′, (i, j))
@test dename(d, (i, j)) ≈ dename(a, (i, j)) + dename(a′, (i, j))
@test a ≈ aligndims(a, (j, i))
q, r = qr(a, (i,))
@test q * r ≈ a
Expand Down
2 changes: 1 addition & 1 deletion docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ ITensorBase = {path = ".."}
Documenter = "1"
ITensorBase = "0.4"
Literate = "2"
NamedDimsArrays = "0.11, 0.12"
NamedDimsArrays = "0.13"
2 changes: 1 addition & 1 deletion examples/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ ITensorBase = {path = ".."}
[compat]
ITensorBase = "0.4"
LinearAlgebra = "1.10"
NamedDimsArrays = "0.11, 0.12"
NamedDimsArrays = "0.13"
6 changes: 3 additions & 3 deletions examples/README.jl
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ julia> Pkg.add("ITensorBase")

using ITensorBase: ITensorBase, ITensor, Index
using LinearAlgebra: qr
using NamedDimsArrays: aligndims, unname
using NamedDimsArrays: aligndims, dename
using Test: @test
i = Index(2)
j = Index(2)
Expand All @@ -56,9 +56,9 @@ a = randn(i, j)
a′ = randn(j, i)
b = randn(j, k)
c = a * b
@test unname(c, (i, k)) ≈ unname(a, (i, j)) * unname(b, (j, k))
@test dename(c, (i, k)) ≈ dename(a, (i, j)) * dename(b, (j, k))
d = a + a′
@test unname(d, (i, j)) ≈ unname(a, (i, j)) + unname(a′, (i, j))
@test dename(d, (i, j)) ≈ dename(a, (i, j)) + dename(a′, (i, j))
@test a ≈ aligndims(a, (j, i))
q, r = qr(a, (i,))
@test q * r ≈ a
Expand Down
12 changes: 6 additions & 6 deletions src/abstractitensor.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using MapBroadcast: Mapped
using NamedDimsArrays: NamedDimsArrays, AbstractNamedDimsArray, NamedDimsArray, dename,
using NamedDimsArrays: NamedDimsArrays, AbstractNamedDimsArray, NamedDimsArray, denamed,
dimnames, inds, mapinds

abstract type AbstractITensor <: AbstractNamedDimsArray{Any, Any} end
Expand All @@ -21,7 +21,7 @@ specify_eltype(a::AbstractArray, elt::Type) = a

# TODO: Use `adapt` to reach down into the storage.
function specify_eltype!(a::AbstractITensor, elt::Type)
setdenamed!(a, specify_eltype(dename(a), elt))
setdenamed!(a, specify_eltype(denamed(a), elt))
return a
end

Expand All @@ -30,7 +30,7 @@ allocate!(a::AbstractArray) = a

# TODO: Use `adapt` to reach down into the storage.
function allocate!(a::AbstractITensor)
setdenamed!(a, allocate(dename(a)))
setdenamed!(a, allocate(denamed(a)))
return a
end

Expand Down Expand Up @@ -64,7 +64,7 @@ mutable struct ITensor <: AbstractITensor
end
Base.parent(a::ITensor) = getfield(a, :parent)
NamedDimsArrays.inds(a::ITensor) = getfield(a, :inds)
NamedDimsArrays.dename(a::ITensor) = parent(a)
NamedDimsArrays.denamed(a::ITensor) = parent(a)

function ITensor(parent::AbstractArray, i1::Index, i_rest::Index...)
return ITensor(parent, (i1, i_rest...))
Expand All @@ -80,12 +80,12 @@ setdenamed!(a::ITensor, denamed) = (a.parent = denamed)
function ITensor(elt::Type, I1::Index, I_rest::Index...)
I = (I1, I_rest...)
# TODO: Use `FillArrays.Zeros`.
return ITensor(zeros(elt, length.(dename.(I))...), I)
return ITensor(zeros(elt, length.(denamed.(I))...), I)
end

function ITensor(I1::Index, I_rest::Index...)
I = (I1, I_rest...)
return ITensor(Zeros{UnspecifiedZero}(length.(dename.(I))...), I)
return ITensor(Zeros{UnspecifiedZero}(length.(denamed.(I))...), I)
end

function ITensor()
Expand Down
10 changes: 5 additions & 5 deletions src/index.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Accessors: @set
using NamedDimsArrays: NamedDimsArrays, AbstractName, AbstractNamedInteger,
AbstractNamedUnitRange, AbstractNamedVector, dename, name, randname, setname
AbstractNamedUnitRange, AbstractNamedVector, denamed, name, randname, setname
using Random: Random, AbstractRNG

tagpairstring(pair::Pair) = repr(first(pair)) * "=>" * repr(last(pair))
Expand Down Expand Up @@ -87,7 +87,7 @@ struct IndexVal{Value <: Integer} <: AbstractNamedInteger{Value, IndexName}
end

# Interface
NamedDimsArrays.dename(i::IndexVal) = i.value
NamedDimsArrays.denamed(i::IndexVal) = i.value
NamedDimsArrays.name(i::IndexVal) = i.name

# Constructor
Expand Down Expand Up @@ -136,7 +136,7 @@ noprime(i::Index) = setname(i, noprime(name(i)))

# Interface
# TODO: Overload `Base.parent` instead.
NamedDimsArrays.dename(i::Index) = i.value
NamedDimsArrays.denamed(i::Index) = i.value
NamedDimsArrays.name(i::Index) = i.name

# Constructor
Expand All @@ -156,7 +156,7 @@ function primestring(plev)
end

function Base.show(io::IO, i::Index)
lenstr = "length=$(dename(length(i)))"
lenstr = "length=$(denamed(length(i)))"
idstr = "|id=$(id(i) % 1000)"
tagsstr = !isempty(tags(i)) ? "|$(tagsstring(tags(i)))" : ""
primestr = primestring(plev(i))
Expand All @@ -173,7 +173,7 @@ end

# Interface
# TODO: Overload `Base.parent` instead.
NamedDimsArrays.dename(i::NoncontiguousIndex) = i.value
NamedDimsArrays.denamed(i::NoncontiguousIndex) = i.value
NamedDimsArrays.name(i::NoncontiguousIndex) = i.name

# Constructor
Expand Down
2 changes: 1 addition & 1 deletion test/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ITensorBase = {path = ".."}
Aqua = "0.8.9"
ITensorBase = "0.4"
LinearAlgebra = "1.10"
NamedDimsArrays = "0.11, 0.12"
NamedDimsArrays = "0.13"
SafeTestsets = "0.1"
Suppressor = "0.2"
Test = "1.10"
18 changes: 9 additions & 9 deletions test/test_basics.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using ITensorBase: ITensorBase, ITensor, Index, IndexName, gettag, hastag, plev, prime,
setplev, settag, tags, unsettag
using NamedDimsArrays: dename, inds, mapinds, name, named
using NamedDimsArrays: dename, denamed, inds, mapinds, name, named
using LinearAlgebra: factorize
using Test: @test, @test_broken, @test_throws, @testset

Expand Down Expand Up @@ -47,8 +47,8 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})

i = Index(Base.OneTo(2))
@test length(i) == named(2, name(i))
@test dename(length(i)) == 2
@test dename(i) == 1:2
@test denamed(length(i)) == 2
@test denamed(i) == 1:2
@test plev(i) == 0
@test length(tags(i)) == 0

Expand All @@ -71,12 +71,12 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
i, j = Index.((2, 2))
x = randn(elt, 2, 2)
for a in (ITensor(x, i, j), ITensor(x, (i, j)))
@test dename(a) == x
@test denamed(a) == x
@test plev(i) == 0
@test plev(prime(i)) == 1
@test length(tags(i)) == 0
a′ = mapinds(prime, a)
@test dename(a′) == x
@test denamed(a′) == x
@test issetequal(inds(a′), (prime(i), prime(j)))
end

Expand All @@ -88,23 +88,23 @@ const elts = (Float32, Float64, Complex{Float32}, Complex{Float64})
a′ = Array(a)
@test eltype(a′) === elt
@test a′ isa Matrix{elt}
@test a′ == dename(a)
@test a′ == denamed(a)

i, j = Index.((3, 4))
a = randn(elt, i, j)
for a′ in (Array{Float32}(a), Matrix{Float32}(a))
@test eltype(a′) === Float32
@test a′ isa Matrix{Float32}
@test a′ == Float32.(dename(a))
@test a′ == Float32.(denamed(a))
end

i, j, k = Index.((2, 2, 2))
a = randn(elt, i, j, k)
b = randn(elt, k, i, j)
copyto!(a, b)
@test a == b
@test dename(a) == dename(b, (i, j, k))
@test dename(a) == permutedims(dename(b), (2, 3, 1))
@test denamed(a) == dename(b, (i, j, k))
@test denamed(a) == permutedims(denamed(b), (2, 3, 1))
end
@testset "show" begin
id = rand(UInt64)
Expand Down
Loading