
    N jK                        % S r SSKJr  SSKJr  SSKrSSKJrJ	r
JrJr  \(       a  SSKrSS jr          SS jr	SS jrSS	 jrS
qS\S'   SqS\S'   SqS\S'   SS jrg)z
This module contains pre-dispatch wrappers for functorch operations
that enable proper tracing in PT2 non-strict export/compile fx graph.
    )annotations)TYPE_CHECKINGN)_add_batch_dim_remove_batch_dim_vmap_decrement_nesting_vmap_increment_nestingc                    SSK Jn  U" 5       nUS:  a  U R                  U-   OUnU(       a'  [        R                  R                  [        U 4XU5      $ [        XU5      nU$ )zb
Thin wrapper around torch._C._add_batch_dim that is used to proxy in
PT2 export/compile fx graph
r   +_maybe_find_pre_dispatch_tf_mode_for_export)torch._export.utilsr   ndimtorch	overrideshandle_torch_functionr   _add_batch_dim_impl)self	batch_dimlevelr   moderess         m/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/torch/_functorch/predispatch.pyr   r      s^    
 P68D)2Q		I%II44TGTe
 	
 du
5CJ    c                    SSK Jn  U" 5       nU(       a'  [        R                  R	                  [
        U 4XX#5      $ [        XX#5      nU$ )ze
Thin wrapper around torch._C._remove_batch_dim that is used to proxy in
PT2 export/compile fx graph
r   r
   )r   r   r   r   r   r   _remove_batch_dim_impl)r   r   
batch_sizeout_dimr   r   r   s          r   r   r   0   sH     P68D44wZ
 	
 !j
BCJr   c                    SSK Jn  U" 5       nU(       a&  [        R                  R	                  [
        U 4X5      $ [        X5      nU$ )d
Thin wrapper around torch._C._vmap_increment_nesting that is used
to proxy in export/compile graph
r   r
   )r   r   r   r   r   r   _vmap_increment_nesting_impl)r   
randomnessr   r   r   s        r   r   r   D   sD    
 P68D44#j]J
 	
 'z
>CJr   c                     SSK Jn   U " 5       nU(       a$  [        R                  R	                  [
        S5      $ [        5       $ )r   r   r
    )r   r   r   r   r   r   _vmap_decrement_nesting_impl)r   r   s     r   r   r   U   s;    
 P68D44#
 	
 ())r   FboolDECOMPOSITIONS_LOADEDzthreading.Lock | NoneDECOMPOSITIONS_LOCKztorch.library.Library | NoneVMAP_DECOMPOSITIONS_LIBc                 4  ^ SSK Jn   U " 5       nU(       a$  [        R                  R	                  [
        S5      $ [        (       a  g[        c  SSKnUR                  " 5       q[           [        (       a
   SSS5        gSSK
nUR                  R                  SS5      S:X  a  OSq SSS5        g[        R                  R                  SS	S
5      qSSKJm  SU4S jjnU" [        R$                  R&                  R(                  R*                  5        U" [        R$                  R&                  R,                  R*                  5        U" [        R$                  R&                  R.                  R*                  5        U" [        R$                  R&                  R0                  R*                  5        U" [        R$                  R&                  R2                  R*                  5        U" [        R$                  R&                  R4                  R*                  5        U" [        R$                  R&                  R6                  R*                  5        U" [        R$                  R&                  R8                  R*                  5        SqSSS5        g! , (       d  f       g= f)z@
Lazy loading of vmap decompositions with pre-dispatch support.
r   r
   r"   NPYTORCH_JIT1TatenIMPLFuncTorchBatched)decomposition_tablec                   > [         c  [        S5      eU T;   a  [         R                  U TU    5        g [        SU  35      e)Nz(VMAP_DECOMPOSITIONS_LIB must not be Nonez!could not find decomposition for )r'   AssertionErrorimplRuntimeError)decompr.   s    r   #_register_python_decomposition_vmapElazy_load_decompositions.<locals>._register_python_decomposition_vmap   sG    &.$%OPP,,',,V5H5PQ"%Fvh#OPPr   )r3   ztorch._ops.OpOverloadreturnNone)r   r   r   r   r   lazy_load_decompositionsr%   r&   	threadingLockosenvirongetlibraryLibraryr'   torch._decompr.   opsr+   mse_loss_backwarddefaultsmooth_l1_loss_backwardhuber_loss_backwardnll_loss_forwardnll_loss2d_forwardnll_loss_backwardnll_loss2d_backwardaddr)r   r   r9   r;   r4   r.   s        @r   r8   r8   l   s    P68D445MrRR  "'nn.	   
	 	

}c2c9i$(! 
	 #(--"7"7F.#
 	6	Q 	,EIINN,L,L,T,TU+IINN22::	
 	,EIINN,N,N,V,VW+EIINN,K,K,S,ST+EIINN,M,M,U,UV+EIINN,L,L,T,TU+EIINN,N,N,V,VW+EIINN,?,?,G,GH $O 
		s   (J	>(J	/GJ		
J)r   torch.Tensorr   intr   rL   r6   rK   )
r   rK   r   rL   r   rL   r   rL   r6   rK   )r   rL   r    strr6   rL   )r6   rL   )r6   r7   )__doc__
__future__r   typingr   r   torch._C._functorchr   r   r   r   r   r#   r   r   r9   r%   __annotations__r&   r'   r8   r"   r   r   <module>rS      s   
 #     &
"03>A("*$ $ t #-1 * 18< 5 <=%r   