
    i0                        d dl Zd dlZd dl mZ ddlmZmZ ddlmZ  ej                          ej                  ej                  ej                  cZ	Z
Z G d de      Z G d d	e      Zdd
lmZ ej%                  ej&                  d      Z G d d      Zeej*                  fZ G d dej.                  e      Z G d deej*                        Zd Zej2                  Zd Z ej6                  ej8                        Zej<                  Z ej6                  ej>                        Z ej6                  ej@                        Z!ee_        e!e_         eej*                  _        ee_         ej6                  ejD                        ej*                  _"         ej6                  ejF                        ej*                  _#         eeej*                  ejH                         e`% ej6                  ejL                        e_&         ed        ed        ed        ed        ed        ed        ed        ed        ed        ed        ed        ed        ed d!"        ed#d!"        ed$d%        ed&d%        ed'd%        ed(d%        ed)d%        ed*d%        ed+d%        ed,d%        ed-d./        ed0d./        ed1d%        ed2dd.3        ed4dd.5        ed6dd.5        ed7dd.5        ed8dd.5        ed9dd.5        ed:dd.5        ed;dd.5        ed<ddd.=        ed>dd.5        eejN                  jP                  jR                  dd.5      Z)y)?    N)dim   )tree_flattentree_map)	wrap_typec                       e Zd Zy)DimensionMismatchErrorN__name__
__module____qualname__     P/var/www/html/engine/venv/lib/python3.12/site-packages/functorch/dim/__init__.pyr	   r	          r   r	   c                       e Zd Zy)DimensionBindErrorNr
   r   r   r   r   r      r   r   r   )op_propertiesTc                       e Zd Zed        Zd Z eej                        Z ej                  ej                        Z
 ej                  ej                        Zd Zy)_Tensorc                 :    t        d | j                  D              S )Nc              3   B   K   | ]  }t        |t              s|  y wN)
isinstanceDim).0ds     r   	<genexpr>z_Tensor.dims.<locals>.<genexpr>"   s     C1
1c0BQCs   )tuple_levelsselfs    r   dimsz_Tensor.dims    s    CCCCr   c                     | j                   S r   )ndimr!   s    r   r   z_Tensor.dim$   s    yyr   c                     | j                   | j                  | j                  c}}| dt        fd|D               dt        |j	                                S )Nz
with dims=c              3   L   K   | ]  }t        |t              r|z   n|  y wr   )r   int)r   lr%   s     r   r   z#_Tensor.__repr__.<locals>.<genexpr>.   s%     +bVW
1c8JAHPQ,Q+bs   !$z sizes=)_tensorr    r%   r   size)r"   tensorlevelsr%   s      @r   __repr__z_Tensor.__repr__,   s_    #||T\\499e+b[a+b&b%ccjkpqwq|q|q~k  kA  B  	Br   N)r   r   r   propertyr#   r   classmethod_C__torch_function___instancemethodexpandindexr.   r   r   r   r   r      sb     D D %R%:%:;R		*FBrxx(EBr   r   c                   $    e Zd Zej                  Zy)r   N)r   r   r   object
__format__r   r   r   r   r   4   s     ""Jr   r   c                   h    e Zd Z eej
                        Z ej                  ej                        Z	y)TensorN)
r   r   r   staticmethodr1   Tensor_from_positionalfrom_positionalr3   
Tensor_sumsumr   r   r   r:   r:   :   s(    "2#<#<=O
"

R]]
+Cr   r:   c                 T    t               }t        | ||      j                  ||g|      S r   )r#   stackr5   )tensorsr   new_dimns       r   catrE   ?   s)    A!S!''C'::r   c                     t        t        j                  |       }t        t        | t        j                  t        |g|i |             y r   )getattrtorchr:   setattrr   r1   r3   _wrap)nameargskwargsorigs       r   _defrO   G   s8    5<<&DGT2--eD.J4.J6.JKLr   meanr?   allamaxaminaminmaxanycount_nonzero	logsumexpnanmeannansumprodstd   )keepdim_offsetvarmax)
single_dimminargmaxargminkthvaluemedian	nanmedianmodesortF)reduceargsortunbindchunk)
dim_offsetri   cummax)r`   ri   cummincumprodcumprod_cumsumcumsum_logcumsumexprenorm)rm   r`   ri   softmax)*functorch._C	functorchrH   r   r1   r   r   r   _patch_tensor_classr#   DimListdimlists	Exceptionr	   r    r   dictfromkeys	pointwiser   r:   
TensorLiker   rE   rJ   rO   r3   __getitem__t__getitem__rA   split__setitem__t__setitem__r4   r5   r2   r%   ordernn
functionalrv   r   r   r   <module>r      s     " ,      ''2::r{{ gx	Y 		 	  MM-1148	B B* u||$
#"&&' #,Wbii ,
;
 	M
 "r!!"..1
288$ "r!!"..1
 # "  (b((3 'R''1  	'5<<!;!; <L"""288, V U U V V Y U _  [  Y X V U1  U1  Ut  Ut  X$  X$  ZD ! X$  [T " V  VE  Yu  X$  W5 ) X$u - X$u - Y4 . ZD / X$u - Y4 . ^U 3 X!U ; Y4 .
##++U
Kr   