§
    ž²Åj  ã                   ón  — d Z ddlZddlZddlmZmZmZmZmZ ddl	m
c mZ ddlm
c mZ ddlm
c mZ ddlmZ ddlmZ ddlmZmZ d/d„Zd0d„Zd1d	„Z	 	 	 d2ddœdededededef
d„Zd3dedededefd„Z	 d3dedededefd„Zddœdedefd„Z dddœdededededef
d„Z!	 d4ddddœdedee"ee"         f         dee"         fd„Z#	 	 d3d
d œdedededefd!„Z$d4d"„Z%d#d$œded%edefd&„Z&d5d'ej'        d(efd)„Z	 d5d'ej'        d(efd*„Z(d+„ Z) eeej        d,¦  «          eeej        ¦  «          eeej        ¦  «          ee ¦  «          ee!¦  «          ee#¦  «          ee$¦  «          ee%¦  «          ee&¦  «          eeej        d-¦  «          ee(ej        d-¦  «          ee)ej)        d.¦  «         dS )6a$  
The APIs in this file are exposed as `functorch.*`. They are thin wrappers
around the torch.func.* APIs that have deprecation warnings -- we're trying
to move people to the torch.func.* equivalents.

NB: We don't use *args, **kwargs in the signatures because that changes the
documentation.
é    N)ÚAnyÚCallableÚOptionalÚTupleÚUnion)Ú	argnums_t)Ú	in_dims_tÚ
out_dims_tFc                 óV   — |€d| › �}d| › d|› d�}|r|                      dd¦  «        }|S )Nztorch.func.z[We've integrated functorch into PyTorch. As the final step of the 
integration, `functorch.zk` is deprecated as of PyTorch 
2.0 and will be deleted in a future version of PyTorch >= 2.3. 
Please use `z™` instead; see the PyTorch 2.0 release notes 
and/or the `torch.func` migration guide for more details 
https://pytorch.org/docs/main/func.migrating.htmlú
Ú )Úreplace)ÚapiÚnew_apiÚreplace_newlinesÚwarnings       úLC:\Projects\Historical\venv\Lib\site-packages\torch/_functorch/deprecated.pyÚget_warningr      sa   € Ø€Ø% Ð%Ð%ˆð	=Ø#&ð	=ð 	=ð ð	=ð 	=ð 	=ð ð ð ,Ø—/’/ $¨Ñ+Ô+ˆØ€Nó    c                 ób   — t          | |d¬¦  «        }t          j        |t          d¬¦  «         d S )NT)r   é   )Ú
stacklevel)r   ÚwarningsÚwarnÚFutureWarning)r   r   r   s      r   Úwarn_deprecatedr   '   s3   € Ý˜#˜w¸Ð>Ñ>Ô>€GÝ„M�'�=°QÐ7Ñ7Ô7Ð7Ð7Ð7r   c                 óì   — | j         }|€t          t          |¦  «        }|j        €d S t	          ||¦  «        }dt          j        |d¦  «        z   }t          j        |d¦  «        }|j        |z   | _        d S )Nz
.. warning::

z    )Ú__name__ÚgetattrÚ_implÚ__doc__r   ÚtextwrapÚindent)Úfunctorch_apiÚtorch_func_apiÚnew_api_nameÚapi_namer   Úwarning_notes         r   Ú
setup_docsr)   ,   sy   € ØÔ%€HØÐÝ ¥¨Ñ1Ô1ˆàÔÐ%Øˆå˜( LÑ1Ô1€GØ'­(¬/¸'À6Ñ*JÔ*JÑJ€LÝ”? <°Ñ8Ô8€LØ*Ô2°\ÑA€MÔÐÐr   Úerror©Ú
chunk_sizeÚfuncÚin_dimsÚout_dimsÚ
randomnessÚreturnc                óT   — t          dd¦  «         t          j        | ||||¬¦  «        S )NÚvmapú
torch.vmapr+   )r   Úapisr3   )r-   r.   r/   r0   r,   s        r   r3   r3   :   s/   € õ �F˜LÑ)Ô)Ð)ÝŒ9�T˜7 H¨jÀZÐPÑPÔPÐPr   ÚargnumsÚhas_auxc                 óL   — t          d¦  «         t          j        | ||¦  «        S )NÚgrad)r   r5   r9   ©r-   r6   r7   s      r   r9   r9   F   s$   € Ý�FÑÔÐÝŒ9�T˜7 GÑ,Ô,Ð,r   c                 óL   — t          d¦  «         t          j        | ||¦  «        S )NÚgrad_and_value)r   r5   r<   r:   s      r   r<   r<   K   s(   € õ Ð$Ñ%Ô%Ð%ÝÔ˜t W¨gÑ6Ô6Ð6r   )r7   c                óJ   — t          d¦  «         t          j        | g|¢R d|iŽS )NÚvjpr7   )r   r    r>   )r-   r7   Úprimalss      r   r>   r>   R   s0   € Ý�EÑÔÐÝŒ9�TÐ5˜GÐ5Ð5Ð5¨WÐ5Ð5Ð5r   ©Ústrictr7   r?   ÚtangentsrA   c                óR   — t          d¦  «         t          j        | ||||¬¦  «        S )NÚjvpr@   )r   r    rD   )r-   r?   rB   rA   r7   s        r   rD   rD   W   s-   € õ �EÑÔÐÝŒ9�T˜7 H°VÀWÐMÑMÔMÐMr   ©r7   r,   Ú_preallocate_and_copyr,   c                óR   — t          d¦  «         t          j        | ||||¬¦  «        S )NÚjacrevrE   )r   r    rH   )r-   r6   r7   r,   rF   s        r   rH   rH   c   s:   € õ �HÑÔÐÝŒ<ØØØØØ3ðñ ô ð r   ©r0   c                óP   — t          d¦  «         t          j        | |||¬¦  «        S )NÚjacfwdrI   )r   r    rK   )r-   r6   r7   r0   s       r   rK   rK   u   s+   € õ �HÑÔÐÝŒ<˜˜g w¸:ÐFÑFÔFÐFr   c                 óL   — t          d¦  «         t          j        | |¬¦  «        S )NÚhessian)r6   )r   r    rM   )r-   r6   s     r   rM   rM   €   s%   € Ý�IÑÔÐÝŒ=˜ wÐ/Ñ/Ô/Ð/r   Ú	mutations©ÚremoverP   c                óL   — t          d¦  «         t          j        | |¬¦  «        S )NÚfunctionalizerO   )r   r    rR   )r-   rP   s     r   rR   rR   …   s&   € Ý�OÑ$Ô$Ð$ÝÔ˜t¨FÐ3Ñ3Ô3Ð3r   ÚmodelÚdisable_autograd_trackingc                 óL   — t          dd¦  «         t          j        | |¦  «        S )NÚmake_functionalútorch.func.functional_call)r   Ú_nn_implrV   ©rS   rT   s     r   rV   rV   Š   s(   € ÝÐ%Ð'CÑDÔDÐDÝÔ# EÐ+DÑEÔEÐEr   c                 óL   — t          dd¦  «         t          j        | |¦  «        S )NÚmake_functional_with_buffersrW   )r   rX   r[   rY   s     r   r[   r[   �   s*   € õ Ð2Ð4PÑQÔQÐQÝÔ0°Ð8QÑRÔRÐRr   c                 óJ   — t          dd¦  «         t          j        | ¦  «        S )NÚcombine_state_for_ensembleútorch.func.stack_module_state)r   rX   r]   )Úmodelss    r   r]   r]   –   s%   € ÝÐ0Ð2QÑRÔRÐRÝÔ.¨vÑ6Ô6Ð6r   r4   rW   r^   )NF)N)NN)r   r   r*   )r   F)r   )F)*r!   r"   r   Útypingr   r   r   r   r   Útorch._functorch.apisÚ
_functorchr5   Ú!torch._functorch.eager_transformsÚeager_transformsr    Ú torch._functorch.make_functionalrV   rX   Útorch.nnÚnnr   Útorch._functorch.vmapr	   r
   r   r   r)   Ústrr3   Úboolr9   r<   r>   rD   ÚintrH   rK   rM   rR   ÚModuler[   r]   © r   r   ú<module>rn      s  ððð ð €€€Ø €€€Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8à $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø Ð Ð Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð 8ð 8ð 8ð 8ð
Bð Bð Bð Bð  ØØð		Qð ð	Qð 	Qð 	QØ
ð	Qàð	Qð ð	Qð ð		Qð ð	Qð 	Qð 	Qð 	Qð-ð -ˆxð - )ð -¸$ð -È8ð -ð -ð -ð -ð =Bð7ð 7Ø
ð7Ø&ð7Ø59ð7àð7ð 7ð 7ð 7ð 38ð 6ð 6ð 6ˆhð 6¨4ð 6ð 6ð 6ð 6ð Øð	Nð 	Nð 	NØ
ð	Nàð	Nð ð	Nð
 ð	Nð ð	Nð 	Nð 	Nð 	Nð '(ðð Ø $Øðð ð Ø
ðà�3˜˜cœ
�?Ô#ðð
 ˜”ðð ð ð ð( ØðGð
 ðGð Gð GØ
ðGàðGð ðGð
 ðGð Gð Gð Gð0ð 0ð 0ð 0ð
 4?ð 4ð 4ð 4˜ð 4¨Sð 4À8ð 4ð 4ð 4ð 4ð
Fð F˜2œ9ð FÀð Fð Fð Fð Fð 9>ðSð SØŒ9ðSØ15ðSð Sð Sð Sð7ð 7ð 7ð
 €
ˆ4�”˜LÑ )Ô )Ð )Ø 
€
ˆ4�”Ñ Ô Ð Ø 
€
ˆ>˜4Ô.Ñ /Ô /Ð /Ø 
€
ˆ3�„€Ø 
€
ˆ3�„€Ø 
€
ˆ6Ñ Ô Ð Ø 
€
ˆ6Ñ Ô Ð Ø 
€
ˆ7Ñ Ô Ð Ø 
€
ˆ=Ñ Ô Ð Ø 
€
ˆ?˜HÔ4Ð6RÑ SÔ SÐ SØ 
€
Ø  (Ô":Ð<Xñô ð ð €
ØØÔ'Ø#ñô ð ð ð r   