From 63a7062729bb082312b9b7081f8287ff74104386 Mon Sep 17 00:00:00 2001 From: mtfishman Date: Thu, 18 Sep 2025 16:29:41 -0400 Subject: [PATCH 1/2] Improve randname and Index constructors --- Project.toml | 2 ++ src/index.jl | 20 +++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index bc72489..ccb798b 100644 --- a/Project.toml +++ b/Project.toml @@ -10,6 +10,7 @@ FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MapBroadcast = "ebd9b9da-f48d-417c-9660-449667d60261" NamedDimsArrays = "60cbd0c0-df58-4cb7-918c-6f5607b73fde" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" TensorAlgebra = "68bd88dc-f39d-4e12-b2ca-f046b68fcc6a" UnallocatedArrays = "43c9e47c-e622-40fb-bf18-a09fc8c466b6" UnspecifiedTypes = "42b3faec-625b-4613-8ddc-352bf9672b8d" @@ -34,6 +35,7 @@ GradedArrays = "0.4" LinearAlgebra = "1.10" MapBroadcast = "0.1.5" NamedDimsArrays = "0.7" +Random = "1.10" SparseArraysBase = "0.7" TensorAlgebra = "0.3, 0.4" UnallocatedArrays = "0.1.1" diff --git a/src/index.jl b/src/index.jl index 1e280e6..52e7b56 100644 --- a/src/index.jl +++ b/src/index.jl @@ -9,6 +9,7 @@ using NamedDimsArrays: name, randname, setname +using Random: Random, AbstractRNG tagpairstring(pair::Pair) = repr(first(pair)) * "=>" * repr(last(pair)) function tagsstring(tags::Dict{String,String}) @@ -24,10 +25,15 @@ struct IndexName <: AbstractName tags::Dict{String,String} plev::Int end -function IndexName(; id::UInt64=rand(UInt64), tags=Dict{String,String}(), plev::Int=0) +function IndexName( + rng::AbstractRNG=Random.default_rng(); + id::UInt64=rand(rng, UInt64), + tags=Dict{String,String}(), + plev::Int=0, +) return IndexName(id, Dict{String,String}(tags), plev) end -NamedDimsArrays.randname(n::IndexName) = IndexName() +NamedDimsArrays.randname(rng::AbstractRNG, ::Type{<:IndexName}) = IndexName(rng) id(n::IndexName) = n.id tags(n::IndexName) = n.tags @@ -81,8 +87,16 @@ struct Index{T,Value<:AbstractUnitRange{T}} <: AbstractNamedUnitRange{T,Value,In name::IndexName end +function Index{T,Value}( + r::AbstractUnitRange{T}; kwargs... +) where {T,Value<:AbstractUnitRange{T}} + return Index{T,Value}(r, IndexName(; kwargs...)) +end +function Index{T}(r::AbstractUnitRange{T}; kwargs...) where {T} + return Index{T,typeof(r)}(r; kwargs...) +end function Index(r::AbstractUnitRange; kwargs...) - return Index(r, IndexName(; kwargs...)) + return Index{eltype(r)}(r; kwargs...) end function Index(length::Int; kwargs...) From f4c4ce39740d7eea1c2913420c42b2515d3125d3 Mon Sep 17 00:00:00 2001 From: Matt Fishman Date: Thu, 18 Sep 2025 17:27:57 -0400 Subject: [PATCH 2/2] Bump version from 0.2.11 to 0.2.12 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index ccb798b..a764b45 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ITensorBase" uuid = "4795dd04-0d67-49bb-8f44-b89c448a1dc7" authors = ["ITensor developers and contributors"] -version = "0.2.11" +version = "0.2.12" [deps] Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"