
    Vh5                        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dZesddlmZ  G d d      Zeej.                  fZ G d dej2                  e      Z G d deej.                        Zd ZerTej6                  Zd Z ej:                  ej<                        Zej@                  Z  ej:                  ejB                        Z!n=ej6                  ej8                  cZZej>                  Zej@                  Z ejB                  Z! ej:                  ejD                        Z#ee_        e#e_"        e!ej.                  _!        e!e_!         ej:                  ejH                        ej.                  _$         ej:                  ejJ                        ej.                  _%         eeeej.                  ejL                         e`'er" ej:                  ejP                        e_(        nejR                  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/0        ed1d/0        ed2d&        ed3dd/4        ed5dd/6        ed7dd/6        ed8dd/6        ed9dd/6        ed:dd/6        ed;dd/6        ed<dd/6        ed=ddd/>        ed?dd/6        eejT                  jV                  jX                  dd/6      Z,y)@    N)dim   )tree_flattentree_map)	wrap_typec                       e Zd Zy)DimensionMismatchErrorN__name__
__module____qualname__     F/home/dcms/DCMS/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>6   s%     +bVW
1c8JAHPQ,Q+bs   !$z sizes=)_tensorr!   r&   r    size)r#   tensorlevelsr&   s      @r   __repr__z_Tensor.__repr__4   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   indexr/   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   r1   staticmethodr3   Tensor_from_batchedfrom_batchedTensor_from_positionalfrom_positionalr5   
Tensor_sumsumr   r   r   r<   r<   B   s;    #B$:$:;"2#<#<=O
"

R]]
+Cr   r<   c                 T    t               }t        | ||      j                  ||g|      S r   )r$   stackr7   )tensorsr   new_dimns       r   catrI   I   s)    A!S!''C'::r   c                     t        t        j                  |       }t        t        | t        j                  t        |g|i |             y r   )getattrtorchr<   setattrr   r3   r5   _wrap)nameargskwargsorigs       r   _defrS   Q   s8    u||T*r11%2Nt2Nv2NOPr   meanrC   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_offsetrm   cummax)rd   rm   cummincumprodcumprod_cumsumcumsum_logcumsumexprenorm)rq   rd   rm   softmax)-functorch._C	functorchrL   r   r3   r   r   r   _patch_tensor_classr$   DimListdimlists	Exceptionr	   r    r   dictfromkeys	pointwiser1   r   r   r<   
TensorLiker   rI   rN   rS   r5   __getitem__t__getitem__rE   split__setitem__t__setitem__r6   r7   r4   r&   order
positionalnn
functionalrz   r   r   r   <module>r      sl     " ,      ''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   