@@ -33,13 +33,20 @@ function IndexName(
3333 )
3434 return IndexName (id, Dict {String, String} (tags), plev)
3535end
36- NamedDimsArrays. randname (rng:: AbstractRNG , :: Type{<:IndexName} ) = IndexName (rng)
36+ function NamedDimsArrays. randname (rng:: AbstractRNG , n:: IndexName )
37+ return setid (n, rand (rng, UInt64))
38+ end
39+ function NamedDimsArrays. randname (rng:: AbstractRNG , :: Type{<:IndexName} )
40+ return IndexName (rng)
41+ end
3742
38- id (n:: IndexName ) = n . id
39- tags (n:: IndexName ) = n . tags
40- plev (n:: IndexName ) = n . plev
43+ id (n:: IndexName ) = getfield (n, :id )
44+ tags (n:: IndexName ) = getfield (n, : tags)
45+ plev (n:: IndexName ) = getfield (n, : plev)
4146
47+ setid (n:: IndexName , id) = @set n. id = id
4248settags (n:: IndexName , tags) = @set n. tags = tags
49+ setplev (n:: IndexName , plev) = @set n. plev = plev
4350
4451hastag (n:: IndexName , tagname:: String ) = haskey (tags (n), tagname)
4552
@@ -56,10 +63,8 @@ function unsettag(n::IndexName, tagname::String)
5663 return settags (n, newtags)
5764end
5865
59- setprime (n:: IndexName , plev) = @set n. plev = plev
60- prime (n:: IndexName ) = setprime (n, plev (n) + 1 )
61- noprime (n:: IndexName ) = setprime (n, 0 )
62- sim (n:: IndexName ) = randname (n)
66+ prime (n:: IndexName ) = setplev (n, plev (n) + 1 )
67+ noprime (n:: IndexName ) = setplev (n, 0 )
6368
6469function Base. show (io:: IO , i:: IndexName )
6570 idstr = " id=$(id (i) % 1000 ) "
@@ -117,13 +122,9 @@ gettag(i::Index, tagname::String, default) = gettag(name(i), tagname, default)
117122settag (i:: Index , tagname:: String , tag:: String ) = setname (i, settag (name (i), tagname, tag))
118123unsettag (i:: Index , tagname:: String ) = setname (i, unsettag (name (i), tagname))
119124
120- setprime (i:: Index , plev) = setname (i, setprime (name (i), plev))
125+ setplev (i:: Index , plev) = setname (i, setplev (name (i), plev))
121126prime (i:: Index ) = setname (i, prime (name (i)))
122127noprime (i:: Index ) = setname (i, noprime (name (i)))
123- sim (i:: Index ) = setname (i, sim (name (i)))
124-
125- # TODO : Delete this definition?
126- Base. adjoint (i:: Index ) = prime (i)
127128
128129# Interface
129130# TODO : Overload `Base.parent` instead.
0 commit comments