§
    ŠŠtj  ã                  óF  — 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dS ) 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    úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_numpy/random.pyÚuse_numpy_randomr   %   s&   € à)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)àÔ)Ð)ó    c                óF   ‡ — t          j        ‰ ¦  «        ˆ fd„¦   «         }|S )Nc                 óh  •‡— t          ¦   «         s ‰| i |¤ŽS dd l}ddlmŠ t	          |j        ‰j        ¦  «        }t          ˆfd„| D ¦   «         ¦  «        } ˆfd„|                     ¦   «         D ¦   «         } || i |¤Ž}t          ||j        ¦  «        r ‰t          j        |¦  «        ¦  «        }|S )Nr   r   ©Úndarrayc              3  ón   •K  — | ]/}t          |‰¦  «        r|j                             ¦   «         n|V — Œ0d S ©N©Ú
isinstanceÚtensorÚnumpy)Ú.0Úargr!   s     €r   ú	<genexpr>z-deco_stream.<locals>.inner.<locals>.<genexpr>9   sV   øè è € ð ð ØLO¥j°°gÑ&>Ô&>ÐG�”
× Ò Ñ"Ô"Ð"ÀCðð ð ð ð ð r   c                ón   •— i | ]1\  }}|t          |‰¦  «        r|j                             ¦   «         n|“Œ2S © r$   )r(   ÚkeyÚvalr!   s      €r   ú
<dictcomp>z.deco_stream.<locals>.inner.<locals>.<dictcomp><   sQ   ø€ ð ð ð á�C˜ð ­:°c¸7Ñ+CÔ+CÐL�S”Z×%Ò%Ñ'Ô'Ð'Èðð ð r   )r   r'   Ú_ndarrayr!   Úgetattrr   Ú__name__ÚtupleÚitemsr%   ÚtorchÚ	as_tensor)ÚargsÚkwdsr'   ÚfÚvaluer!   Úfuncs        @€r   Úinnerzdeco_stream.<locals>.inner-   s  øø€ åÑ!Ô!ð 	Ø�4˜Ð& Ð&Ð&Ð&àˆLˆLˆLà)Ð)Ð)Ð)Ð)Ð)å˜œ d¤mÑ4Ô4ˆAõ ð ð ð ð ØSWðñ ô ñ ô ˆDðð ð ð à $§
¢
¡¤ðñ ô ˆDð
 �A�tÐ$˜tÐ$Ð$ˆEõ ˜% ¤Ñ/Ô/ð 8Ø˜¥¤°Ñ 6Ô 6Ñ7Ô7�àˆLr   )Ú	functoolsÚwraps)r;   r<   s   ` r   Údeco_streamr?   ,   s8   ø€ Ý„_�TÑÔðð ð ð ñ Ôðð6 €Lr   c                óL   — | �!t           j                             | ¦  «         d S d S r#   )r5   r   Úmanual_seed)r   s    r   r   r   L   s,   € àÐÝŒ× Ò  Ñ&Ô&Ð&Ð&Ð&ð Ðr   c                ó´   — | €d} t          j        ¦   «         j        }t          j        | |¬¦  «                             ¦   «         }t          || dk    ¬¦  «        S ©Nr,   ©Údtype©Úreturn_scalar©r   Údefault_dtypesÚfloat_dtyper5   ÚemptyÚuniform_r   ©ÚsizerE   Úvaluess      r   r   r   R   sT   € à€|ØˆÝÔ'Ñ)Ô)Ô5€EÝŒ[˜ UÐ+Ñ+Ô+×4Ò4Ñ6Ô6€FÝ˜6°¸²Ð<Ñ<Ô<Ð<r   c                 ó0   — | dk    rd } t          | ¦  «        S )Nr,   )r   ©rN   s    r   r   r   [   s   € Øˆr‚z€zØˆÝ˜ÑÔÐr   ç        ç      ð?c                ó¸   — |€d}t          j        ¦   «         j        }t          j        ||¬¦  «                             | |¦  «        }t          ||dk    ¬¦  «        S rC   rH   )ÚlowÚhighrN   rE   rO   s        r   r   r   e   sX   € à€|ØˆÝÔ'Ñ)Ô)Ô5€EÝŒ[˜ UÐ+Ñ+Ô+×4Ò4°S¸$Ñ?Ô?€FÝ˜6°¸²Ð<Ñ<Ô<Ð<r   c                 óˆ   — t          j        ¦   «         j        }t          j        | |¬¦  «        }t          || dk    ¬¦  «        S )NrD   r,   rF   )r   rI   rJ   r5   r   r   rM   s      r   r   r   n   s>   € åÔ'Ñ)Ô)Ô5€EÝŒ[˜ UÐ+Ñ+Ô+€FÝ˜6°¸²Ð<Ñ<Ô<Ð<r   c                ó¸   — |€d}t          j        ¦   «         j        }t          j        ||¬¦  «                             | |¦  «        }t          ||dk    ¬¦  «        S rC   )r   rI   rJ   r5   rK   Únormal_r   )ÚlocÚscalerN   rE   rO   s        r   r   r   u   sX   € à€|ØˆÝÔ'Ñ)Ô)Ô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         ¦  «        }||         }| 	                    |¦  «         d S )Nr   r    z'We do not random.shuffle lists in-placer   )
r0   r!   r%   r5   ÚTensorr&   ÚNotImplementedErrorÚrandpermÚshapeÚcopy_)Úxr!   r&   ÚpermÚxps        r   r   r   ~   s“   € ð "Ð!Ð!Ð!Ð!Ð!å�!•U”\Ñ"Ô"ð MØˆˆÝ	�A�wÑ	Ô	ð MØ”ˆˆå!Ð"KÑLÔ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   rQ   rF   )r%   r3   Úlistr5   r   r   Úint)rU   rV   rN   rO   s       r   r   r   �   sf   € à€|ØˆÝ�d�U¥D˜MÑ*Ô*ð ØˆwˆØ€|Ø�sˆTˆÝŒ]˜3 ¨4Ð0Ñ0Ô0€FÝ˜6¥3°d¸b²jÐAÑAÔAÐAr   TÚar	   ÚpúArrayLike | Nonec                ó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          |                     ¦   «         dz
  ¦  «        |k    rt          d¦  «        ‚t          j        |||¬¦  «        }t          j        |¦  «        r|                     |¦  «        }| |         }|S )Nr   r   rS   zprobabilities do not sum to 1.)Úreplacement)Únumelr5   Úaranger   Úis_sequenceÚ	ones_liker`   r   ÚfinforE   ÚepsÚabsÚsumÚ
ValueErrorÚmultinomialÚreshape)	rh   rN   Úreplaceri   Únum_elÚelÚatolÚindicesÚsampless	            r   r   r   ›   s&  € ð 	‡w‚w�y„y�A‚~€~ÝŒL˜‰OŒOˆð
 €|ØˆˆÝ	Ô	˜4Ñ	 Ô	 ð ØˆØð 	ð 	ˆBØ�b‰LˆFˆFð	ð ˆð 	€yÝŒO˜AÑÔ ¤¨¤Ñ+ˆõ •”˜AœGÑ$Ô$Ô(Ñ)Ô)€DÝ
ˆ1�5Š5‰7Œ7�S‰=ÑÔ˜DÒ Ð ÝÐ9Ñ:Ô:Ð:õ Ô  6°wÐ?Ñ?Ô?€GåÔ˜ÑÔð (Ø—/’/ $Ñ'Ô'ˆà�Œj€Gà€Nr   r#   )rR   rS   N)NN)NTN)rh   r	   ri   rj   )Ú__doc__Ú
__future__r   r=   Úmathr   r5   Ú 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Ð CÐ CÐ CÐ CÐ CÐ CÐ CÐ Cðð ð €ð*ð *ð *ðð ð ð@ ð'ð 'ð 'ñ „ð'ð
 ð=ð =ð =ñ „ð=ðð ð ð 
€Ø	€ð ð=ð =ð =ñ „ð=ð ð=ð =ñ „ð=ð ð=ð =ð =ñ „ð=ð ðð ñ „ðð  ðBð Bð Bñ „ðBð Øð"ð "ð "ð "ñ „ñ „ð"ð "ð "r   