Ë
    L²j  ã                  ó  — d Z ddlmZ ddl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é   )Ú_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    úR/var/www/html/ia-enhanced/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)r7   r8   s   ` r   Údeco_streamr;   ,   s%   ø€ Ü‡_�_�TÓóó ðð6 €Lr   c                óH   — | � t         j                  j                  | «       y y r#   )r/   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_dtyper/   ÚemptyÚuniform_r   ©ÚsizerB   Úvaluess      r   r   r   R   sJ   € à€|ØˆÜ×'Ñ'Ó)×5Ñ5€EÜ�[‰[˜ UÔ+×4Ñ4Ó6€FÜ˜6°¸±Ô<Ð<r   c                 ó&   — | dk(  rd } t        | «      S )Nr@   )r   ©rK   s    r   r   r   [   s   € Øˆr‚zØˆÜ˜ÓÐr   c                ó´   — |€d}t        j                  «       j                  }t        j                  ||¬«      j                  | |«      }t        ||dk(  ¬«      S r?   rE   )ÚlowÚhighrK   rB   rL   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 )NrA   r@   rC   )r   rF   rG   r/   r   r   rJ   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   rF   rG   r/   rH   Únormal_r   )ÚlocÚscalerK   rB   rL   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$   r/   Ú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 )Nr@   r   rN   rC   )r$   r-   Úlistr/   r   r   Úint)rP   rQ   rK   rL   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)Únumelr/   Úaranger   Úis_sequenceÚ	ones_liker[   r   ÚfinforB   ÚepsÚabsÚsumÚ
ValueErrorÚmultinomialÚreshape)	ÚarK   Ú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        rd   N)NN)NTN)rq   r	   rs   zArrayLike | None)Ú__doc__Ú
__future__r   r9   Úmathr   r/   Ú r   r   Ú_normalizationsr   r	   r
   Ú__all__r   r;   r   r   r   r   r   r   r   r   r   r   r   r@   r   r   ú<module>r      sî   ðñõ #ã Ý ã ç !ß CÑ Cò€ò*òð@ ò'ó ð'ð
 ò=ó ð=òð 
€Ø	€ð ò=ó ð=ð ñ=ó ð=ð ò=ó ð=ð ñó ðð  òBó ðBð Øó"ó ó ñ"r   