
    קg@                       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dNd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dNdAdBdCd ddDdEZ dOddFdGZ!dNddFdHZ"dI Z#dJ Z$dPdLZ%dM Z&dS )Q    )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 )Flagsflag_to_valuedictc                n    t          d |                                D                       sJ || _        d S )Nc              3  (   K   | ]}|t           v V  d S N)FLAGS).0ks     Q/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/_numpy/_ndarray.py	<genexpr>z!Flags.__init__.<locals>.<genexpr>4   s&      <<!1:<<<<<<    )allkeys_flag_to_value)selfr%   s     r-   __init__zFlags.__init__3   s?    <<}'9'9';';<<<<<<<<+r/   attrstrc                    |                                 r5|                                t          v r| |                                         S t          d| d          )NzNo flag attribute '')islowerupperr*   AttributeError)r3   r5   s     r-   __getattr__zFlags.__getattr__7   sR    <<>> 	@djjlle33

%% !>t!>!>!>???r/   c                    |t                                           v rt           |         }|t          v r3	 | j        |         S # t          $ r}t          d|          |d }~ww xY wt	          d| d          )Nzkey=No flag key 'r8   )SHORTHAND_TO_FLAGSr1   r*   r2   KeyErrorNotImplementedError)r3   keyes      r-   __getitem__zFlags.__getitem__=   s    $))++++$S)C%<<<*3// < < <))S))44!;< 13111222s   A   
A"
AA"c                    |                                 r4|                                t          v r|| |                                <   d S t                                          ||           d S r)   )r9   r:   r*   super__setattr__)r3   r5   value	__class__s      r-   rG   zFlags.__setattr__H   s]    <<>> 	-djjlle33!&DGGe,,,,,r/   c                    |t           v s|t                                          v rt          d          t	          d| d          )Nz"Modifying flags is not implementedr>   r8   )r*   r?   r1   rA   r@   )r3   rB   rH   s      r-   __setitem__zFlags.__setitem__N   sK    %<<3"4"9"9";";;;%&JKKK13111222r/   )r%   r&   )r5   r6   )	__name__
__module____qualname__r4   r<   rD   rG   rK   __classcell__)rI   s   @r-   r$   r$   2   s        , , , ,@ @ @ @	3 	3 	3- - - - -3 3 3 3 3 3 3r/   r$   c                F     |p j         } fd}||_         d| |_        |S )Nc                      | i |S r)    )argskwargsfns     r-   fzcreate_method.<locals>.fX   s    r4"6"""r/   zndarray.)rL   rN   )rU   namerV   s   `  r-   create_methodrX   U   sE    2;D# # # # # AJ&&&ANHr/   clipnonzerorepeatroundsqueezeswapaxesraveldiagonaldottraceargsortsearchsortedargmaxargminanyr0   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          j                  rU| j        t          j        t          j        t          j        t          j        fv r|                     t          j	                  S n.t          | t                    rt          d | D                       S | S )Nc              3  4   K   | ]}t          |          V  d S r)   )_upcast_int_indices)r+   is     r-   r.   z&_upcast_int_indices.<locals>.<genexpr>   s+      ;;(++;;;;;;r/   )
isinstancetorchTensordtypeint8int16int32uint8toint64tuple)indexs    r-   r   r      s    %&& <;5:u{EKMMM88EK((( N	E5	!	! <;;U;;;;;;Lr/   c                      e Zd ZdS )_UnspecifiedN)rL   rM   rN   rR   r/   r-   r   r      s        Dr/   r   c                  8   e Zd ZdCdZe                                D ]*\  ZZ ee	epe          Z
 ee
e           e            e<   + eej        d          Z eej                  Ze                                D ]0\  ZZ eeepe          Z
de dZ ee
e           e            e<   1e                                D ]p\  ZZ eeep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<   q 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#j$        d             Z#ed             Z%e%j$        d             Z%dDdZ&e'dEdFd#            Z(e'dEdFd$            Z)d%d&d'Z*e+j,        e+j,        fd(Z-e'dGd*            Z.d+ Z/d, Z0d- Z1 ee1          Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=dd9d:Z>dHd<Z?d= Z@d> ZAd? ZBe	jC        ZCe	jD        ZDdd@dAZEdB ZFdS )IndarrayNc                    |t          j                    | _        d S t          |t           j                  r	|| _        d S t	          d          )NzSndarray constructor is not recommended; prefereither array(...) or zeros/empty(...))r   r   tensorr   
ValueError)r3   ts     r-   r4   zndarray.__init__   sN    9,..DKKK5<(( 	DKKK8  r/   conj____rc                     |||           S r)   rR   r3   otherrU   s      r-   <lambda>zndarray.<lambda>   s    5$ r/   __ic                     || ||           S )N)outrR   r   s      r-   r   zndarray.<lambda>   s    rr$4'@'@'@ r/   
__divmod__c                ,    t          j        ||           S r)   )r	   divmodr3   r   s     r-   r   zndarray.<lambda>   s    GN5$77 r/   __rdivmod__c                4    t          | j        j                  S r)   )r   r   shaper3   s    r-   r   zndarray.shape   s    T[&'''r/   c                4    | j                                         S r)   )r   numelr   s    r-   sizezndarray.size   s    {  """r/   c                    | j         j        S r)   )r   ndimr   s    r-   r   zndarray.ndim   s    {r/   c                >    t          j        | j        j                  S r)   )r   r   r   r   s    r-   r   zndarray.dtype   s    }T[.///r/   c                    | j                                         t          fd| j                                         D                       S )Nc              3  "   K   | ]	}|z  V  
d S r)   rR   )r+   strideelsizes     r-   r.   z"ndarray.strides.<locals>.<genexpr>   s'      HHVf_HHHHHHr/   )r   element_sizer   r   )r3   r   s    @r-   strideszndarray.strides   sG    ))++HHHH4;3E3E3G3GHHHHHHr/   c                4    | j                                         S r)   )r   r   r   s    r-   itemsizezndarray.itemsize   s    {'')))r/   c                    t          | 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   sT      $ 9 9 ; ; $ ; ; = =;,4!	 
 
 	
r/   c                4    | j                                         S r)   )r   data_ptrr   s    r-   datazndarray.data  s    {##%%%r/   c                X    | j                                                                         S r)   )r   storagenbytesr   s    r-   r   zndarray.nbytes  s"    {""$$++---r/   c                *    |                                  S r)   )	transposer   s    r-   r   z	ndarray.T  s    ~~r/   c                *    t          j        |           S r)   )r   realr   s    r-   r   zndarray.real      {4   r/   c                B    t          |          j        | j        _        d S r)   )asarrayr   r   r3   rH   s     r-   r   zndarray.real      "5>>0r/   c                *    t          j        |           S r)   )r   imagr   s    r-   r   zndarray.imag   r   r/   c                B    t          |          j        | j        _        d S r)   )r   r   r   r   s     r-   r   zndarray.imag$  r   r/   KunsafeTc                >   |dk    rt          d| d          |dk    rt          d| d          |st          d| d          |st          d| d          t          j        |          j        }| j                            |          }t          |          S )Nr   zastype(..., order= is not implemented.r   zastype(..., casting=zastype(..., subok=zastype(..., copy=)rA   r   r   torch_dtyper   r   r   )r3   r   ordercastingsubokcopyr   r   s           r-   astypezndarray.astype)  s    C<<%&V5&V&V&VWWWh%DwDDD    	X%&V5&V&V&VWWW 	V%&T$&T&T&TUUUmE**6KNN;''qzzr/   r   r3   r   r   r   c                *    |                                  S r)   )cloner3   r   s     r-   r   zndarray.copy8  s    zz||r/   c                *    t          j        |           S r)   )r   flattenr   s     r-   r   zndarray.flatten<  s    }T"""r/   F)refcheckc               :   |rt          d| d          |dv rd S t          |          dk    r|d         }t          |t                    r|f}t	          j        d |D                       rt          d          t          j        |          | j	        
                                }}| j	                            |           ||k    rR| j	                                        sJ | j	                                        }||d                                           d S d S )Nzresize(..., refcheck=r   )rR   r)   r   r   c              3  "   K   | ]
}|d k     V  dS )r   NrR   r+   xs     r-   r.   z!ndarray.resize.<locals>.<genexpr>O  s&      11!A111111r/   z0all elements of `new_shape` must be non-negative)rA   lenr   intbuiltinsrg   r   mathrl   r   r   resize_r   r   zero_)r3   r   	new_shape	new_numel	old_numelbs         r-   resizezndarray.resize@  s9    	%FFFF   %%F y>>Q!!Ii%% 	%"I<11y11111 	QOPPP#y33T[5F5F5H5H9	I&&&	!!;,,.....##%%AijjM!!!!!	 "!r/   c                    |t           j        u r| j        }|t           j        urt          d| d          t	          j        |          j        }| j                            |          }t          |          S )Nzview(..., type=r   )	r   unspecifiedr   rA   r   r   r   viewr   )r3   r   typer   tviews        r-   r  zndarray.view\  sr    L,,,JE|///%&R&R&R&RSSSmE**6  --u~~r/   rH   c                :    | j                             |           d S r)   )r   fill_r   s     r-   fillzndarray.fille  s      	%     r/   c                4    | j                                         S r)   )r   tolistr   s    r-   r  zndarray.tolistk  s    {!!###r/   c                H    d | j                                         D             S )Nc              3  4   K   | ]}t          |          V  d S 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$    ;;DK$8$8$:$:;;;;r/   c                z    t          | j                                      dd                              dd          S )Nr   ztorch.ndarrayzdtype=torch.zdtype=)r6   r   replacer   s    r-   __str__zndarray.__str__q  s2    WX//W^X..	
r/   c                    	 t          j        | |          S # t          t          f$ r3 t	          j        | j        dt                    }t          |          cY S w xY w)NF)
fill_valuer   )	r	   equalRuntimeError	TypeErrorr   fullr   boolr   )r3   r   falsys      r-   __eq__zndarray.__eq__z  sc    	"=u---i( 	" 	" 	"Jtze4HHHE5>>!!!	"s    AAAc                    | |k     S r)   rR   r   s     r-   __ne__zndarray.__ne__  s    r/   c                    	 t          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  )r3   excs     r-   	__index__zndarray.__index__  s\    	>$+"2"2"4"4555 	 	 	O 	s   *- 
AAAc                *    t          | j                  S r)   )r  r   r   s    r-   __bool__zndarray.__bool__  s    DK   r/   c                *    t          | j                  S r)   )r   r   r   s    r-   __int__zndarray.__int__  s    4;r/   c                *    t          | j                  S r)   )floatr   r   s    r-   	__float__zndarray.__float__  s    T[!!!r/   c                *    t          | j                  S r)   )complexr   r   s    r-   __complex__zndarray.__complex__  s    t{###r/   c                    	 | j                                         }t          |          |k    }n# t          $ r d}Y nw xY w|S )NF)r   r&  r   r'  )r3   vresults      r-   
is_integerzndarray.is_integer  sT    	  ""AVVq[FF 	 	 	FFF	s   ,/ >>c                &    | j         j        d         S )Nr   )r   r   r   s    r-   __len__zndarray.__len__  s    { ##r/   c                6    | j                             |          S r)   )r   __contains__)r3   r   s     r-   r;  zndarray.__contains__  s    {''***r/   c                ,    t          j        | |          S r)   )r   r   )r3   axess     r-   r   zndarray.transpose  s    d+++r/   r   c               0    t          j        | ||          S )Nr>  )r   reshape)r3   r   r   s      r-   r@  zndarray.reshape  s    ~dE7777r/   c           	     Z    t          j        | t          j        | |||                     d S r)   )r   copytosort)r3   axiskindr   s       r-   rD  zndarray.sort  s*    dFKdD%@@AAAAAr/   c                    |dk    r| j                                         S t          |          dk    r |                                 |d                  S |                     |          S )NrR   r   r   )r   r&  r   r_   rD   )r3   rS   s     r-   r&  zndarray.item  s[     2::;##%%%YY!^^::<<Q((##D)))r/   c                N   | j         fdt          |t                    r2 t          |          fdt	          |          D                       }n d|          }t          j        |          }t          |          }t          	                    |                    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%(( QV-?AFQJJ Z--F ags++>qwafc**<afnnn"#&2AFQJJdE"#'317Q;;tDqvg...r/   c              3  6   K   | ]\  }} ||          V  d S r)   rR   )r+   r   rO  rP  s      r-   r.   z&ndarray.__getitem__.<locals>.<genexpr>  s1      LL41aALLLLLLr/   r   )
r   r   r   r  	enumerater
   ndarrays_to_tensorsr   r   rD   )r3   r   rP  r   s     @@r-   rD   zndarray.__getitem__  s    	/ 	/ 	/ 	/ 	/ eX&& 	'DKKLLLL9U;K;KLLLLLEEHQ&&E)%00#E**v))%00111r/   c                   t          j        |          }t          |          }t          j        |          s.t          |          }t          j        || j        j                  }| j        	                    ||          S r)   )
r
   rS  r   r   	is_scalarr   cast_if_neededr   r   rK   )r3   r   rH   s      r-   rK   zndarray.__setitem__  so    )%00#E**%e,, 	C(//E(0ABBE{&&ue444r/   streamc               8    | j                             |          S )NrW  )r   
__dlpack__)r3   rX  s     r-   rZ  zndarray.__dlpack__  s    {%%V%444r/   c                4    | j                                         S r)   )r   __dlpack_device__r   s    r-   r\  zndarray.__dlpack_device__  s    {,,...r/   r)   )r   r   TT)r   )r3   r   r   r   )rH   r   )rA  NN)GrL   rM   rN   r4   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-  r0  r3  r7  r9  r;  r   r@  rD  r&  rD   rK   rr   putrZ  r\  rR   r/   r-   r   r      s       	 	 	 	   3 3WVT^V,,&r622v =*F33Dg/00I 3 3WWdnf-- f&r622v!)) 	
 	
WWdnf--V%b%00uV$}B%O%O%OQUVVtV$}#%@@@$
 
t
 w~|<<J-77 K
 	dD%V( ( X( # # X#     X  0 0 X0 I I XI * * X* 	
 	
 X	
 & & X& . . X.     X  ! ! X! 
[1 1 [1 ! ! X! 
[1 1 [1        Z # # # # Z# +0 " " " " "8 &18P     ! ! ! Z!
$ $ $< < <
 
 
 }W%%H" " "       ! ! !     " " "$ $ $  $ $ $+ + +, , , %( 8 8 8 8 8B B B B
* 
* 
*2 2 245 5 5 ;D
*C#' 5 5 5 5 5/ / / / /r/   r   c                   g }| D ]}t          |t          t          f          rt          |          }t          |t                    r-|                    |j                                                   o|                    |           |S )z'Recursively convert tensors into lists.)r   listr   _tolistr   appendr   r  )obja1elems      r-   rn  rn    s    	B  dT5M** 	!4==DdG$$ 	IIdk((**++++IIdOOOOIr/   Tr   F)r   r   r   ndminlikec               (   |durt          d          |t          d          |dk    rt           t          | t                    r|du r||| j        k    r| S t          | t          t
          f          r?| 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  J   K   | ]}t          |t          j                  V  d S r)   )r   r   r   r   s     r-   r.   zarray.<locals>.<genexpr>  s.      @@qz!U\22@@@@@@r/   )rA   r   r   r   rm  r   r0   r   stackrn  r   r   r   r   r
   _coerce_to_tensor)	rp  r   r   r   r   rs  rt  r   r   s	            r-   arrayry    s*   E!"GHHH!"FGGG||!! 	3  EMMMSX
#e}%%  	3@@C@@@@@ 	+c""CC #,,C #w j KmE**6$S+tUCCF6??r/   )rt  c               ,    t          | |||dd          S )NFr   )r   r   rt  r   rs  )ry  )ar   r   rt  s       r-   r   r   &  s    %u4e1MMMMr/   c                   t          | ||          }|j                                        s|j                                        |_        |S )N)r   rt  )r   r   r   
contiguous)r{  r   rt  arrs       r-   ascontiguousarrayr  *  sF    
!5t
,
,
,C:##%% -Z**,,
Jr/   c               H    t          j        |           }t          |          S r)   )r   from_dlpackr   )r   r   s     r-   r  r  1  s    !A1::r/   c                z    	 t          j        |           }n$# t          $ r t          |           j        }Y nw xY w|S r)   )r   r   r'  r   )entrydtys     r-   _extract_dtyper  6  sJ    #mE"" # # #enn"#Js    88safec                ~    t          |           } t          |          }t          j        | j        |j        |          S r)   )r  r   can_cast_implr   )from_r   r   to_s       r-   can_castr  >  s6    5!!E


C%e&7'RRRr/   c                 B   g }| D ]y}	 t          |          j        }nL# t          t          t          f$ r2 t          j        |          }t          j        d|j	                  }Y nw xY w|
                    |           zt          j        | }t          j        |          S )Nr   )r   )r   r   r  r   r  r   r   r   emptyr   ro  r   result_type_impl)arrays_and_dtypestensorsr  r   r  r   s         r-   result_typer  E  s    G"  	6%AAj)4 	6 	6 	6-&&CAS_555AAA	6 	q/9K=%%%s   AA&%A&r)   )Nr   )r  )'
__future__r   r   r  r%  typingr   r    r   r   r   r	   r
   _normalizationsr   r   r   r   newaxisr*   r?   r$   rX   r]  rc  rd  r   r   r
  r   rn  ry  r   r  r  r  r  r  rR   r/   r-   <module>r     s   # " " " " "           ; ; ; ; ; ; ; ; ; ; ; ; ; ;            	 	 	 
						


 
  3  3  3  3  3  3  3  3F   "
D"t" d" T	"
 t" " T" " 
4" T" t" D"  d!"" d#"$ 
4%"& 
4'"( 
4)"* C" " "J 



	
 	
 
 	"  	 	 	 	 	 	 	 	 (<>> q/ q/ q/ q/ q/ q/ q/ q/h	
 
 
"%4s%qt % % % % %PNd N N N N NT       
  S S S S& & & & &r/   