Ë
    g^(h*  ã                  ó  — d Z ddlmZ ddlZddlmZ ddlmZ ddlZddl	m
Z
mZ ddlmZmZmZ g d	¢Zd
„ Zd„ Zedd„«       Zedd„«       Zd„ ZeZeZedd„«       Zed„ «       Zedd„«       Zed„ «       Zedd„«       Zeeddd„«       «       Zy)z§Wrapper to mimic (parts of) np.random API surface.

NumPy has strict guarantees on reproducibility etc; here we don't give any.

Q: default dtype is float64 in numpy

é    )ÚannotationsN)Úsqrt)ÚOptionalé   )Ú_dtypes_implÚ_util)Úarray_or_scalarÚ	ArrayLikeÚ
normalizer)ÚseedÚrandom_sampleÚsampleÚrandomÚrandÚrandnÚnormalÚchoiceÚrandintÚshuffleÚuniformc                 ó,   — dd l mc m}  | j                  S )Nr   )Útorch._dynamo.configÚ_dynamoÚconfigÚuse_numpy_random_stream)r   s    úQ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_numpy/random.pyÚuse_numpy_randomr   %   s   € ç)Ð)à×)Ñ)Ð)ó    c                óB   ‡ — t        j                  ‰ «      ˆ fd„«       }|S )Nc            	     óº  •‡— t        «       s ‰| i |¤ŽS dd l}ddlmŠ t	        |j
                  ‰j                  «      }t        ˆfd„| D «       «      } |j                  «       D ��ci c].  \  }}|t        |‰«      r|j                  j                  «       n|“Œ0 }}} || i |¤Ž}t        ||j                  «      r ‰t        j                  |«      «      }|S c c}}w )Nr   r   ©Úndarrayc              3  ón   •K  — | ],  }t        |‰«      r|j                  j                  «       n|–— Œ. y ­w©N)Ú
isinstanceÚtensorÚnumpy)Ú.0Úargr"   s     €r   ú	<genexpr>z-deco_stream.<locals>.inner.<locals>.<genexpr>9   s1   øè ø€ ò ØLO¤j°°gÔ&>�—
‘
× Ñ Ô"ÀCÓGñùs   ƒ25)r   r'   Ú_ndarrayr"   Úgetattrr   Ú__name__ÚtupleÚitemsr%   r&   ÚtorchÚ	as_tensor)	ÚargsÚkwdsr'   ÚfÚkeyÚvalÚvaluer"   Úfuncs	          @€r   Úinnerzdeco_stream.<locals>.inner-   sÐ   ù€ äÔ!Ù˜Ð& Ñ&Ð&ãå)ä˜Ÿ™ d§m¡mÓ4ˆAô ó ØSWôó ˆDð
 !%§
¡
£÷á�C˜ð ¬:°c¸7Ô+C�S—Z‘Z×%Ñ%Ô'ÈÑLðˆDñ ñ
 �tÐ$˜tÑ$ˆEô ˜% §¡Ô/Ù¤§¡°Ó 6Ó7�àˆLùós   Á&3C)Ú	functoolsÚwraps)r8   r9   s   ` r   Údeco_streamr<   ,   s%   ø€ Ü‡_�_�TÓóó ðð6 €Lr   c                óH   — | � t         j                  j                  | «       y y r$   )r0   r   Úmanual_seed)r   s    r   r   r   L   s   € àÐÜ�‰× Ñ  Õ&ð r   c                ó°   — | €d} t        j                  «       j                  }t        j                  | |¬«      j                  «       }t        || dk(  ¬«      S ©N© ©Údtype©Úreturn_scalar©r   Údefault_dtypesÚfloat_dtyper0   ÚemptyÚuniform_r	   ©ÚsizerC   Úvaluess      r   r   r   R   sJ   € à€|ØˆÜ×'Ñ'Ó)×5Ñ5€EÜ�[‰[˜ UÔ+×4Ñ4Ó6€FÜ˜6°¸±Ô<Ð<r   c                 ó&   — | dk(  rd } t        | «      S )NrA   )r   ©rL   s    r   r   r   [   s   € Øˆr‚zØˆÜ˜ÓÐr   c                ó´   — |€d}t        j                  «       j                  }t        j                  ||¬«      j                  | |«      }t        ||dk(  ¬«      S r@   rF   )ÚlowÚhighrL   rC   rM   s        r   r   r   e   sN   € à€|ØˆÜ×'Ñ'Ó)×5Ñ5€EÜ�[‰[˜ UÔ+×4Ñ4°S¸$Ó?€FÜ˜6°¸±Ô<Ð<r   c                 óŒ   — t        j                  «       j                  }t        j                  | |¬«      }t        || dk(  ¬«      S )NrB   rA   rD   )r   rG   rH   r0   r   r	   rK   s      r   r   r   n   s7   € ä×'Ñ'Ó)×5Ñ5€EÜ�[‰[˜ UÔ+€FÜ˜6°¸±Ô<Ð<r   c                ó´   — |€d}t        j                  «       j                  }t        j                  ||¬«      j                  | |«      }t        ||dk(  ¬«      S r@   )r   rG   rH   r0   rI   Únormal_r	   )ÚlocÚscalerL   rC   rM   s        r   r   r   u   sN   € à€|ØˆÜ×'Ñ'Ó)×5Ñ5€EÜ�[‰[˜ UÔ+×3Ñ3°C¸Ó?€FÜ˜6°¸±Ô<Ð<r   c                ó  — ddl m} t        | t        j                  «      r| }n$t        | |«      r| j
                  }nt        d«      ‚t        j                  |j                  d   «      }||   }|j                  |«       y )Nr   r!   z'We do not random.shuffle lists in-placer   )
r+   r"   r%   r0   ÚTensorr&   ÚNotImplementedErrorÚrandpermÚshapeÚcopy_)Úxr"   r&   ÚpermÚxps        r   r   r   ~   sd   € õ "ä�!”U—\‘\Ô"Ø‰Ü	�A�wÔ	Ø—‘‰ä!Ð"KÓLÐLä�>‰>˜&Ÿ,™, q™/Ó*€DØ	�‰€BØ
‡L�L�Õr   c                ó¢   — |€d}t        |t        t        f«      s|f}|€d| }} t        j                  | ||¬«      }t        |t        |dk(  ¬«      S )NrA   r   rO   rD   )r%   r.   Úlistr0   r   r	   Úint)rQ   rR   rL   rM   s       r   r   r   �   sT   € à€|ØˆÜ�dœU¤D˜MÔ*ØˆwˆØ€|Ø�sˆTˆÜ�]‰]˜3 ¨4Ô0€FÜ˜6¤3°d¸b±jÔAÐAr   c                ó8  — | j                  «       dk(  rt        j                  | «      } |€d}n&t        j                  |«      rd}|D ]  }||z  }Œ	 n|}|€%t        j
                  | «      | j                  d   z  }t        t        j                  |j                  «      j                  «      }t        |j                  «       dz
  «      |kD  rt        d«      ‚t        j                  |||¬«      }t        j                  |«      r|j                  |«      }| |   }|S )Nr   r   ç      ð?zprobabilities do not sum to 1.)Úreplacement)Únumelr0   Úaranger   Úis_sequenceÚ	ones_liker\   r   ÚfinforC   ÚepsÚabsÚsumÚ
ValueErrorÚmultinomialÚreshape)	ÚarL   ÚreplaceÚpÚnum_elÚelÚatolÚindicesÚsampless	            r   r   r   ›   s   € ð 	‡w�wƒy�A‚~Ü�L‰L˜‹Oˆð
 €|Ø‰Ü	×	Ñ	˜4Ô	 ØˆØò 	ˆBØ�b‰L‰Fñ	ð ˆð 	€yÜ�O‰O˜AÓ §¡¨¡Ñ+ˆô ”—‘˜AŸG™GÓ$×(Ñ(Ó)€DÜ
ˆ1�5‰5‹7�S‰=Ó˜DÒ ÜÐ9Ó:Ð:ô ×Ñ  6°wÔ?€Gä×Ñ˜ÔØ—/‘/ $Ó'ˆà�‰j€Gà€Nr   r$   )g        re   N)NN)NTN)rr   r
   rt   zOptional[ArrayLike])Ú__doc__Ú
__future__r   r:   Úmathr   Útypingr   r0   Ú r   r   Ú_normalizationsr	   r
   r   Ú__all__r   r<   r   r   r   r   r   r   r   r   r   r   r   rA   r   r   ú<module>r�      sñ   ðñõ #ã Ý Ý ã ç !ß CÑ Cò€ò*òð@ ò'ó ð'ð
 ò=ó ð=òð 
€Ø	€ð ò=ó ð=ð ñ=ó ð=ð ò=ó ð=ð ñó ðð  òBó ðBð Øó"ó ó ñ"r   