@@ -179,73 +179,80 @@ 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 `.
190189 """
191190 _docstr! = """
192- $randfun ! ([rng=default_rng()], t::AbstractTensorMap) -> t
191+ $(randf) !([rng=default_rng()], t::AbstractTensorMap) -> t
193192
194- Fill the tensor `t` with entries generated by `$randfun ! `.
193+ Fill the tensor `t` with entries generated by `$(randf) !`.
195194 """
196195
196+ if randf != :randisometry
197+ randfun = GlobalRef (Random, randf)
198+ randfun! = GlobalRef (Random, Symbol (randf, :! ))
199+ else
200+ randfun = randf
201+ randfun! = Symbol (randf, :! )
202+ end
203+
197204 @eval begin
198- @doc $ _docstr Random. $ randfun (:: Type , :: HomSpace )
199- @doc $ _docstr! Random. $ randfun! (:: Type , :: HomSpace )
205+ @doc $ _docstr $ randfun (:: Type , :: HomSpace )
206+ @doc $ _docstr! $ randfun! (:: Type , :: HomSpace )
200207
201208 # 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)
209+ function $randfun (codomain:: TensorSpace{S} ,
210+ domain:: TensorSpace{S} ) where {S<: IndexSpace }
211+ return $ randfun (codomain ← domain)
205212 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)
213+ function $randfun (:: Type{T} , codomain:: TensorSpace{S} ,
214+ domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
215+ return $ randfun (T, codomain ← domain)
209216 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)
217+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
218+ codomain:: TensorSpace{S} ,
219+ domain:: TensorSpace{S} ) where {T,S<: IndexSpace }
220+ return $ randfun (rng, T, codomain ← domain)
214221 end
215222
216223 # 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))
224+ $ randfun (codomain:: TensorSpace ) = $ randfun (codomain ← one (codomain))
225+ function $randfun (:: Type{T} , codomain:: TensorSpace ) where {T}
226+ return $ randfun (T, codomain ← one (codomain))
220227 end
221- function Random . $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
222- codomain:: TensorSpace ) where {T}
223- return Random. $ randfun (rng, T, codomain ← one (domain))
228+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
229+ codomain:: TensorSpace ) where {T}
230+ return $ randfun (rng, T, codomain ← one (domain))
224231 end
225232
226233 # 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)
234+ $ randfun (V:: TensorMapSpace ) = $ randfun (Float64, V)
235+ function $randfun (rng:: Random.AbstractRNG , V:: TensorMapSpace )
236+ return $ randfun (rng, Float64, V)
230237 end
231238
232239 # filling in default rng
233- function Random . $randfun (:: Type{T} , V:: TensorMapSpace ) where {T}
234- return Random. $ randfun (Random. default_rng (), T, V)
240+ function $randfun (:: Type{T} , V:: TensorMapSpace ) where {T}
241+ return $ randfun (Random. default_rng (), T, V)
235242 end
236- Random. $ randfun! (t:: AbstractTensorMap ) = Random. $ randfun! (Random. default_rng (), t)
243+ $ randfun! (t:: AbstractTensorMap ) = $ randfun! (Random. default_rng (), t)
237244
238245 # implementation
239- function Random . $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
240- V:: TensorMapSpace ) where {T}
246+ function $randfun (rng:: Random.AbstractRNG , :: Type{T} ,
247+ V:: TensorMapSpace ) where {T}
241248 t = TensorMap {T} (undef, V)
242- Random. $ randfun! (rng, t)
249+ $ randfun! (rng, t)
243250 return t
244251 end
245252
246- function Random . $randfun! (rng:: Random.AbstractRNG , t:: AbstractTensorMap )
253+ function $randfun! (rng:: Random.AbstractRNG , t:: AbstractTensorMap )
247254 for (_, b) in blocks (t)
248- Random. $ randfun! (rng, b)
255+ $ randfun! (rng, b)
249256 end
250257 return t
251258 end
0 commit comments