
    Ph                     R    g Z e G d  d             Z G d d      Zd Zi ZddZd Zy)	c                   &    e Zd ZU eed<   dZeed<   y)	LevelInfolevelTaliveN)__name__
__module____qualname__int__annotations__r   bool     \C:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\functorch/dim/dim.pyr   r   	   s    J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y)DimNnamesizec                 B    || _         d | _        d | _        ||| _        y y N)r   _size_vmap_levelr   )selfr   r   s      r   __init__zDim.__init__   s*    	
DI r   c                 V   | j                   dt        | j                     _        t        d   j                  sqt               t        d   j                  k(  rRt                t        j                          t        d   j                  s t               t        d   j                  k(  rPy y y y y )NF)	r   _vmap_active_levels_vmap_stackr   _vmap_levelscurrent_levelr   _vmap_decrement_nestingpopr   s    r   __del__zDim.__del__   s    ':? 0 017 $**},rBRBXBX/X')  " !$**},rBRBXBX/X*/X* (r   c                 6    | j                   sJ | j                  S r   )is_boundr   r!   s    r   r   zDim.size    s    }}}zzr   c                     | j                   U|| _         t        |d      | _        t        t              | _        t        j                  t        | j                               y | j                   |k7  rt        d|  d| j                    d|       y )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DD"<0D	$*:*: ;<ZZ4$vG

|Swx|w}~   r   c                     | j                   d uS r   )r   r!   s    r   r$   zDim.is_bound2   s    zz%%r   c                     | j                   S r   r   r!   s    r   __repr__zDim.__repr__6   s    yyr   r   )r   r   r   strUnionr	   r   r"   propertyr   setterr$   r.   r   r   r   r   r      so    S dCi(8 #   
[[
 
 
 & &r   r   c                 Z    | 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;;r   c                 h  	
 t         j                         }|J |j                  }|J |j                  |j                  }}||f}|t
        vr|dz  dz   	t        t        j                  |j                              	   }|j                  dk(  s|j                  dk(  r+|j                  | dk(  rt        nt        fdt
        |<   nV|j                  dk(  sJ |j                  }t        	fdt        |      D              t              | z
  

fd	t
        |<   t        |          S )
N      r4   r5       c                              S )Nr-   r   )ctorr   s   r   <lambda>zdims.<locals>.<lambda>R   s	    $D/r   UNPACK_SEQUENCEc              3   F   K   | ]  }t        d z   |z              yw)r<   N)r9   ).0ifirstinstructionss     r   	<genexpr>zdims.<locals>.<genexpr>V   s'      COa\%!)a-89<s   !c                  >    t         fdt              D              S )Nc              3   \   K   | ]#  \  }}|k  rt        |      nt        |        % yw)r-   N)r   DimList)rC   rD   n
first_lists      r   rG   z)dims.<locals>.<lambda>.<locals>.<genexpr>Z   s0      (,DAq j.Ag1o=,s   ),)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   s      "ELLM$$$&&(=(=%D-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                 ~      fd| S t        |t        t        f      st        fd|D              S  |      fS )Nc                 V    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   | ]  } |        y wr   r   )rC   rf   rh   s     r   rG   z_dim_set.<locals>.<genexpr>l   s     -AWQZs   )re   r   r	   rM   )rg   argrh   s   ` @r   _dim_setrk   a   s@    ! {c3Z(----r   N)r=   )r   	dataclassr   r   r9   rU   rb   rk   r   r   r   <module>rm      sF       
( (V
 
>r   