
    sgs                        d dl Z d dlZd dlmZmZ 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j0                  d      ZdZesddlmZ  G d d      Zeej8                  fZ G d de	j<                  e      Z G d dee	j8                        Zd ZerTe	j@                  Z d Z! e	jD                  e	jF                        Z$e	jJ                  Z% e	jD                  e	jL                        Z&n=ej@                  ejB                  cZ Z!ejH                  Z$ejJ                  Z%ejL                  Z& e	jD                  e	jN                        Z(e$e_#        e(e_'        e&ej8                  _&        e&e_&         e	jD                  e	jR                        ej8                  _)         e	jD                  e	jT                        ej8                  _*         eeeej8                  ejV                         e`,er" e	jD                  e	jZ                        e_-        nej\                  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/d01        e!d2d01        e!d3d'        e!d4dd05        e!d6dd07        e!d8dd07        e!d9dd07        e!d:dd07        e!d;dd07        e!d<dd07        e!d=dd07        e!d>ddd0?        e!d@dd07        e ej^                  j`                  jb                  dd07      Z1y)A    N)SequenceUnion)dim   )tree_flattentree_map)	wrap_typec                       e Zd Zy)DimensionMismatchErrorN__name__
__module____qualname__     I/var/www/html/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_propertiesT)	referencec                       e Zd Zed        Zd Zer/ eej                        Z	 ej                  ej                        Znej                  Z	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__8   s_    #||T\\499e+b[a+b&b%ccjkpqwq|q|q~k  kA  B  	Br   N)r   r   r   propertyr&   r   use_cclassmethod_C__torch_function___instancemethodexpandr   indexr1   r   r   r   r   r   $   s|     D D ()>)>?###BII.&99!!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   @   s     ""Jr   r   c                       e Zd Zes eej                        Z eej                        Z	 ej                  ej                        Zy)TensorN)r   r   r   r3   staticmethodr5   Tensor_from_batchedfrom_batchedTensor_from_positionalfrom_positionalr7   
Tensor_sumsumr   r   r   r>   r>   F   s;    #B$:$:;"2#<#<=O
"

R]]
+Cr   r>   c                 T    t               }t        | ||      j                  ||g|      S r   )r&   stackr9   )tensorsr   new_dimns       r   catrK   M   s)    A!S!''C'::r   c                     t        t        j                  |       }t        t        | t        j                  t        |g|i |             y r   )getattrtorchr>   setattrr   r5   r7   _wrap)nameargskwargsorigs       r   _defrU   U   s8    u||T*r11%2Nt2Nv2NOPr   meanrE   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_offsetro   cummax)rf   ro   cummincumprodcumprod_cumsumcumsum_logcumsumexprenorm)rs   rf   ro   softmax)2disinspecttypingr   r   functorch._C	functorchrN   r   r5   r   r   r	   _patch_tensor_classr&   DimListdimlists	Exceptionr   r    r   dictfromkeys	pointwiser3   r   r   r>   
TensorLiker   rK   rP   rU   r7   __getitem__t__getitem__rG   split__setitem__t__setitem__r8   r9   r6   r(   order
positionalnn
functionalr|   r   r   r   <module>r      su   
  "   " ,      ''2::r{{ gx	Y 		 	  MM-1148	B B2 u||$
#"&&' #,Wbii ,;
 	HHEQ &2%%bnn5LHHEBrxx(E//9>>KE4))LOOEOOE "r!!"..1
 # "  (b((3 'R''1  	%%,,(B(B CL&B&&rxx0GM((GM 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   