
    [Th6                         S SK r S SKrS SKJr  S SKJr  SSKJr  / r\ " S S5      5       r	 " S S	5      r
S
 r0 rSS jrS rg)    N)	dataclass)Union   )DimListc                   .    \ rS rSr% \\S'   Sr\\S'   Srg)	LevelInfo   levelTalive N)	__name__
__module____qualname____firstlineno__int__annotations__r   bool__static_attributes__r       I/var/www/auris/envauris/lib/python3.13/site-packages/functorch/dim/dim.pyr   r      s    JE4r   r   c                       \ rS rSrSS\S\S\4   4S jjrS r\	S 5       r
\
R                  S\4S j5       r
\	S	 5       rS
 rSrg)Dim   Nnamesizec                 @    Xl         S U l        S U l        Ub  X l        g g N)r   _size_vmap_levelr   )selfr   r   s      r   __init__Dim.__init__   s&    	
I r   c                 r   U R                   b  S[        U R                     l        [        S   R                  (       dy  [        5       [        S   R                  :X  aY  [        5         [        R                  5         [        S   R                  (       d"  [        5       [        S   R                  :X  a  MW  g g g g g )NF)	r   _vmap_active_levels_vmap_stackr   _vmap_levelscurrent_levelr
   _vmap_decrement_nestingpopr    s    r   __del__Dim.__del__   s    ':? 0 017 $**},rBRBXBX/X')  " !$**},rBRBXBX/X*/X* (r   c                 @    U R                   (       d   eU R                  $ r   )is_boundr   r+   s    r   r   Dim.size(   s    }}}zzr   c                 (   SSK Jn  U R                  cT  Xl        [        US5      U l        [        [        5      U l        [        R                  [        U R                  5      5        g U R                  U:w  a  U" SU  SU R                   SU 35      eg )Nr   )DimensionBindErrorsamezDim 'z*' previously bound to a dimension of size z$ cannot bind to a dimension of size )
 r2   r   _vmap_increment_nestingr   lenr'   r&   appendr   )r    r   r2   s      r   r   r0   -   s    (::J6tVDD"<0D	$*:*: ;<ZZ4$vG

|Swx|w}~   r   c                     U R                   S L$ r   )r   r+   s    r   r/   Dim.is_bound<   s    zz%%r   c                     U R                   $ r   r   r+   s    r   __repr__Dim.__repr__@   s    yyr   )r   r   r&   r   r   r   )r   r   r   r   strr   r   r!   r,   propertyr   setterr/   r<   r   r   r   r   r   r      so    S dCi(8 #   
[[   & &r   r   c                 ^    U R                   S:X  d  U R                   S:X  d   eU R                  $ )N
STORE_FAST
STORE_NAME)opnameargval)insts    r   extract_namerG   D   s)    ;;,&$++*EEE;;r   c                   ^^	^
^^^ [         R                  " 5       nUc   eUR                  nUc   eUR                  UR                  pCX44nU[
        ;  a  US-  S-   m	[        [        R                  " UR                  5      5      mTT	   nUR                  S:X  d  UR                  S:X  a-  UR                  mU S:X  a  [        O[        mUU4S j[
        U'   OYUR                  S:X  d   eUR                  n[        U	U4S j[        U5       5       5      m[        T5      U -
  m
U
U4S	 j[
        U'   [
        U   " 5       $ )
N   r   rB   rC   r   c                     > T " TS9$ )Nr;   r   )ctorr   s   r   <lambda>dims.<locals>.<lambda>\   s	    $D/r   UNPACK_SEQUENCEc              3   L   >#    U  H  n[        TTS -   U-      5      v   M     g7f)r   N)rG   ).0ifirstinstructionss     r   	<genexpr>dims.<locals>.<genexpr>`   s)      COa\%!)a-899<s   !$c                  @   > [        U 4S j[        T5       5       5      $ )Nc              3   \   >#    U  H!  u  pUT:  a  [        U5      O[        US 9v   M#     g7f)r;   N)r   r   )rP   rQ   n
first_lists      r   rT   )dims.<locals>.<lambda>.<locals>.<genexpr>d   s-      (,DA j.Ag1o=,s   ),)tuple	enumerate)rY   namess   r   rL   rM   d   s    % (%e,( #r   )inspectcurrentframef_backf_codef_lasti_cachelistdisget_instructionsrD   rE   r   r   r[   ranger6   )listsframecalling_framecodelastikeyunpackndimsrK   rR   rY   rS   r   r]   s           @@@@@@r   dimsrp   L   s     "ELLM$$$&&(=(=%-C
&
QC001E1EFGe$==L(FMM\,I==D1*3'D1F3K==$5555MME CH< E Ue+JF3K #;=r   c                    ^ ^ U 4S jmUc  T $ [        U[        [        45      (       d  [        U4S jU 5       5      $ T" U5      4$ )Nc                 j   > [        U [        5      (       a  U $ [        U [        5      (       d   eTU    $ r   )
isinstancer   r   )a
positionals    r   convert_dim_set.<locals>.convertl   s2    aHa%%%%a= r   c              3   4   >#    U  H  nT" U5      v   M     g 7fr   r   )rP   rt   rv   s     r   rT   _dim_set.<locals>.<genexpr>v   s     -AWQZZs   )rs   r   r   r[   )ru   argrv   s   ` @r   _dim_setr{   k   sC    ! {c3Z((----r   )r   )re   r^   dataclassesr   typingr   r4   r   r'   r   r   rG   rc   rp   r{   r   r   r   <module>r~      sW      !      
* *Z
 
>r   