
    #hf                     f    g Z e G d  d                      Z G d d          Zd Zi Zd	dZd ZdS )
c                   (    e Zd ZU eed<   dZeed<   dS )	LevelInfolevelTaliveN)__name__
__module____qualname__int__annotations__r   bool     Q/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/functorch/dim/dim.pyr   r   	   s+         JJJE4r   r   c                       e Zd Zd
dededef         fdZd Zed             Z	e	j
        defd            Z	ed             Zd	 ZdS )DimNnamesizec                 F    || _         d | _        d | _        |	|| _        d S d S N)r   _size_vmap_levelr   )selfr   r   s      r   __init__zDim.__init__   s1    	
DIII r   c                 p   | j         dt          | j                 _        t          d         j        st                      t          d         j        k    rct                       t                                           t          d         j        s(t                      t          d         j        k    [d S d S d S d S d S )NF)	r   _vmap_active_levels_vmap_stackr   _vmap_levelscurrent_levelr   _vmap_decrement_nestingpopr   s    r   __del__zDim.__del__   s    ':? 017 $*#/<,rBRBX/X/X')))  """ !$*#/<,rBRBX/X/X/X/X ('# # # #/X/Xr   c                 "    | j         sJ | j        S r   )is_boundr   r!   s    r   r   zDim.size    s    }}zr   c                 *   | j         c|| _         t          |d          | _        t          t                    | _        t                              t          | j                             d S | j         |k    rt          d|  d| j          d|           d S )NsamezDim 'z*' previously bound to a dimension of size z$ cannot bind to a dimension of size )	r   _vmap_increment_nestingr   lenr   r   appendr   DimensionBindError)r   r   s     r   r   zDim.size%   s    :DJ6tVDDD"<00D	$*: ; ;<<<<<Z4$~~~
~~x|~~    r   c                     | j         d uS r   )r   r!   s    r   r$   zDim.is_bound2   s    z%%r   c                     | j         S r   r   r!   s    r   __repr__zDim.__repr__6   s
    yr   r   )r   r   r   strUnionr	   r   r"   propertyr   setterr$   r.   r   r   r   r   r      s         S dCi(8    # # #   X 
[
 
 
 
 [
 & & X&    r   r   c                 @    | j         dk    s| j         dk    sJ | j        S )N
STORE_FAST
STORE_NAME)opnameargval)insts    r   extract_namer9   :   s)    ;,&&$+*E*E*EE;r       c                 n  	
 t                                           }|J |j        }|J |j        |j        }}||f}|t
          vr|dz  dz   	t          t                              |j                            	         }|j	        dk    s|j	        dk    r*|j
        | dk    rt          nt          fdt
          |<   n]|j	        dk    sJ |j
        }t          	fdt          |          D                       t                    | z
  

fd	t
          |<   t          |                     S )
N      r4   r5   r:   c                                  S )Nr-   r   )ctorr   s   r   <lambda>zdims.<locals>.<lambda>R   s    $$D/// r   UNPACK_SEQUENCEc              3   N   K   | ]}t          d z   |z                      V   dS )r=   N)r9   ).0ifirstinstructionss     r   	<genexpr>zdims.<locals>.<genexpr>V   sI        >?\%!)a-899     r   c                  T    t           fdt                    D                       S )Nc              3   h   K   | ],\  }}|k     rt          |          nt          |           V  -dS )r-   N)r   DimList)rC   rD   n
first_lists      r   rG   z)dims.<locals>.<lambda>.<locals>.<genexpr>Z   sU       ( (Aq j..Ag1ooo( ( ( ( ( (r   )tuple	enumerate)rL   namess   r   r@   zdims.<locals>.<lambda>Z   s?    % ( ( ( (%e,,( ( ( # # r   )inspectcurrentframef_backf_codef_lasti_cachelistdisget_instructionsr6   r7   r   rJ   rM   ranger(   )listsframecalling_framecodelastikeyunpackndimsr?   rE   rL   rF   r   rO   s           @@@@@@r   dimsrb   B   st     ""ELM$$$&(=%D-C
&
QC001EFFGGe$=L((FM\,I,I=D1**33'D11111F3KK=$55555ME     CH<<    E Ue+J    F3K #;==r   c                       fd| S t          |t          t          f          st          fd|D                       S  |          fS )Nc                 p    t          | t                    r| S t          | t                    sJ |          S r   )
isinstancer   r	   )a
positionals    r   convertz_dim_set.<locals>.convertb   s:    a 	!Ha%%%%%a= r   c              3   .   K   | ]} |          V  d S r   r   )rC   rf   rh   s     r   rG   z_dim_set.<locals>.<genexpr>l   s+      --AWWQZZ------r   )re   r   r	   rM   )rg   argrh   s   ` @r   _dim_setrk   a   ss    ! ! ! ! ! {c3Z(( ----------r   N)r:   )r   	dataclassr   r   r9   rU   rb   rk   r   r   r   <module>rm      s            
( ( ( ( ( ( ( (V  
 
   >    r   