Skip to content

Commit e37a397

Browse files
committed
replaceinds
1 parent 883a4d7 commit e37a397

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ITensorBase"
22
uuid = "4795dd04-0d67-49bb-8f44-b89c448a1dc7"
33
authors = ["ITensor developers <[email protected]> and contributors"]
4-
version = "0.1.6"
4+
version = "0.1.7"
55

66
[deps]
77
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"

src/ITensorBase.jl

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ using NamedDimsArrays:
1414
NamedDimsArray,
1515
dename,
1616
dimnames,
17+
mapnameddimsindices,
1718
name,
1819
named,
1920
nameddimsindices,
21+
randname,
22+
replacenameddimsindices,
2023
setname,
2124
setnameddimsindices,
2225
unname
@@ -43,7 +46,7 @@ end
4346
tags::TagSet = TagSet()
4447
plev::Int = 0
4548
end
46-
NamedDimsArrays.randname(n::IndexName) = IndexName()
49+
NamedDimsArrays.randname(n::IndexName) = IndexName(; tags=tags(n), plev=plev(n))
4750

4851
id(n::IndexName) = n.id
4952
tags(n::IndexName) = n.tags
@@ -55,6 +58,7 @@ addtags(n::IndexName, ts) = settags(n, tags(n) ∪ tagset(ts))
5558
setprime(n::IndexName, plev) = @set n.plev = plev
5659
prime(n::IndexName) = setprime(n, plev(n) + 1)
5760
noprime(n::IndexName) = setprime(n, 0)
61+
sim(n::IndexName) = randname(n)
5862

5963
function Base.show(io::IO, i::IndexName)
6064
idstr = "id=$(id(i) % 1000)"
@@ -99,6 +103,7 @@ addtags(i::Index, tags) = setname(i, addtags(name(i), tags))
99103
prime(i::Index) = setname(i, prime(name(i)))
100104
Base.adjoint(i::Index) = prime(i)
101105
noprime(i::Index) = setname(i, noprime(name(i)))
106+
sim(i::Index) = setname(i, sim(name(i)))
102107

103108
# Interface
104109
# TODO: Overload `Base.parent` instead.
@@ -256,6 +261,19 @@ end
256261
# `replacenameddimsindices`/`mapnameddimsindices`.
257262
prime(a::AbstractITensor) = setinds(a, prime.(inds(a)))
258263
noprime(a::AbstractITensor) = setinds(a, noprime.(inds(a)))
264+
sim(a::AbstractITensor) = setinds(a, sim.(inds(a)))
265+
266+
function replaceinds(a::AbstractITensor, replacements::Pair...)
267+
return replacenameddimsindices(a, replacements...)
268+
end
269+
270+
function replaceinds(f, a::AbstractITensor)
271+
return replacenameddimsindices(f, a)
272+
end
273+
274+
function mapinds(f, a::AbstractITensor)
275+
return mapnameddimsindices(f, a)
276+
end
259277

260278
using VectorInterface: VectorInterface, scalartype
261279
VectorInterface.scalartype(a::AbstractITensor) = scalartype(unallocatable(a))

0 commit comments

Comments
 (0)