
    sg@                       d dl mZ d dlZd dlZd dlZd dlmZ d dlZddlm	Z	m
Z
mZmZmZ ddlmZmZmZmZ dZg dZdd	d
ddddddd	Z G d d      ZdMdZi ddddddddddddddddddddddd dd!dd"dd#dd$dd%ddddddddddddd&Zd'dd(d)d*d+d,d-d.Zdd/d0d1d2d3d4d5d6d7d8d9dd:Zd; Z G d< d=      Z e       e_         G d> d?      Zd@ ZdMdAdBdCd ddDdEZ dNddFdGZ!dMddFdHZ"dI Z#dJ Z$dOdKZ%dL Z&y)P    )annotationsN)Sequence   )_dtypes_dtypes_impl_funcs_ufuncs_util)	ArrayLikenormalize_array_like
normalizerNotImplementedType)C_CONTIGUOUSF_CONTIGUOUSOWNDATA	WRITEABLEALIGNEDWRITEBACKIFCOPYFNCFORCBEHAVEDCARRAYFARRAYr   r   r   r   r   r   r   r   r   )	CFOWAXBCAFAc                  :     e Zd ZddZddZd Z fdZd Z xZS )Flagsc                V    t        d |j                         D              sJ || _        y )Nc              3  ,   K   | ]  }|t         v   y wN)FLAGS).0ks     H/var/www/html/venv/lib/python3.12/site-packages/torch/_numpy/_ndarray.py	<genexpr>z!Flags.__init__.<locals>.<genexpr>4   s     <!1:<s   )allkeys_flag_to_value)selfflag_to_values     r+   __init__zFlags.__init__3   s'    <}'9'9';<<<<+    c                    |j                         r)|j                         t        v r| |j                            S t        d| d      )NzNo flag attribute '')islowerupperr(   AttributeError)r0   attrs     r+   __getattr__zFlags.__getattr__7   s>    <<>djjle3

%% #6tfA!>??r3   c                    |t         j                         v r	t         |   }|t        v r	 | j                  |   S t	        d| d      # t        $ r}t        d|      |d }~ww xY w)Nzkey=No flag key 'r5   )SHORTHAND_TO_FLAGSr.   r(   r/   KeyErrorNotImplementedError)r0   keyes      r+   __getitem__zFlags.__getitem__=   sv    $))++$S)C%<<**3// ]3%q122  <)TSF)4!;<s   A 	A$AA$c                    |j                         r*|j                         t        v r|| |j                         <   y t        |   ||       y r'   )r6   r7   r(   super__setattr__)r0   r9   value	__class__s      r+   rE   zFlags.__setattr__H   s8    <<>djjle3!&DGe,r3   c                r    |t         v s|t        j                         v rt        d      t	        d| d      )Nz"Modifying flags is not implementedr<   r5   )r(   r=   r.   r?   r>   )r0   r@   rF   s      r+   __setitem__zFlags.__setitem__N   s:    %<3"4"9"9";;%&JKK]3%q122r3   )r1   dict)r9   str)	__name__
__module____qualname__r2   r:   rB   rE   rI   __classcell__)rG   s   @r+   r$   r$   2   s    ,@	3-3r3   r$   c                T     |xs  j                   } fd}||_         d| |_        |S )Nc                      | i |S r'    )argskwargsfns     r+   fzcreate_method.<locals>.fX   s    4"6""r3   zndarray.)rL   rN   )rU   namerV   s   `  r+   create_methodrX   U   s2    2;;D# AJv&ANHr3   clipnonzerorepeatroundsqueezeswapaxesraveldiagonaldottraceargsortsearchsortedargmaxargminanyr-   max)minptpsumprodmeanvarstdcumsumcumprodtakechooseabsolutepositivenegativegreaterlessgreater_equal
less_equal)absinvertposneggtltgelesubtractmultiplydividefloor_dividepower	remainderbitwise_and
bitwise_orbitwise_xor
left_shiftright_shift)addsubmultruedivfloordivpowmodandorxorlshiftrshiftmatmulc                T   t        | t        j                        rk| j                  t        j                  t        j
                  t        j                  t        j                  fv r| j                  t        j                        S | S t        | t              rt        d | D              S | S )Nc              3  2   K   | ]  }t        |        y wr'   )_upcast_int_indices)r)   is     r+   r,   z&_upcast_int_indices.<locals>.<genexpr>   s     ;(+;   )
isinstancetorchTensordtypeint8int16int32uint8toint64tuple)indexs    r+   r   r      sq    %&;;5::u{{EKKMM88EKK(( L 
E5	!;U;;;Lr3   c                      e Zd Zy)_UnspecifiedN)rL   rM   rN   rR   r3   r+   r   r      s    r3   r   c                     e Zd Zd:dZej                         D ]#  \  ZZ ee	exs e      Z
 ee
e       e       e<   %  eej                  d      Z eej                        Zej                         D ])  \  ZZ eeexs e      Z
de dZ ee
e       e       e<   + ej                         D ]]  \  ZZ eeexs e      Z
de dZ ee
e       e       e<   de dZ ee
fde       e       e<   de dZ ee
fde       e       e<   _  eej*                  d	      Z ed
 d      Z[[[[[
[ed        Zed        Zed        Zed        Zed        Zed        Zed        Zed        Z ed        Z!ed        Z"ed        Z#e#jH                  d        Z#ed        Z%e%jH                  d        Z%d;dZ&e'd<d=d       Z(e'd<d=d       Z)ddd Z*e+jX                  e+jX                  fd!Z-e'd>d"       Z.d# Z/d$ Z0d% Z1 ee1      Z2d& Z3d' Z4d( Z5d) Z6d* Z7d+ Z8d, Z9d- Z:d. Z;d/ Z<d0 Z=dd1d2Z>d?d3Z?d4 Z@d5 ZAd6 ZBe	j                  ZCe	j                  ZDdd7d8ZEd9 ZFy)@ndarrayNc                    |t        j                         | _        y t        |t         j                        r|| _        y t	        d      )NzSndarray constructor is not recommended; prefereither array(...) or zeros/empty(...))r   r   tensorr   
ValueError)r0   ts     r+   r2   zndarray.__init__   s;    9,,.DK5<<(DK8 r3   conj____rc                     |||       S r'   rR   r0   otherrU   s      r+   <lambda>zndarray.<lambda>   s    5$ r3   __ic                     || ||       S )N)outrR   r   s      r+   r   zndarray.<lambda>   s    r$4'@ r3   
__divmod__c                .    t        j                  ||       S r'   )r	   divmodr0   r   s     r+   r   zndarray.<lambda>   s    GNN5$7 r3   __rdivmod__c                @    t        | j                  j                        S r'   )r   r   shaper0   s    r+   r   zndarray.shape   s    T[[&&''r3   c                6    | j                   j                         S r'   )r   numelr   s    r+   sizezndarray.size   s    {{  ""r3   c                .    | j                   j                  S r'   )r   ndimr   s    r+   r   zndarray.ndim   s    {{r3   c                T    t        j                  | j                  j                        S r'   )r   r   r   r   s    r+   r   zndarray.dtype   s    }}T[[..//r3   c                    | j                   j                         t        fd| j                   j                         D              S )Nc              3  (   K   | ]	  }|z    y wr'   rR   )r)   strideelsizes     r+   r,   z"ndarray.strides.<locals>.<genexpr>   s     HVf_Hs   )r   element_sizer   r   )r0   r   s    @r+   strideszndarray.strides   s3    ))+H4;;3E3E3GHHHr3   c                6    | j                   j                         S r'   )r   r   r   s    r+   itemsizezndarray.itemsize   s    {{''))r3   c                    t        | j                  j                         | j                  j                  j                         | j                  j                  d u dd      S )NT)r   r   r   r   )r$   r   is_contiguousT_baser   s    r+   flagszndarray.flags   sO      $ 9 9 ; $ ; ; =;;,,4!	
 	
r3   c                6    | j                   j                         S r'   )r   data_ptrr   s    r+   datazndarray.data  s    {{##%%r3   c                R    | j                   j                         j                         S r'   )r   storagenbytesr   s    r+   r   zndarray.nbytes  s    {{""$++--r3   c                "    | j                         S r'   )	transposer   s    r+   r   z	ndarray.T  s    ~~r3   c                ,    t        j                  |       S r'   )r   realr   s    r+   r   zndarray.real      {{4  r3   c                L    t        |      j                  | j                  _        y r'   )asarrayr   r   r0   rF   s     r+   r   zndarray.real      "5>00r3   c                ,    t        j                  |       S r'   )r   imagr   s    r+   r   zndarray.imag   r   r3   c                L    t        |      j                  | j                  _        y r'   )r   r   r   r   s     r+   r   zndarray.imag$  r   r3   c                    |dk7  rt        d| d      |dk7  rt        d| d      |st        d| d      |st        d| d      t        j                  |      j                  }| j                  j                  |      }t        |      S )NKzastype(..., order= is not implemented.unsafezastype(..., casting=zastype(..., subok=zastype(..., copy=)r?   r   r   torch_dtyper   r   r   )r0   r   ordercastingsubokcopyr   r   s           r+   astypezndarray.astype)  s    C<%(:5'AU&VWWh%&wi/CD  %(:5'AU&VWW%(9$?S&TUUmmE*66KKNN;'qzr3   r   c                "    | j                         S r'   )cloner0   r   s     r+   r   zndarray.copy8  s    zz|r3   c                ,    t        j                  |       S r'   )r   flattenr   s     r+   r   zndarray.flatten<  s    }}T""r3   F)refcheckc                  |rt        d| d      |dv ry t        |      dk(  r|d   }t        |t              r|f}t	        j
                  d |D              rt        d      t        j                  |      | j                  j                         }}| j                  j                  |       ||k\  rJ| j                  j                         sJ | j                  j                         }||d  j                          y y )Nzresize(..., refcheck=r   )rR   r'   r   r   c              3  &   K   | ]	  }|d k    yw)r   NrR   r)   xs     r+   r,   z!ndarray.resize.<locals>.<genexpr>O  s     1!A1s   z0all elements of `new_shape` must be non-negative)r?   lenr   intbuiltinsrg   r   mathrl   r   r   resize_r   r   zero_)r0   r   	new_shape	new_numel	old_numelbs         r+   resizezndarray.resize@  s    %'z1EF  % y>Q!!Ii%"I<<1y11OPP#yy3T[[5F5F5H9	I&	!;;,,...##%AijM!	 "r3   c                
   |t         j                  u r| j                  }|t         j                  urt        d| d      t	        j                  |      j
                  }| j                  j                  |      }t        |      S )Nzview(..., type=r   )	r   unspecifiedr   r?   r   r   r   viewr   )r0   r   typer   tviews        r+   r  zndarray.view\  sn    L,,,JJE|///%v=Q&RSSmmE*66  -u~r3   c                :    | j                   j                  |       y r'   )r   fill_r   s     r+   fillzndarray.fille  s     	% r3   c                6    | j                   j                         S r'   )r   tolistr   s    r+   r  zndarray.tolistk  s    {{!!##r3   c                D    d | j                   j                         D        S )Nc              3  2   K   | ]  }t        |        y wr'   )r   r   s     r+   r,   z#ndarray.__iter__.<locals>.<genexpr>o  s     ;q
;r   )r   __iter__r   s    r+   r  zndarray.__iter__n  s    ;DKK$8$8$:;;r3   c                l    t        | j                        j                  dd      j                  dd      S )Nr   ztorch.ndarrayzdtype=torch.zdtype=)rK   r   replacer   s    r+   __str__zndarray.__str__q  s+    WX/W^X.	
r3   c                    	 t        j                  | |      S # t        t        f$ r4 t	        j
                  | j                  dt              }t        |      cY S w xY w)NF)
fill_valuer   )	r	   equalRuntimeError	TypeErrorr   fullr   boolr   )r0   r   falsys      r+   __eq__zndarray.__eq__z  sL    	"==u--i( 	"JJtzze4HE5>!	"s    A AAc                    | |k(   S r'   rR   r   s     r+   __ne__zndarray.__ne__  s    r3   c                    	 t        j                  | j                  j                               S # t        $ r}t        d      |d }~ww xY w)Nz=only integer scalar arrays can be converted to a scalar index)operatorr   r   item	Exceptionr  )r0   excs     r+   	__index__zndarray.__index__  sF    	>>$++"2"2"455 	O	s   ,/ 	A	AA	c                ,    t        | j                        S r'   )r   r   r   s    r+   __bool__zndarray.__bool__  s    DKK  r3   c                ,    t        | j                        S r'   )r   r   r   s    r+   __int__zndarray.__int__  s    4;;r3   c                ,    t        | j                        S r'   )floatr   r   s    r+   	__float__zndarray.__float__  s    T[[!!r3   c                ,    t        | j                        S r'   )complexr   r   s    r+   __complex__zndarray.__complex__  s    t{{##r3   c                |    	 | j                   j                         }t        |      |k(  }|S # t        $ r d}Y |S w xY w)NF)r   r'  r   r(  )r0   vresults      r+   
is_integerzndarray.is_integer  sH    	  "AVq[F   	F	s   (, ;;c                4    | j                   j                  d   S )Nr   )r   r   r   s    r+   __len__zndarray.__len__  s    {{  ##r3   c                8    | j                   j                  |      S r'   )r   __contains__)r0   r   s     r+   r<  zndarray.__contains__  s    {{''**r3   c                .    t        j                  | |      S r'   )r   r   )r0   axess     r+   r   zndarray.transpose  s    d++r3   r   c               2    t        j                  | ||      S )Nr?  )r   reshape)r0   r   r   s      r+   rA  zndarray.reshape  s    ~~dE77r3   c           	     \    t        j                  | t        j                  | |||             y r'   )r   copytosort)r0   axiskindr   s       r+   rD  zndarray.sort  s    dFKKdD%@Ar3   c                    |dk(  r| j                   j                         S t        |      dk(  r| j                         |d      S | j	                  |      S )NrR   r   r   )r   r'  r   r_   rB   )r0   rS   s     r+   r'  zndarray.item  sO     2:;;##%%Y!^::<Q((##D))r3   c                   | j                   fdt        |t              r$ t        |      fdt	        |      D              }n	 d|      }t        j                  |      }t        |      }t        j                  |            S )Nc                   t        |t              r|j                  |j                  dk  s|S t        j                  | f      t        |j
                  t              s|j
                  J t        |j                  t              s|j                  J |j                  r|j                  dz   nd }|j
                  r|j
                  dz   nd }t        |||j                         S )Nr   r   )r   slicestepr   flipstartr   stop)r   srM  rN  r   s       r+   neg_stepz%ndarray.__getitem__.<locals>.neg_step  s    q%(QVV-?AFFQJ ZZ-F aggs+qww>>affc*affn<<"#&&AFFQJdE"#''177Q;tDqvvg..r3   c              3  6   K   | ]  \  }} ||        y wr'   rR   )r)   r   rO  rP  s      r+   r,   z&ndarray.__getitem__.<locals>.<genexpr>  s     L41aALs   r   )
r   r   r   r  	enumerater
   ndarrays_to_tensorsr   r   rB   )r0   r   rP  r   s     @@r+   rB   zndarray.__getitem__  st    	/ eX&DKL9U;KLLEQ&E))%0#E*v))%011r3   c                   t        j                  |      }t        |      }t        j                  |      s5t        |      }t        j                  || j                  j                        }| j                  j                  ||      S r'   )
r
   rS  r   r   	is_scalarr   cast_if_neededr   r   rI   )r0   r   rF   s      r+   rI   zndarray.__setitem__  sg    ))%0#E*%%e,(/E((0A0ABE{{&&ue44r3   streamc               :    | j                   j                  |      S )NrW  )r   
__dlpack__)r0   rX  s     r+   rZ  zndarray.__dlpack__  s    {{%%V%44r3   c                6    | j                   j                         S r'   )r   __dlpack_device__r   s    r+   r\  zndarray.__dlpack_device__  s    {{,,..r3   r'   )r   r   TT)r   )r0   r   r   r   )rF   r   )NN)GrL   rM   rN   r2   methodsitemsmethodrW   getattrr   rU   rX   varsr	   	conjugater   dunder	ri_dunderplainrvarivarr   r   r   propertyr   r   r   r   r   r   r   r   r   r   r   setterr   r   r   r   r   r	  r   r  r  r  r  r  r  __repr__r"  r$  r*  r,  r.  r1  r4  r8  r:  r<  r   rA  rD  r'  rB   rI   rr   putrZ  r\  rR   r3   r+   r   r      s   	   3VT^V,&r62v3
 **F3Dg//0I 3Wdnf-fXR&r62v3
 ") 	
Wdnf-VHB%b%0uVHB$B%OQUVtVHB$#%@$
t	
 w~~|<J7K
 	dD%V( ( # #     0 0 I I * * 	
 	
 & & . .     ! ! 
[[1 1 ! ! 
[[1 1   # # +0 "8 &118P8P  ! !
$<
 W%H" ! "$$+, %( 8B
*245 ;;D
**C#' 5/r3   r   c                    g }| D ]n  }t        |t        t        f      rt        |      }t        |t              r*|j                  |j                  j                                ^|j                  |       p |S )z'Recursively convert tensors into lists.)r   listr   _tolistr   appendr   r  )obja1elems      r+   ro  ro    sb    	B dT5M*4=DdG$IIdkk((*+IIdO Ir3   Tr   F)r   r   r   ndminlikec                  |durt        d      |t        d      |dk7  rt         t        | t              r|du r||| j                  k  r| S t        | t        t
        f      r5| r(t        d | D              rt        j                  |       } nt        |       } t        | t              r| j                  } d }|t        j                  |      j                  }t        j                  | |||      }t        |      S )NFz#'subok' parameter is not supported.z"'like' parameter is not supported.r   c              3  P   K   | ]  }t        |t        j                           y wr'   )r   r   r   r   s     r+   r,   zarray.<locals>.<genexpr>  s     @qz!U\\2@s   $&)r?   r   r   r   rn  r   r-   r   stackro  r   r   r   r   r
   _coerce_to_tensor)	rq  r   r   r   r   rt  ru  r   r   s	            r+   arrayrz    s    E!"GHH!"FGG|!! 	3 EMMSXX
#e}%3@C@@++c"C #,C #wjj KmmE*66$$S+tUCF6?r3   )ru  c               $    t        | |||dd      S )NFr   )r   r   ru  r   rt  )rz  )ar   r   ru  s       r+   r   r   &  s    %u4e1MMr3   c                   t        | ||      }|j                  j                         s|j                  j                         |_        |S )N)r   ru  )r   r   r   
contiguous)r|  r   ru  arrs       r+   ascontiguousarrayr  *  s9    
!5t
,C::##%ZZ**,
Jr3   c               B    t        j                  |       }t        |      S r'   )r   from_dlpackr   )r   r   s     r+   r  r  1  s    !A1:r3   c                |    	 t        j                  |       }|S # t        $ r t        |       j                  }Y |S w xY wr'   )r   r   r(  r   )entrydtys     r+   _extract_dtyper  6  sA    #mmE" J  #en""J#s    ;;c                    t        |       } t        |      }t        j                  | j                  |j                  |      S r'   )r  r   can_cast_implr   )from_r   r   to_s       r+   can_castr  >  s5    5!E

C%%e&7&7'RRr3   c                 P   g }| D ])  }	 t        |      j                  }|j                  |       + t        j                  | }t        j                  |      S # t        t        t        f$ r9 t        j                  |      }t        j                  d|j                        }Y w xY w)Nr   )r   )r   r   r  r   r  r   r   r   emptyr   rp  r   result_type_impl)arrays_and_dtypestensorsr  r   r  r   s         r+   result_typer  E  s    G" 	6%%A 	q //9K==%% j)4 	6--&CAS__5A	6s   AA
B%$B%r'   )Nr   )safe)'
__future__r   r  r  r&  typingr   r    r   r   r   r	   r
   _normalizationsr   r   r   r   newaxisr(   r=   r$   rX   r^  rd  re  r   r   r  r   ro  rz  r   r  r  r  r  r  rR   r3   r+   <module>r     s'   #      ; ;  	 
						


  3  3F"
D"t" d" T	"
 t" " T" " 
4" T" t" D"  d!"" d#"$ 
4%"& 
4'"( 
4)"* C"J 



	
 
	"	 	 (> q/ q/h	
"%4s%qt %PNd NT 
S&r3   