§ x<ˆjÛªãóà—dZddlmZddlZddlmZddlmZddlm Z m Z m Z m Z m Z mZmZmZmZddlmZmZmZmZmZmZddlZerdd lmZmZmZmZddlmZddl Z!dd l m"Z"Gd „d ¦«Z#dS) al Wrapper class around the ndarray object for the array API standard. The array API standard defines some behaviors differently than ndarray, in particular, type promotion rules are different (the standard has no value-based casting). The standard also specifies a more limited subset of array methods and functionalities than are implemented on ndarray. Since the goal of the array_api namespace is to be a minimal implementation of the array API standard, we need to define a separate wrapper class for the array_api namespace. The standard compliant class is only a wrapper class. It is *not* a subclass of ndarray. é)Ú annotationsN)ÚIntEnumé)Úasarray) Ú _all_dtypesÚ_boolean_dtypesÚ_integer_dtypesÚ_integer_or_boolean_dtypesÚ_floating_dtypesÚ_complex_floating_dtypesÚ_numeric_dtypesÚ _result_typeÚ_dtype_categories)Ú TYPE_CHECKINGÚOptionalÚTupleÚUnionÚAnyÚ SupportsIndex)rÚ PyCapsuleÚDeviceÚDtype)Ú array_apicó ‡—eZdZUdZded<eˆfd„¦«Zd„Zdud „Zdud „Z dvdwd„Z dxd„Z d„Z e dyd„¦«Zd„Zdzd„Zd{d„Zd|d„Zd dœd}d"„Zd~d$„Zdd&„Zd d'œd€d+„Zd�d-„Zd‚d/„Zdƒd1„Zd{d2„Zd{d3„Zd„d6„Zd{d7„Zd…d9„Zd…d:„Zdzd;„Z d{d<„Z!d†d>„Z"d{d?„Z#d‡d@„Z$d{dA„Z%d{dB„Z&d‚dC„Z'dzdD„Z(d|dE„Z)dzdF„Z*d{dG„Z+d†dH„Z,dˆdJ„Z-d{dK„Z.d‰dM„Z/d|dN„Z0d{dO„Z1d{dP„Z2d|dQ„Z3d|dR„Z4d{dS„Z5d{dT„Z6d†dU„Z7d†dV„Z8d‡dW„Z9d‡dX„Z:d{dY„Z;d{dZ„Zd|d]„Z?d|d^„Z@d{d_„ZAd{d`„ZBd†da„ZCd†db„ZDd{dc„ZEd{dd„ZFd‰de„ZGd‰df„ZHd|dg„ZId|dh„ZJdvdŠdk„ZKeLd‹dm„¦«ZMeLdŒdn„¦«ZNeLd�do„¦«ZOeLdŽdp„¦«ZPeLd�dr„¦«ZQeLdŽds„¦«ZReLd�dt„¦«ZSˆxZTS)�ÚArraya) n-d array object for the array API namespace. See the docstring of :py:obj:`np.ndarray ` for more information. This is a wrapper around numpy.ndarray that restricts the usage to only those things that are required by the array API namespace. Note, attributes on this object that start with a single underscore are not part of the API specification and should only be used internally. This object should not be constructed directly. Rather, use one of the creation functions, such as asarray(). znp.ndarray[Any, Any]Ú_arraycó•—t¦« |¦«}t|tj¦«rtj|¦«}|jtvrtd|j›d�¦«‚||_ |S)a This is a private method for initializing the array API Array object. Functions outside of the array_api submodule should not use this method. Use one of the creation functions instead, such as ``asarray``. z4The array_api namespace does not support the dtype 'ú') ÚsuperÚ__new__Ú isinstanceÚnpÚgenericrÚdtyperÚ TypeErrorr)ÚclsÚxÚobjÚ __class__s €úq/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/numpy/array_api/_array_object.pyÚ_newz Array._new@sxø€õ‰gŒg�oŠo˜cÑ"Ô"ˆå �a�œÑ $Ô $ð å” ˜1‘ ” ˆAØ Œ7�+Ð %Ð %ÝØQÀqÄwÐQÐQÐQñôð ðˆŒ Øˆ ócó —td¦«‚)Nz{The array_api Array object should not be instantiated directly. Use an array creation function, such as asarray(), instead.)r%)r&ÚargsÚkwargss r*r z Array.__new__Xs€Ýð Jñ ô ð r,ÚselfÚreturnÚstrcó\—|j ¦« dd¦«S)z1 Performs the operation __str__. Úarrayr)rÚ__str__Úreplace©r0s r*r5z Array.__str__`s(€ðŒ{×"Ò"Ñ$Ô$×,Ò,¨W°gÑ>Ô>Ð>r,có°—d|jj›d�}d|jvrd}t|j¦«}nd}t j|jd||¬¦«}||z|zS)z2 Performs the operation __repr__. z, dtype=ú)rzempty(zArray(z, )Ú separatorÚprefixÚsuffix)r$ÚnameÚshaper2r"Ú array2stringr)r0r<r;Úmids r*Ú__repr__zArray.__repr__fsf€ð/˜DœJœOÐ.Ð.Ð.ˆØ �” ˆ?ˆ?؈FÝ�d”j‘/”/ˆCˆCàˆFÝ”/ $¤+¸ÀfÐU[Ð\Ñ\Ô\ˆCؘ‰|˜fÑ$Ð$r,Nr$úNone | np.dtype[Any]únpt.NDArray[Any]có8—tj|j|¬¦«S)zØ Warning: this method is NOT part of the array API spec. Implementers of other libraries need not include it, and users should not assume it will be present in other implementations. )r$)r"rr)r0r$s r*Ú __array__zArray.__array__us€õŒz˜$œ+¨UÐ3Ñ3Ô3Ð3r,Úotherúbool | int | float | ArrayÚdtype_categoryÚopcó—|jt|vrtd|›d|›�¦«‚t|tt t tf¦«r| |¦«}nFt|t¦«r*|jt|vrtd|›d|›�¦«‚ntSt|j|j¦«}|  d¦«r-||jkr"td|›d|j›d|j›�¦«‚|S)z÷ Helper function for operators to only allow specific input dtypes Use like other = self._check_allowed_dtypes(other, 'numeric', '__add__') if other is NotImplemented: return other zOnly z dtypes are allowed in Ú__izCannot perform z with dtypes ú and ) r$rr%r!ÚintÚcomplexÚfloatÚboolÚ_promote_scalarrÚNotImplementedrÚ startswith)r0rFrHrIÚ res_dtypes r*Ú_check_allowed_dtypeszArray._check_allowed_dtypes‚s(€ð Œ:Õ.¨~Ô>Ð >Ð >ÝÐO NÐOÐOÈ2ÐOÐOÑPÔPÐ PÝ �e�c¥7­Eµ4Ð8Ñ 9Ô 9ð "Ø×(Ò(¨Ñ/Ô/ˆEˆEÝ ˜�uÑ %Ô %ð "ØŒ{Õ"3°NÔ"CÐCÐCÝÐ S¨Ð SÐ SÈrÐ SÐ SÑTÔTÐTðDõ"Ð !õ ! ¤¨U¬[Ñ9Ô9ˆ Ø �=Š=˜Ñ Ô ð ð˜DœJÒ&Ð&ÝØU bÐUÐU°t´zÐUÐUÈÌ ÐUÐUñôððˆ r,cóº—t|t¦«r|jtvrt d¦«‚n÷t|t ¦«rm|jtvrt d¦«‚|jt vrAtj|j¦«}|j |cxkr |j ksntd¦«‚nut|t¦«r|jtvrt d¦«‚nBt|t¦«r|jtvrt d¦«‚nt d¦«‚t  tj||j¦«¦«S)aR Returns a promoted version of a Python scalar appropriate for use with operations on self. This may raise an OverflowError in cases where the scalar is an integer that is too large to fit in a NumPy integer dtype, or TypeError when the scalar type is incompatible with the dtype of self. z9Python bool scalars can only be promoted with bool arraysz6Python int scalars cannot be promoted with bool arrayszLPython int scalars must be within the bounds of the dtype for integer arrayszEPython float scalars can only be promoted with floating-point arrays.zOPython complex scalars can only be promoted with complex floating-point arrays.z 'scalar' must be a Python scalar)r!rPr$rr%rMr r"ÚiinfoÚminÚmaxÚ OverflowErrorrOr rNr rr+r4)r0ÚscalarÚinfos r*rQzArray._promote_scalar¬s{€õ �f�dÑ #Ô #ð @ØŒz¥Ð0Ð0ÝØOñôðð1õ˜¥Ñ $Ô $ð @ØŒz�_Ð,Ð,ÝØLñôððŒz�_Ð,Ð,Ý”x ¤ Ñ+Ô+�Øœ FÐ6Ð6Ò6Ð6¨d¬hÒ6Ð6Ð6Ð6Ý'Øfñôðøõ˜¥Ñ &Ô &ð @ØŒzÕ!1Ð1Ð1ÝØ[ñôðð2õ˜¥Ñ (Ô (ð @ØŒzÕ!9Ð9Ð9ÝØeñôðð:õ Ð>Ñ?Ô?Ð ?õ�zŠz�"œ( 6¨4¬:Ñ6Ô6Ñ7Ô7Ð7r,úTuple[Array, Array]cóø—|jdkr1|jdkr&t |jd¦«}n;|jdkr0|jdkr%t |jd¦«}||fS)aâ Normalize inputs to two arg functions to fix type promotion rules NumPy deviates from the spec type promotion rules in cases where one argument is 0-dimensional and the other is not. For example: >>> import numpy as np >>> a = np.array([1.0], dtype=np.float32) >>> b = np.array(1.0, dtype=np.float64) >>> np.add(a, b) # The spec says this should be float64 array([2.], dtype=float32) To fix this, we add a dimension to the 0-dimension array before passing it through. This works because a dimension would be added anyway from broadcasting, so the resulting shape is the same, but this prevents NumPy from not promoting the dtype. rN)Úndimrr+r)Úx1Úx2s r*Ú_normalize_two_argszArray._normalize_two_argsÞsi€ð2 Œ7�aŠ<ˆ<˜BœG qšL˜Lõ —’˜BœI dœOÑ,Ô,ˆBˆBØ ŒW˜Š\ˆ\˜bœg¨šl˜lÝ—’˜BœI dœOÑ,Ô,ˆBØ�Bˆxˆr,c óø—t|t¦«r|n|f}|D] }t|t¦«sft|t¦«stt|t¦«s_|t ksT|�Rt|t ¦«s=t|tj¦«s#td|›dt|¦«›d�¦«‚Œ¡g}g}d}d}|D]”}|��|  |¦«t|t ¦«st|tj¦«r&|j tvrd}|  |¦«Œn|t kr|dz }Œ|  |¦«Œ•t|¦«}|dkrdS|dkr(|s&||jkrtd |j›d |›d �¦«‚|dkr|j} n…d} t#|¦«D]C\} }t|t ¦«s)t|tj¦«s|t kr| } nŒD| €J‚|j|| z z } |jd| …|j| d…z} t%|| ¦«D�]³\}} t|t¦«rÒ| dkrd }n d | ›d| dz ›d�}|j�W t)j|j¦«}| |cxkr| ksntd|›d|›d|›d| ›d� ¦«‚n#t,$rYnwxYw|j�W t)j|j¦«}| |cxkr| ksntd|›d|›d|›d| ›d� ¦«‚ŒÜ#t,$rYŒèwxYwŒít|t ¦«r‰|j tvrMt|¦«dkr:t|t¦«sJ‚td|›dt|¦«›d�¦«‚|j t0vr|jdkrtd|›d�¦«‚�Œ‹t|t¦«rtd|›d�¦«‚�ŒµdS)aÄ Validate an index according to the array API. The array API specification only requires a subset of indices that are supported by NumPy. This function will reject any index that is allowed by NumPy but not required by the array API specification. We always raise ``IndexError`` on such indices (the spec does not require any specific behavior on them, but this makes the NumPy array API namespace a minimal implementation of the spec). See https://data-apis.org/array-api/latest/API_specification/indexing.html for the full list of required indexing behavior This function raises IndexError if the index ``key`` is invalid. It only raises ``IndexError`` on indices that are not already rejected by NumPy, as NumPy will already raise the appropriate error on such indices. ``shape`` may be None, in which case, only cases that are independent of the array shape are checked. The following cases are allowed by NumPy, but not specified by the array API specification: - Indices to not include an implicit ellipsis at the end. That is, every axis of an array must be explicitly indexed or an ellipsis included. This behaviour is sometimes referred to as flat indexing. - The start and stop of a slice may not be out of bounds. In particular, for a slice ``i:j:k`` on an axis of size ``n``, only the following are allowed: - ``i`` or ``j`` omitted (``None``). - ``-n <= i <= max(0, n - 1)``. - For ``k > 0`` or ``k`` omitted (``None``), ``-n <= j <= n``. - For ``k < 0``, ``-n - 1 <= j <= max(0, n - 1)``. - Boolean array indices are not allowed as part of a larger tuple index. - Integer array indices are not allowed (with the exception of 0-D arrays, which are treated the same as scalars). Additionally, it should be noted that indices that would return a scalar in NumPy will return a 0-D array. Array scalars are not allowed in the specification, only 0-D arrays. This is done in the ``Array._new`` constructor, not this function. NzSingle-axes index z has type(i)=z“, but only integers, slices (:), ellipsis (...), newaxis (None), zero-dimensional integer arrays and boolean arrays are specified in the Array API.rFTrz self.ndim=z*, but the multi-axes index only specifies zê dimensions. If this was intentional, add a trailing ellipsis (...) which expands into as many slices (:) as necessary - this is what np.ndarray arrays implicitly do, but such flat indexing behaviour is not specified in the Array API.z 0 (or None)z between -rLz (or None)zSlice z contains start=z, but should be z for an axis of size z: (out-of-bounds starts are not specified in the Array API)z contains stop=z9 (out-of-bounds stops are not specified in the Array API)z! is a boolean array and len(key)=zR, but masking is only specified in the Array API when the array is the sole index.zj is a non-zero-dimensional integer array, but advanced integer indexing is not specified in the Array API.zI is a tuple, but nested tuple indices are not specified in the Array API.)r!ÚtuplerPrÚsliceÚEllipsisrr"ÚndarrayÚ IndexErrorÚtypeÚappendr$rÚlenr_r>Ú enumerateÚzipÚstartÚoperatorÚindexr%Ústopr )r0ÚkeyÚ_keyÚiÚnonexpanding_keyÚ single_axesÚ n_ellipsisÚ key_has_maskÚ n_single_axesÚ indexed_shapeÚellipsis_startÚposÚ ellipsis_endÚsideÚf_rangernrqs r*Ú_validate_indexzArray._validate_indexs–€õ^! ¥eÑ,Ô,Ð8ˆsˆs°3°&ˆØð ð ˆAݘ!�TÑ"Ô"ð ݘ1�mÑ,Ô,ð å˜a¥Ñ'Ô'ð ð�’=�=Ø�9ݘa¥Ñ'Ô'ðå˜a¥¤Ñ,Ô,ðõ!ð6¨ð6ð6µ°a±´ð6ð6ð6ñôðøðÐØˆ ؈ ؈ Øð .ð .ˆA؈}Ø ×'Ò'¨Ñ*Ô*Ð*ݘa¥Ñ'Ô'ð .­:°a½¼Ñ+DÔ+Dð .Ø”w¥/Ð1Ð1Ø'+˜ Ø×&Ò& qÑ)Ô)Ð)Ð)ð�H’}�}Ø" a™˜ ˜ à#×*Ò*¨1Ñ-Ô-Ð-øå˜KÑ(Ô(ˆ Ø ˜Š>ˆ>Ø ˆFØ ˜1Š_ˆ_ð ð  M°D´IÒ$=Ð$=Ý ð2�t”yð2ð2Ø$ð2ð2ð2ñôð𠘊?ˆ?Ø œJˆMˆMà!ˆNÝ#Ð$4Ñ5Ô5ð ð ‘��QÝ" 1¥eÑ,Ô,ðµ ¸1½b¼jÑ0IÔ0IðØ�H’}�}Ø),˜Ø˜øØ!Ð-Ð-Ð-Øœ9¨ ¸Ñ(FÑGˆLà” ˜?˜N˜?Ô+¨d¬j¸¸¸Ô.GÑGð õ˜;¨ Ñ6Ô6ð2 ñ2 ‰GˆAˆtݘ!�UÑ#Ô#ð1 ؘ1’9�9Ø+�G�GàI¨$ÐIÐI°T¸A±XÐIÐIÐI�GØ”7Ð&ð Ý (¤¨q¬wÑ 7Ô 7˜ð"& ¨Ð 6Ð 6Ò 6Ð 6°$Ò 6Ð 6Ð 6Ð 6Ý",ð!1¨ð!1ð!1°eð!1ð!1Ø#*ð!1ð!1ØAEð!1ð!1ð!1ñ#ô#ðð!7øõ%ðððØ˜ðøøøð”6Ð%ð Ý'œ~¨a¬fÑ5Ô5˜ð"& ¨Ð 5Ð 5Ò 5Ð 5°Ò 5Ð 5Ð 5Ð 5Ý",ð!1¨ð!1ð!1°dð!1ð!1Ø#*ð!1ð!1ØAEð!1ð!1ð!1ñ#ô#ðð!6øõ%ðððØ˜ðøøøð&õ˜A�uÑ%Ô%ð Ø”7�oÐ-Ð-µ#°d±)´)¸q².°.Ý% c­5Ñ1Ô1Ð1Ð1Ð1Ý$ðF¨QðFðFݘs™8œ8ðFðFðFñôðð ”W¥Ð/Ð/°A´F¸a²K°KÝ$ð6¨Qð6ð6ð6ñôðùõ ˜A�uÑ%Ô%ð Ý ðB¨ðBðBðBñôðñ ð]2 ð2 s$É=KË KËKËL!Ì! L.Ì-L.có¢—|jtvrtd¦«‚|j ¦«}|j |¦«S)z1 Performs the operation __abs__. z*Only numeric dtypes are allowed in __abs__)r$r r%rÚ__abs__r)r+©r0Úress r*r‚z Array.__abs__©óI€ð Œ:�_Ð ,Ð ,ÝÐHÑIÔIÐ IØŒk×!Ò!Ñ#Ô#ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,úUnion[int, float, Array]cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __add__. ÚnumericÚ__add__)rUrRrbrr‰r)r+©r0rFr„s r*r‰z Array.__add__²óq€ð×*Ò*¨5°)¸YÑGÔGˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×!Ò! %¤,Ñ/Ô/ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,úUnion[int, bool, Array]cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __and__. úinteger or booleanÚ__and__)rUrRrbrr�r)r+rŠs r*r�z Array.__and__½ór€ð×*Ò*¨5Ð2FÈ ÑRÔRˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×!Ò! %¤,Ñ/Ô/ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,)Ú api_versionr‘ú Optional[str]útypes.ModuleTypecób—|�'| d¦«std|›�¦«‚tS)Nz2021.z Unrecognized array API version: )rSÚ ValueErrorr)r0r‘s r*Ú__array_namespace__zArray.__array_namespace__Ès:€ð Ð "¨;×+AÒ+AÀ'Ñ+JÔ+JÐ "ÝÐOÀ ÐOÐOÑPÔPÐ PÝÐr,rPcóv—|jjdkrtd¦«‚|j ¦«}|S)z2 Performs the operation __bool__. rz0bool is only allowed on arrays with 0 dimensions)rr_r%Ú__bool__rƒs r*r˜zArray.__bool__Ïs;€ð Œ;Ô ˜qÒ Ð ÝÐNÑOÔOÐ OØŒk×"Ò"Ñ$Ô$ˆØˆ r,rNcóv—|jjdkrtd¦«‚|j ¦«}|S)z5 Performs the operation __complex__. rz3complex is only allowed on arrays with 0 dimensions)rr_r%Ú __complex__rƒs r*ršzArray.__complex__Ùs;€ð Œ;Ô ˜qÒ Ð ÝÐQÑRÔRÐ RØŒk×%Ò%Ñ'Ô'ˆØˆ r,©ÚstreamrœÚNonercó8—|j |¬¦«S)z4 Performs the operation __dlpack__. r›)rÚ __dlpack__)r0rœs r*rŸzArray.__dlpack__ãs€ðŒ{×%Ò%¨VÐ%Ñ4Ô4Ð4r,úTuple[IntEnum, int]có4—|j ¦«S)z; Performs the operation __dlpack_device__. )rÚ__dlpack_device__r7s r*r¢zArray.__dlpack_device__és€ð Œ{×,Ò,Ñ.Ô.Ð.r,úUnion[int, float, bool, Array]cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __eq__. ÚallÚ__eq__)rUrRrbrr¦r)r+rŠs r*r¦z Array.__eq__ðsq€ð ×*Ò*¨5°%¸ÑBÔBˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk× Ò  ¤Ñ.Ô.ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,rOcó°—|jjdkrtd¦«‚|jtvrtd¦«‚|j ¦«}|S)z3 Performs the operation __float__. rz1float is only allowed on arrays with 0 dimensionsz5float is not allowed on complex floating-point arrays)rr_r%r$r Ú __float__rƒs r*r¨zArray.__float__ýsX€ð Œ;Ô ˜qÒ Ð ÝÐOÑPÔPÐ PØ Œ:Õ1Ð 1Ð 1ÝÐSÑTÔTÐ TØŒk×#Ò#Ñ%Ô%ˆØˆ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z6 Performs the operation __floordiv__. ú real numericÚ __floordiv__)rUrRrbrr«r)r+rŠs r*r«zArray.__floordiv__ sq€ð×*Ò*¨5°.À.ÑQÔQˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×&Ò& u¤|Ñ4Ô4ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __ge__. rªÚ__ge__)rUrRrbrr­r)r+rŠs r*r­z Array.__ge__óq€ð×*Ò*¨5°.À(ÑKÔKˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk× Ò  ¤Ñ.Ô.ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,rrúKUnion[int, slice, ellipsis, Tuple[Union[int, slice, ellipsis], ...], Array]có—| |¦«t|t¦«r|j}|j |¦«}| |¦«S)z5 Performs the operation __getitem__. )r€r!rrÚ __getitem__r+)r0rrr„s r*r±zArray.__getitem__sV€ð ×Ò˜SÑ!Ô!Ð!Ý �c�5Ñ !Ô !ð à”*ˆCØŒk×%Ò% cÑ*Ô*ˆØ�yŠy˜‰~Œ~Ðr,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __gt__. rªÚ__gt__)rUrRrbrr³r)r+rŠs r*r³z Array.__gt__2r®r,rMcó°—|jjdkrtd¦«‚|jtvrtd¦«‚|j ¦«}|S)z1 Performs the operation __int__. rz/int is only allowed on arrays with 0 dimensionsz3int is not allowed on complex floating-point arrays)rr_r%r$r Ú__int__rƒs r*rµz Array.__int__=sX€ð Œ;Ô ˜qÒ Ð ÝÐMÑNÔNÐ NØ Œ:Õ1Ð 1Ð 1ÝÐQÑRÔRÐ RØŒk×!Ò!Ñ#Ô#ˆØˆ r,có8—|j ¦«}|S)z3 Performs the operation __index__. )rÚ __index__rƒs r*r·zArray.__index__Is€ðŒk×#Ò#Ñ%Ô%ˆØˆ r,có¢—|jtvrtd¦«‚|j ¦«}|j |¦«S)z4 Performs the operation __invert__. z8Only integer or boolean dtypes are allowed in __invert__)r$r r%rÚ __invert__r)r+rƒs r*r¹zArray.__invert__PsJ€ð Œ:Õ7Ð 7Ð 7ÝÐVÑWÔWÐ WØŒk×$Ò$Ñ&Ô&ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __le__. rªÚ__le__)rUrRrbrr»r)r+rŠs r*r»z Array.__le__Yr®r,úUnion[int, Array]cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z4 Performs the operation __lshift__. ÚintegerÚ __lshift__)rUrRrbrr¿r)r+rŠs r*r¿zArray.__lshift__dóq€ð×*Ò*¨5°)¸\ÑJÔJˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×$Ò$ U¤\Ñ2Ô2ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __lt__. rªÚ__lt__)rUrRrbrrÂr)r+rŠs r*rÂz Array.__lt__or®r,có¸—| |dd¦«}|tur|S|j |j¦«}|j |¦«S)z4 Performs the operation __matmul__. rˆÚ __matmul__)rUrRrrÄr)r+rŠs r*rÄzArray.__matmul__zsX€ð ×*Ò*¨5°)¸\ÑJÔJˆØ •NÐ "Ð "؈LØŒk×$Ò$ U¤\Ñ2Ô2ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __mod__. rªÚ__mod__)rUrRrbrrÆr)r+rŠs r*rÆz Array.__mod__†sq€ð×*Ò*¨5°.À)ÑLÔLˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×!Ò! %¤,Ñ/Ô/ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __mul__. rˆÚ__mul__)rUrRrbrrÈr)r+rŠs r*rÈz Array.__mul__‘r‹r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __ne__. r¥Ú__ne__)rUrRrbrrÊr)r+rŠs r*rÊz Array.__ne__œsq€ð×*Ò*¨5°%¸ÑBÔBˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk× Ò  ¤Ñ.Ô.ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,có¢—|jtvrtd¦«‚|j ¦«}|j |¦«S)z1 Performs the operation __neg__. z*Only numeric dtypes are allowed in __neg__)r$r r%rÚ__neg__r)r+rƒs r*rÌz Array.__neg__§r…r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z0 Performs the operation __or__. rŽÚ__or__)rUrRrbrrÎr)r+rŠs r*rÎz Array.__or__°sr€ð×*Ò*¨5Ð2FÈÑQÔQˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk× Ò  ¤Ñ.Ô.ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,có¢—|jtvrtd¦«‚|j ¦«}|j |¦«S)z1 Performs the operation __pos__. z*Only numeric dtypes are allowed in __pos__)r$r r%rÚ__pos__r)r+rƒs r*rÐz Array.__pos__»r…r,cój—ddlm}| |dd¦«}|tur|S|||¦«S)z1 Performs the operation __pow__. r©ÚpowrˆÚ__pow__©Ú_elementwise_functionsrÓrUrR©r0rFrÓs r*rÔz Array.__pow__ÄsQ€ð 0Ð/Ð/Ð/Ð/Ð/à×*Ò*¨5°)¸YÑGÔGˆØ •NÐ "Ð "؈Lðˆs�4˜ÑÔÐr,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z4 Performs the operation __rshift__. r¾Ú __rshift__)rUrRrbrrÙr)r+rŠs r*rÙzArray.__rshift__ÑrÀr,Úvaluecó—| |¦«t|t¦«r|j}|j |t |¦«j¦«dS)z5 Performs the operation __setitem__. N)r€r!rrÚ __setitem__r)r0rrrÚs r*rÜzArray.__setitem__ÜsX€ð ×Ò˜SÑ!Ô!Ð!Ý �c�5Ñ !Ô !ð à”*ˆCØ Œ ×Ò ¥W¨U¡^¤^Ô%:Ñ;Ô;Ð;Ð;Ð;r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __sub__. rˆÚ__sub__)rUrRrbrrÞr)r+rŠs r*rÞz Array.__sub__ïr‹r,úUnion[float, Array]cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z5 Performs the operation __truediv__. úfloating-pointÚ __truediv__)rUrRrbrrâr)r+rŠs r*râzArray.__truediv__üsr€ð×*Ò*¨5Ð2BÀMÑRÔRˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×%Ò% e¤lÑ3Ô3ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __xor__. rŽÚ__xor__)rUrRrbrrär)r+rŠs r*räz Array.__xor__r�r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __iadd__. rˆÚ__iadd__)rUrRrræ©r0rFs r*ræzArray.__iadd__óH€ð×*Ò*¨5°)¸ZÑHÔHˆØ •NÐ "Ð "؈LØ Œ ×Ò˜Uœ\Ñ*Ô*Ð*؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __radd__. rˆÚ__radd__)rUrRrbrrêr)r+rŠs r*rêzArray.__radd__óq€ð×*Ò*¨5°)¸ZÑHÔHˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×"Ò" 5¤<Ñ0Ô0ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __iand__. rŽÚ__iand__)rUrRrrírçs r*rízArray.__iand__'óI€ð×*Ò*¨5Ð2FÈ ÑSÔSˆØ •NÐ "Ð "؈LØ Œ ×Ò˜Uœ\Ñ*Ô*Ð*؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __rand__. rŽÚ__rand__)rUrRrbrrðr)r+rŠs r*rðzArray.__rand__1ór€ð×*Ò*¨5Ð2FÈ ÑSÔSˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×"Ò" 5¤<Ñ0Ô0ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z7 Performs the operation __ifloordiv__. rªÚ __ifloordiv__)rUrRrrórçs r*rózArray.__ifloordiv__<sH€ð×*Ò*¨5°.À/ÑRÔRˆØ •NÐ "Ð "؈LØ Œ ×!Ò! %¤,Ñ/Ô/Ð/؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z7 Performs the operation __rfloordiv__. rªÚ __rfloordiv__)rUrRrbrrõr)r+rŠs r*rõzArray.__rfloordiv__Fsq€ð×*Ò*¨5°.À/ÑRÔRˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×'Ò'¨¬ Ñ5Ô5ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z5 Performs the operation __ilshift__. r¾Ú __ilshift__)rUrRrr÷rçs r*r÷zArray.__ilshift__QóH€ð×*Ò*¨5°)¸]ÑKÔKˆØ •NÐ "Ð "؈LØ Œ ×Ò ¤ Ñ-Ô-Ð-؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z5 Performs the operation __rlshift__. r¾Ú __rlshift__)rUrRrbrrúr)r+rŠs r*rúzArray.__rlshift__[óq€ð×*Ò*¨5°)¸]ÑKÔKˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×%Ò% e¤lÑ3Ô3ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,có¸—| |dd¦«}|tur|S|j |j¦«}|j |¦«S)z5 Performs the operation __imatmul__. rˆÚ __imatmul__)rUrRrrýr)r+rŠs r*rýzArray.__imatmul__fóX€ð ×*Ò*¨5°)¸]ÑKÔKˆØ •NÐ "Ð "؈LØŒk×%Ò% e¤lÑ3Ô3ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,có¸—| |dd¦«}|tur|S|j |j¦«}|j |¦«S)z5 Performs the operation __rmatmul__. rˆÚ __rmatmul__)rUrRrrr)r+rŠs r*rzArray.__rmatmul__rrþr,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __imod__. rªÚ__imod__)rUrRrrrçs r*rzArray.__imod__~sH€ð×*Ò*¨5°.À*ÑMÔMˆØ •NÐ "Ð "؈LØ Œ ×Ò˜Uœ\Ñ*Ô*Ð*؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __rmod__. rªÚ__rmod__)rUrRrbrrr)r+rŠs r*rzArray.__rmod__ˆsq€ð×*Ò*¨5°.À*ÑMÔMˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×"Ò" 5¤<Ñ0Ô0ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __imul__. rˆÚ__imul__)rUrRrrrçs r*rzArray.__imul__“rèr,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __rmul__. rˆÚ__rmul__)rUrRrbrrr)r+rŠs r*rzArray.__rmul__�rër,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z1 Performs the operation __ior__. rŽÚ__ior__)rUrRrr rçs r*r z Array.__ior__¨sI€ð×*Ò*¨5Ð2FÈ ÑRÔRˆØ •NÐ "Ð "؈LØ Œ ×Ò˜EœLÑ)Ô)Ð)؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z1 Performs the operation __ror__. rŽÚ__ror__)rUrRrbrr r)r+rŠs r*r z Array.__ror__²r�r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __ipow__. rˆÚ__ipow__)rUrRrrrçs r*rzArray.__ipow__½rèr,cój—ddlm}| |dd¦«}|tur|S|||¦«S)z2 Performs the operation __rpow__. rrÒrˆÚ__rpow__rÕr×s r*rzArray.__rpow__ÇsQ€ð 0Ð/Ð/Ð/Ð/Ð/à×*Ò*¨5°)¸ZÑHÔHˆØ •NÐ "Ð "؈Lðˆs�5˜$ÑÔÐr,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z5 Performs the operation __irshift__. r¾Ú __irshift__)rUrRrrrçs r*rzArray.__irshift__Ôrør,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z5 Performs the operation __rrshift__. r¾Ú __rrshift__)rUrRrbrrr)r+rŠs r*rzArray.__rrshift__Þrûr,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __isub__. rˆÚ__isub__)rUrRrrrçs r*rzArray.__isub__érèr,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __rsub__. rˆÚ__rsub__)rUrRrbrrr)r+rŠs r*rzArray.__rsub__órër,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z6 Performs the operation __itruediv__. ráÚ __itruediv__)rUrRrrrçs r*rzArray.__itruediv__þsI€ð×*Ò*¨5Ð2BÀNÑSÔSˆØ •NÐ "Ð "؈LØ Œ × Ò  ¤Ñ.Ô.Ð.؈ r,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z6 Performs the operation __rtruediv__. ráÚ __rtruediv__)rUrRrbrrr)r+rŠs r*rzArray.__rtruediv__sr€ð×*Ò*¨5Ð2BÀNÑSÔSˆØ •NÐ "Ð "؈LØ×.Ò.¨t°UÑ;Ô;‰ ˆˆeØŒk×&Ò& u¤|Ñ4Ô4ˆØŒ~×"Ò" 3Ñ'Ô'Ð'r,cóˆ—| |dd¦«}|tur|S|j |j¦«|S)z2 Performs the operation __ixor__. rŽÚ__ixor__)rUrRrrrçs r*rzArray.__ixor__rîr,cóê—| |dd¦«}|tur|S| ||¦«\}}|j |j¦«}|j |¦«S)z2 Performs the operation __rxor__. rŽÚ__rxor__)rUrRrbrr r)r+rŠs r*r zArray.__rxor__rñr,ÚdevicercóX—|�td¦«‚|dkr|Std|›�¦«‚)Nz3The stream argument to to_device() is not supportedÚcpuzUnsupported device )r•)r0r!rœs r*Ú to_devicezArray.to_device(s<€Ø Ð ÝÐRÑSÔSÐ SØ �UŠ?ˆ?؈KÝÐ9¨vÐ9Ð9Ñ:Ô:Ð:r,rcó—|jjS)z– Array API compatible wrapper for :py:meth:`np.ndarray.dtype `. See its docstring for more information. )rr$r7s r*r$z Array.dtype/ó€ðŒ{Ô Ð r,có—dS)Nr#©r7s r*r!z Array.device8s€àˆur,có$—ddlm}||¦«S)Nr)Úmatrix_transpose)Úlinalgr*)r0r*s r*ÚmTzArray.mT=s%€à,Ð,Ð,Ð,Ð,Ð,ØÐ Ñ%Ô%Ð%r,có—|jjS)z” Array API compatible wrapper for :py:meth:`np.ndarray.ndim `. See its docstring for more information. )rr_r7s r*r_z Array.ndimBó€ðŒ{ÔÐr,úTuple[int, ...]có—|jjS)z– Array API compatible wrapper for :py:meth:`np.ndarray.shape `. See its docstring for more information. )rr>r7s r*r>z Array.shapeKr&r,có—|jjS)z” Array API compatible wrapper for :py:meth:`np.ndarray.size `. See its docstring for more information. )rÚsizer7s r*r2z Array.sizeTr.r,có~—|jdkrtd¦«‚|j |jj¦«S)zŽ Array API compatible wrapper for :py:meth:`np.ndarray.T `. See its docstring for more information. ézwx.T requires x to have 2 dimensions. Use x.mT to transpose stacks of matrices and permute_dims() to permute dimensions.)r_r•r)r+rÚTr7s r*r5zArray.T]sD€ð Œ9˜Š>ˆ>ÝðWñXôXð XØŒ~×"Ò" 4¤;¤=Ñ1Ô1Ð1r,)r0rr1r2)N)r$rBr1rC)rFrGrHr2rIr2r1r)r1r])r0rr1r)r0rrFr†r1r)r0rrFrŒr1r)r0rr‘r’r1r“)r0rr1rP)r0rr1rN)r0rrœr�r1r)r0rr1r )r0rrFr£r1r)r0rr1rO)r0rrrr¯r1r)r0rr1rM)r0rrFr¼r1r)r0rrFrr1r)rrr¯rÚr£r1r�)r0rrFrßr1r)rœr�r0rr!rr1r)r1r)r1r)r1r)r1rM)r1r/)UÚ__name__Ú __module__Ú __qualname__Ú__doc__Ú__annotations__Ú classmethodr+r r5rArErUrQÚ staticmethodrbr€r‚r‰r�r–r˜ršrŸr¢r¦r¨r«r­r±r³rµr·r¹r»r¿rÂrÄrÆrÈrÊrÌrÎrÐrÔrÙrÜrÞrârärærêrírðrórõr÷rúrýrrrrrr r rrrrrrrrrr r$Úpropertyr$r!r,r_r>r2r5Ú __classcell__)r)s@r*rr-sºø€€€€€€ð ð ð!Ð Ð Ñ ðððððñ„[ðð. ð ð ð?ð?ð?ð?ð %ð %ð %ð %ð4ð4ð4ð4ð4ð'ð'ð'ð'ðT08ð08ð08ðdð ð ð ñ„\ð ðHbðbðbðL(ð(ð(ð(ð (ð (ð (ð (ð (ð (ð (ð (ð9=ððððððððððððððð6:ð5ð5ð5ð5ð5ð5ð /ð/ð/ð/ð (ð (ð (ð (ð ð ð ð ð (ð (ð (ð (ð (ð (ð (ð (ððððð& (ð (ð (ð (ð ð ð ð ððððð(ð(ð(ð(ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð(ð(ð(ð(ð (ð (ð (ð (ð(ð(ð(ð(ð  ð  ð  ð  ð (ð (ð (ð (ð<ð<ð<ð<ð& (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð  ð  ð  ð  ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ððððð (ð (ð (ð (ð;ð;ð;ð;ð;ðð!ð!ð!ñ„Xð!ððððñ„Xððð&ð&ð&ñ„Xð&ðð ð ð ñ„Xð ðð!ð!ð!ñ„Xð!ðð ð ð ñ„Xð ðð 2ð 2ð 2ñ„Xð 2ð 2ð 2ð 2ð 2r,r)$r9Ú __future__rroÚenumrÚ_creation_functionsrÚ_dtypesrrr r r r r rrÚtypingrrrrrrÚtypesÚ_typingrrrÚ numpy.typingÚnptÚnumpyr"rrr(r,r*úrIs’ðð ð ð#Ð"Ð"Ð"Ð"Ð"à€€€ØÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðMÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLØ € € € àðØ6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ØÐÐÐÐÐàÐÐÐàÐÐÐÐÐð|2ð|2ð|2ð|2ð|2ñ|2ô|2ð|2ð|2ð|2r,