
    ȅis                        S r SSKrSSKrSSKJr  SSKJrJrJr  SSK	J
s  Jr  SSKJ
s  Jr  SSKJ
s  Jr  SSKJr  SSKJr  SSKJrJr  S1S jrS2S	 jrS3S
 jr   S4SS.S\S\S\S\S\4
S jjjrS5S\S\S\S\4S jjr S5S\S\S\S\4S jjrSS.S\S\4S jjr SSS.S\S\S\S\S\4
S jjr! S6SSSS.S\S\\"\#\"S4   4   S \\"   4S! jjjr$  S5SS".S\S\S\S\4S# jjjr%S6S$ jr&S%S&.S\S'\S\4S( jjr'S7S)\RP                  S*\4S+ jjr S7S)\RP                  S*\4S, jjr)S- r*\" \\R8                  S.5        \" \\R<                  5        \" \\R>                  5        \" \ 5        \" \!5        \" \$5        \" \%5        \" \&5        \" \'5        \" \\R                   S/5        \" \)\R                   S/5        \" \*\RT                  S05        g)8a$  
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)Callable)AnyOptionalUnion)	argnums_t)	in_dims_t
out_dims_tFc                 Z    Uc  SU  3nSU  SU S3nU(       a  UR                  SS5      nU$ )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       U/home/james-whalen/.local/lib/python3.13/site-packages/torch/_functorch/deprecated.pyget_warningr      sP    u%##&% (i  <	=  //$+N    c                 L    [        XSS9n[        R                  " U[        SS9  g )NT)r      )
stacklevel)r   warningswarnFutureWarning)r   r   r   s      r   warn_deprecatedr   (   s    #>GMM'=Q7r   c                     U R                   nUc  [        [        U5      nUR                  c  g [	        X25      nS[
        R                  " US5      -   n[
        R                  " US5      nUR                  U-   U l        g )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(   -   sp    %%H 1%(1G'(//'6*JJL??<8L*22\AMr   error
chunk_sizefuncin_dimsout_dims
randomnessreturnc                F    [        SS5        [        R                  " XX#US9$ )Nvmap
torch.vmapr*   )r   apisr2   )r,   r-   r.   r/   r+   s        r   r2   r2   ;   s!     FL)99THZPPr   argnumshas_auxc                 F    [        S5        [        R                  " XU5      $ )Ngrad)r   r4   r8   r,   r5   r6   s      r   r8   r8   G   s    F99TG,,r   c                 F    [        S5        [        R                  " XU5      $ )Ngrad_and_value)r   r4   r;   r9   s      r   r;   r;   L   s      $%tg66r   )r6   c                L    [        S5        [        R                  " U /UQ7SU06$ )Nvjpr6   )r   r   r=   )r,   r6   primalss      r   r=   r=   S   s#    E99T5G5W55r   strictr6   r>   tangentsr@   c                D    [        S5        [        R                  " XX#US9$ )Njvpr?   )r   r   rC   )r,   r>   rA   r@   r6   s        r   rC   rC   X   s     E99THWMMr   r6   r+   _preallocate_and_copy.r+   c                H    [        S5        [        R                  " U UUUUS9$ )NjacrevrD   )r   r   rG   )r,   r5   r6   r+   rE   s        r   rG   rG   d   s,     H<<3 r   r/   c                B    [        S5        [        R                  " XX#S9$ )NjacfwdrH   )r   r   rJ   )r,   r5   r6   r/   s       r   rJ   rJ   v   s     H<<wFFr   c                 @    [        S5        [        R                  " XS9$ )Nhessian)r5   )r   r   rL   )r,   r5   s     r   rL   rL      s    I==//r   	mutationsremoverO   c                @    [        S5        [        R                  " XS9$ )NfunctionalizerN   )r   r   rQ   )r,   rO   s     r   rQ   rQ      s    O$t33r   modeldisable_autograd_trackingc                 F    [        SS5        [        R                  " X5      $ )Nmake_functionaltorch.func.functional_call)r   _nn_implrU   rR   rS   s     r   rU   rU      s    %'CD##EEEr   c                 F    [        SS5        [        R                  " X5      $ )Nmake_functional_with_buffersrV   )r   rW   rZ   rX   s     r   rZ   rZ      s!     24PQ00RRr   c                 F    [        SS5        [        R                  " U 5      $ )Ncombine_state_for_ensembletorch.func.stack_module_state)r   rW   r\   )modelss    r   r\   r\      s    02QR..v66r   r3   rV   r]   )NF)N)NN)r   r   r)   )r   F)r   )F)+r    r!   r   collections.abcr   typingr   r   r   torch._functorch.apis
_functorchr4   !torch._functorch.eager_transformseager_transformsr    torch._functorch.make_functionalrU   rW   torch.nnnnr   torch._functorch.vmapr   r	   r   r   r(   strr2   boolr8   r;   r=   rC   inttuplerG   rJ   rL   rQ   ModulerZ   r\    r   r   <module>ro      s     $ ' ' $ $ 1 1 3 3  7 7 8
B  		Q 	Q
	Q	Q 	Q 		Q 	Q-x -) -$ -8 - =B7
7&75977 38 6h 64 6 	N
	N	N 	N
 	N 	N ,-  $
3c3h'(
 ( G
 G
GG G
 G0
 4? 4 4S 48 4
F299 F F 9>S99S15S7
 4L ) 
4  
>4.. / 
3 
3 
6  
6  
7  
=  
?H446R S 
 (":":<X ''#r   