a
    d_                     @   s>  d dl m  mZ d dlm  mZ d dlm  mZ	 d dl m
Z
mZ d dlmZ d dlmZ d dlZd dlmZmZmZmZmZ d dlZd7ddZd8dd	Zd9d
dZd:ddee
eeedddZd;eeeedddZd<eeeedddZddeedddZdddeeeeedddZd=ddddeee ee  f ee  dd d!Z!d>dd"eeeed#d$d%Z"d?d&d'Z#d(d)eeed*d+d,Z$d@ej%ed-d.d/ZdAej%ed-d0d1Z&d2d3 Z'eeejd4 ee ee ee ee ee! ee" ee# ee$ eee	jd5 ee&e	jd5 ee'e	j'd6 dS )B    N)	in_dims_t
out_dims_t)	argnums_t)AnyCallableOptionalTupleUnionFc                 C   s8   |d u rd|  }d|  d| d}|r4| dd}|S )Nztorch.func.zZWe've integrated functorch into PyTorch. As the final step of the 
integration, functorch.zi 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/master/func.migrating.html
 )replace)apinew_apireplace_newlineswarning r   d/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/torch/_functorch/deprecated.pyget_warning   s    
r   c                 C   s    t | |dd}tj|dd d S )NT)r      )
stacklevel)r   warningswarn)r   r   r   r   r   r   warn_deprecated$   s    r   c                 C   sN   | j }|d u rtt|}t||}dt|d }t|d}|j| | _d S )Nz
.. warning::

z    )__name__getattr_implr   textwrapindent__doc__)Zfunctorch_apiZtorch_func_apiZnew_api_nameZapi_namer   Zwarning_noter   r   r   
setup_docs)   s    

r   error
chunk_size)funcin_dimsout_dims
randomnessreturnc                C   s   t dd tj| ||||dS )Nvmap
torch.vmapr!   )r   
_vmap_implr(   )r#   r$   r%   r&   r"   r   r   r   r(   3   s    
r(   )r#   argnumshas_auxr'   c                 C   s   t d t| ||S )Ngrad)r   r   r-   r#   r+   r,   r   r   r   r-   =   s    r-   c                 C   s   t d t| ||S )Ngrad_and_value)r   r   r/   r.   r   r   r   r/   A   s    r/   )r,   )r#   r,   c                G   s    t d tj| g|R d|iS )Nvjpr,   )r   r   r0   )r#   r,   primalsr   r   r   r0   E   s    r0   strictr,   r#   r1   Ztangentsr3   r,   c                C   s   t d tj| ||||dS )Njvpr2   )r   r   r5   r4   r   r   r   r5   I   s    r5   r,   r"   _preallocate_and_copy)r#   r+   r"   c                C   s   t d tj| ||||dS )Njacrevr6   )r   r   r8   )r#   r+   r,   r"   r7   r   r   r   r8   M   s    r8   r&   r#   r+   r,   r&   c                C   s   t d tj| |||dS )Njacfwdr9   )r   r   r;   r:   r   r   r   r;   T   s    r;   c                 C   s   t d tj| |dS )Nhessian)r+   )r   r   r<   )r#   r+   r   r   r   r<   X   s    r<   Z	mutationsremove)r#   r>   r'   c                C   s   t d tj| |dS )Nfunctionalizer=   )r   r   r?   )r#   r>   r   r   r   r?   \   s    r?   modelZdisable_autograd_trackingc                 C   s   t dd t| |S )Nmake_functionaltorch.func.functional_call)r   _nn_implrB   r@   r   r   r   rB   `   s    
rB   c                 C   s   t dd t| |S )Nmake_functional_with_buffersrC   )r   rD   rE   r@   r   r   r   rE   d   s    
rE   c                 C   s   t dd t| S )Ncombine_state_for_ensembletorch.func.stack_module_state)r   rD   rF   )modelsr   r   r   rF   h   s    
rF   r)   rC   rG   )NF)N)NN)r   r   r    )r   F)r   F)r   )r   F)r   )F)F)(Ztorch._functorch.vmapZ
_functorchr(   r*   Z!torch._functorch.eager_transformsZeager_transformsr   Z torch._functorch.make_functionalrB   rD   r   r   r   Ztorch.nnnnr   typingr   r   r   r   r	   r   r   r   r   strboolr-   r/   r0   r5   intr8   r;   r<   r?   ModulerE   rF   r   r   r   r   <module>   sr   


   

