
    
9j                       S SK Jr  S SKrS SKrS SKJr  S r	S;S jr
S rS SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SKJ!r!  S SKJ"r"  S SKJ#r#  S SKJ$r$  S SKJ%r%  S S KJ&r&  S S!KJ'r'  S S"KJ(r(  S S#KJ)r)  S S$KJ*r*  S S%KJ+r+  S S&KJ,r,  S S'KJ-r-  S S(KJ.r.  S S)K/J0r0  S S*K/J1r1  S S+K/J2r2  S S,K/J3r3  S S-K/J4r4  S S.K5J6r6  S S/K5J7r7  S S0K8J9r9  S S1K8J:r:  S S2K8J;r;  S S3K8J<r<  S S4K8J=r=  S S5K8J>r>  S S6K8J?r?  S S6K8J?r@  S S6K8J?rA  S S6K8J?rB  S S7KCJDrD  S S8KCJErE  S S9KCJFrF  S S:KCJGrG  g)<    )annotationsN)runtimec                @    [         R                  R                  U 5      $ )a  Returns random bytes.

.. note:: This function is just a wrapper for :obj:`numpy.random.bytes`.
    The resulting bytes are generated on the host (NumPy), not GPU.

.. seealso:: :meth:`numpy.random.bytes
             <numpy.random.mtrand.RandomState.bytes>`
)_numpyrandombytes)lengths    N/home/wildlama/miniconda3/lib/python3.13/site-packages/cupy/random/__init__.pyr   r   	   s     ==v&&    c                *   SSK Jn  [        R                  (       a9  [	        [        [        R                  " 5       5      SS 5      S:  a  [        S5      e[        U [        5      (       a  U" U 5      $ [        X5      (       a  U $ U" [        U 5      5      $ )a  Construct a new Generator with the default BitGenerator (XORWOW).

Args:
    seed (None, int, array_like[ints], numpy.random.SeedSequence, cupy.random.BitGenerator, cupy.random.Generator, optional):
        A seed to initialize the :class:`cupy.random.BitGenerator`. If an
        ``int`` or ``array_like[ints]`` or None is passed, then it will be
        passed to :class:`numpy.random.SeedSequence` to detive the initial
        :class:`BitGenerator` state. One may also pass in a `SeedSequence
        instance. Adiditionally, when passed :class:`BitGenerator`, it will
        be wrapped by :class:`Generator`. If passed a :class:`Generator`,
        it will be returned unaltered.

Returns:
    Generator: The initialized generator object.
r   )	GeneratorN   i  zRGenerator API not supported in ROCm<4.3, please use the legacy one or update ROCm.)cupy.random._generator_apir   _runtimeis_hipintstrruntimeGetVersionRuntimeError
isinstanceBitGeneratorXORWOW)seedr   s     r
   default_rngr      sz      53s8#=#=#?@!DEK H I 	I$%%	D	$	$VD\""r   c                    U S:X  a;  SS K nUR                  R                  R                  nU[        R                  l        U$ [        S[         SU  S35      e)Nr   r   zmodule 'z' has no attribute '')r   r   _generator_apir   _cupyAttributeError__name__)keycupyr   s      r
   __getattr__r#   2   sQ     k)KK..88	!*
8H:-A#aH
IIr   )beta)binomial)	chisquare)	dirichlet)exponential)f)gamma)	geometric)gumbel)hypergeometric)laplace)logistic)	lognormal)	logseries)multivariate_normal)negative_binomial)noncentral_chisquare)noncentral_f)normal)pareto)poisson)power)rayleigh)standard_cauchy)standard_exponential)standard_gamma)standard_normal)
standard_t)
triangular)uniform)vonmises)wald)weibull)zipf)get_random_state)RandomState)reset_states)r   )set_random_state)permutation)shuffle)choice)multinomial)rand)randint)randn)random_integers)random_sample)r   )r   )MRG32k3a)Philox4x3210)N)H
__future__r   numpyr   r"   r   cupy_backends.cuda.apir   r   r   r   r#   cupy.random._distributionsr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   cupy.random._generatorrF   rG   rH   r   rI   cupy.random._permutationsrJ   rK   cupy.random._samplerL   rM   rN   rO   rP   rQ   rR   r   ranfsamplecupy.random._bit_generatorr   r   rS   rT    r   r
   <module>r`      s    "   6
'#8	J , / 0 0 2 ( , 0 - 5 . / 0 0 : 8 ; 3 - - . , / 6 ; 5 6 1 1 . / + . + 3 . / ' 3 1 - & + $ ' % / - 7 5 7 3 - / 3r   