@@ -179,73 +179,84 @@ for (fname, felt) in ((:zeros, :zero), (:ones, :one))
179179 end
180180end
181181
182- for randfun in (:rand , :randn , :randexp )
183- randfun! = Symbol (randfun, :! )
182+ for randf in (:rand , :randn , :randexp , :randisometry )
184183 _docstr = """
185- $randfun ([rng=default_rng()], [T=Float64], codomain::ProductSpace{S,N₁},
184+ $randf ([rng=default_rng()], [T=Float64], codomain::ProductSpace{S,N₁},
186185 domain::ProductSpace{S,N₂}) where {S,N₁,N₂,T} -> t
187- $randfun ([rng=default_rng()], [T=Float64], codomain ← domain) -> t
186+ $randf ([rng=default_rng()], [T=Float64], codomain ← domain) -> t
188187
189- Generate a tensor `t` with entries generated by `$randfun `.
188+ Generate a tensor `t` with entries generated by `$randf `.
189+
190+ See also [`($randf )!`](@ref).
190191 """
191192 _docstr! = """
192- $randfun ! ([rng=default_rng()], t::AbstractTensorMap) -> t
193+ $(randf) !([rng=default_rng()], t::AbstractTensorMap) -> t
193194
194- Fill the tensor `t` with entries generated by `$randfun! `.
195+ Fill the tensor `t` with entries generated by `$(randf) !`.
196+
197+ See also [`($randf )`](@ref).
195198 """
196199
200+ if randf != :randisometry
201+ randfun = GlobalRef (Random, randf)
202+ randfun! = GlobalRef (Random, Symbol (randf, :! ))
203+ else
204+ randfun = randf
205+ randfun! = Symbol (randf, :! )
206+ end
207+
197208 @eval begin
198- @doc $ _docstr Random. $ randfun (:: Type , :: HomSpace )
199- @doc $ _docstr! Random. $ randfun! (:: Type , :: HomSpace )
209+ @doc $ _docstr $ randfun (:: Type , :: HomSpace )
210+ @doc $ _docstr! $ randfun! (:: Type , :: HomSpace )
200211
201212 # converting `codomain` and `domain` into `HomSpace`
202- function Random . $randfun (codomain:: TensorSpace{S} ,
203- domain:: TensorSpace{S} ) where {S<: IndexSpace }
204- return Random. $ randfun (codomain ← domain)
213+ function $randfun (codomain:: TensorSpace{S} ,
214+ domain:: TensorSpace{S} ) where {S<: IndexSpace }
215+ return $ randfun (codomain ← domain)
205216 end
206- function Random . $randfun (:: Type{T} , codomain:: TensorSpace{S} ,
207- domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
208- return Random. $ randfun (T, codomain ← domain)
217+ function $randfun (:: Type{T} , codomain:: TensorSpace{S} ,
218+ domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
219+ return $ randfun (T, codomain ← domain)
209220 end
210- function Random . $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
211- codomain:: TensorSpace{S} ,
212- domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
213- return Random. $ randfun (rng, T, codomain ← domain)
221+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
222+ codomain:: TensorSpace{S} ,
223+ domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
224+ return $ randfun (rng, T, codomain ← domain)
214225 end
215226
216227 # accepting single `TensorSpace`
217- Random. $ randfun (codomain:: TensorSpace ) = Random. $ randfun (codomain ← one (codomain))
218- function Random . $randfun (:: Type{T} , codomain:: TensorSpace ) where {T}
219- return Random. $ randfun (T, codomain ← one (codomain))
228+ $ randfun (codomain:: TensorSpace ) = $ randfun (codomain ← one (codomain))
229+ function $randfun (:: Type{T} , codomain:: TensorSpace ) where {T}
230+ return $ randfun (T, codomain ← one (codomain))
220231 end
221- function Random . $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
222- codomain:: TensorSpace ) where {T}
223- return Random. $ randfun (rng, T, codomain ← one (domain))
232+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
233+ codomain:: TensorSpace ) where {T}
234+ return $ randfun (rng, T, codomain ← one (domain))
224235 end
225236
226237 # filling in default eltype
227- Random. $ randfun (V:: TensorMapSpace ) = Random. $ randfun (Float64, V)
228- function Random . $randfun (rng:: Random.AbstractRNG , V:: TensorMapSpace )
229- return Random. $ randfun (rng, Float64, V)
238+ $ randfun (V:: TensorMapSpace ) = $ randfun (Float64, V)
239+ function $randfun (rng:: Random.AbstractRNG , V:: TensorMapSpace )
240+ return $ randfun (rng, Float64, V)
230241 end
231242
232243 # filling in default rng
233- function Random . $randfun (:: Type{T} , V:: TensorMapSpace ) where {T}
234- return Random. $ randfun (Random. default_rng (), T, V)
244+ function $randfun (:: Type{T} , V:: TensorMapSpace ) where {T}
245+ return $ randfun (Random. default_rng (), T, V)
235246 end
236- Random. $ randfun! (t:: AbstractTensorMap ) = Random. $ randfun! (Random. default_rng (), t)
247+ $ randfun! (t:: AbstractTensorMap ) = $ randfun! (Random. default_rng (), t)
237248
238249 # implementation
239- function Random . $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
240- V:: TensorMapSpace ) where {T}
250+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
251+ V:: TensorMapSpace ) where {T}
241252 t = TensorMap {T} (undef, V)
242- Random. $ randfun! (rng, t)
253+ $ randfun! (rng, t)
243254 return t
244255 end
245256
246- function Random . $randfun! (rng:: Random.AbstractRNG , t:: AbstractTensorMap )
257+ function $randfun! (rng:: Random.AbstractRNG , t:: AbstractTensorMap )
247258 for (_, b) in blocks (t)
248- Random. $ randfun! (rng, b)
259+ $ randfun! (rng, b)
249260 end
250261 return t
251262 end
0 commit comments