§ x<ˆj-Gãó(—ddlmZddlmZmZmZmZmZmZddl m Z ddl m Z ddl mZddlmZerdd lmZmZmZmZmZmZdd lmZdd lZdd lZGd „d e¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZddœdVd„Z ddœdWd"„Z!dXd#„Z"dd$œdYd&„Z#dZd'„Z$dXd(„Z%dXd)„Z&d[d*„Z'dd+d,œd\d0„Z(d]d2„Z)d d3œd^d6„Z*dXd7„Z+d[d8„Z,d d3œd^d9„Z-d:d;œd_d>„Z.d`d?„Z/d@„Z0d[dA„Z1dBdCœdadE„Z2dbdG„Z3ddHœdcdK„Z4dd dLœdddO„Z5ddœdWdP„Z6d dddQœdedT„Z7gdU¢Z8d S)fé)Ú annotationsé)Ú_floating_dtypesÚ_numeric_dtypesÚfloat32Úfloat64Ú complex64Ú complex128)Úreshape)ÚArrayé)Únormalize_axis_tuple)Ú TYPE_CHECKING)ÚLiteralÚOptionalÚSequenceÚTupleÚUnionÚDtype)Ú NamedTupleNcó$—eZdZUded<ded<dS)Ú EighResultr Ú eigenvaluesÚ eigenvectorsN©Ú__name__Ú __module__Ú __qualname__Ú__annotations__©óúj/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/numpy/array_api/linalg.pyrrs*€€€€€€ØÐÐÑØÐÐÑÐÐr!rcó$—eZdZUded<ded<dS)ÚQRResultr ÚQÚRNrr r!r"r$r$s"€€€€€€Ø €H€H�HØ €H€H�H€H€Hr!r$có$—eZdZUded<ded<dS)Ú SlogdetResultr ÚsignÚ logabsdetNrr r!r"r(r(!s'€€€€€€Ø€K€K�KØÐÐÑÐÐr!r(có.—eZdZUded<ded<ded<dS)Ú SVDResultr ÚUÚSÚVhNrr r!r"r,r,%s+€€€€€€Ø €H€H�HØ €H€H�HØ €I€I�I€I€Ir!r,F)ÚupperÚxr r0ÚboolÚreturncóâ—|jtvrtd¦«‚tj |j¦«}|rtj|¦«j Stj|¦«S)zŽ Array API compatible wrapper for :py:func:`np.linalg.cholesky `. See its docstring for more information. z2Only floating-point dtypes are allowed in cholesky) ÚdtyperÚ TypeErrorÚnpÚlinalgÚcholeskyÚ_arrayr Ú_newÚmT)r1r0ÚLs r"r9r9,s_€ð „wÕ&Ð&Ð&ÝÐLÑMÔMÐMÝ Œ ×Ò˜1œ8Ñ$Ô$€AØ ð ÝŒz˜!‰}Œ}ÔÐÝ Œ:�a‰=Œ=Ðr!éÿÿÿÿ©ÚaxisÚx1Úx2r@Úintcóp—|jtvs|jtvrtd¦«‚|j|jkrt d¦«‚|jdkrt d¦«‚|j|dkrt d¦«‚t jtj |j |j |¬¦«¦«S)zz Array API compatible wrapper for :py:func:`np.cross `. See its docstring for more information. z(Only numeric dtypes are allowed in crossz"x1 and x2 must have the same shaperz/cross() requires arrays of dimension at least 1ézcross() dimension must equal 3r?) r5rr6ÚshapeÚ ValueErrorÚndimr r;r7Úcrossr:)rArBr@s r"rIrI<s©€ð  „x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐBÑCÔCÐCà „x�2”8ÒÐÝÐ=Ñ>Ô>Ð>Ø „w�!‚|€|ÝÐJÑKÔKÐKà „x�„~˜ÒÐÝÐ9Ñ:Ô:Ð:Ý Œ:•b”h˜rœy¨"¬)¸$Ð?Ñ?Ô?Ñ @Ô @Ð@r!có¨—|jtvrtd¦«‚tjt j |j¦«¦«S)z„ Array API compatible wrapper for :py:func:`np.linalg.det `. See its docstring for more information. z-Only floating-point dtypes are allowed in det) r5rr6r r;r7r8Údetr:©r1s r"rKrKNsA€ð „wÕ&Ð&Ð&ÝÐGÑHÔHÐHÝ Œ:•b”i—m’m A¤HÑ-Ô-Ñ .Ô .Ð.r!)ÚoffsetrMcó`—tjtj|j|dd¬¦«¦«S)z€ Array API compatible wrapper for :py:func:`np.diagonal `. See its docstring for more information. éþÿÿÿr>)rMÚaxis1Úaxis2)r r;r7Údiagonalr:)r1rMs r"rRrR[s)€õ Œ:•b”k !¤(°6ÀÈ2ÐNÑNÔNÑ OÔ OÐOr!có—|jtvrtd¦«‚tt t jtj  |j ¦«¦«ŽS)z† Array API compatible wrapper for :py:func:`np.linalg.eigh `. See its docstring for more information. z.Only floating-point dtypes are allowed in eigh) r5rr6rÚmapr r;r7r8Úeighr:rLs r"rUrUfsJ€ð „wÕ&Ð&Ð&ÝÐHÑIÔIÐIõ •s�5œ:¥r¤y§~¢~°a´hÑ'?Ô'?Ñ@Ô@Ð AÐAr!có¨—|jtvrtd¦«‚tjt j |j¦«¦«S)zŽ Array API compatible wrapper for :py:func:`np.linalg.eigvalsh `. See its docstring for more information. z2Only floating-point dtypes are allowed in eigvalsh) r5rr6r r;r7r8Úeigvalshr:rLs r"rWrWvsC€ð „wÕ&Ð&Ð&ÝÐLÑMÔMÐMå Œ:•b”i×(Ò(¨¬Ñ2Ô2Ñ 3Ô 3Ð3r!có¨—|jtvrtd¦«‚tjt j |j¦«¦«S)z„ Array API compatible wrapper for :py:func:`np.linalg.inv `. See its docstring for more information. z-Only floating-point dtypes are allowed in inv) r5rr6r r;r7r8Úinvr:rLs r"rYrYƒsA€ð „wÕ&Ð&Ð&ÝÐGÑHÔHÐHå Œ:•b”i—m’m A¤HÑ-Ô-Ñ .Ô .Ð.r!cóº—|jtvs|jtvrtd¦«‚tjt j|j|j¦«¦«S)z| Array API compatible wrapper for :py:func:`np.matmul `. See its docstring for more information. z)Only numeric dtypes are allowed in matmul)r5rr6r r;r7Úmatmulr:©rArBs r"r[r[’sL€ð „x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐCÑDÔDÐDå Œ:•b”i ¤ ¨2¬9Ñ5Ô5Ñ 6Ô 6Ð6r!Úfro)ÚkeepdimsÚordr^r_ú2Optional[Union[int, float, Literal['fro', 'nuc']]]có°—|jtvrtd¦«‚tjt j |jd||¬¦«¦«S)ú† Array API compatible wrapper for :py:func:`np.linalg.norm `. See its docstring for more information. z5Only floating-point dtypes are allowed in matrix_norm)rOr>©r@r^r_) r5rr6r r;r7r8Únormr:)r1r^r_s r"Ú matrix_normre¦sJ€ð „wÕ&Ð&Ð&ÝÐOÑPÔPÐPå Œ:•b”i—n’n Q¤X°HÀxÐUX�nÑYÔYÑ ZÔ ZÐZr!Úncóª—|jtvrtd¦«‚tjt j |j|¦«¦«S)zˆ Array API compatible wrapper for :py:func:`np.matrix_power `. See its docstring for more information. zMOnly floating-point dtypes are allowed for the first argument of matrix_power) r5rr6r r;r7r8Ú matrix_powerr:)r1rfs r"rhrh´sG€ð „wÕ&Ð&Ð&ÝÐgÑhÔhÐhõ Œ:•b”i×,Ò,¨Q¬X°qÑ9Ô9Ñ :Ô :Ð:r!)ÚrtolriúOptional[Union[float, Array]]cóZ—|jdkrtj d¦«‚tj |jd¬¦«}|€T| dd¬¦«t |jd d…¦«ztj|j ¦«j z}nZt|t¦«r|j}| dd¬¦«tj |¦«d tjfz}tjtj||kd¬ ¦«¦«S) z† Array API compatible wrapper for :py:func:`np.matrix_rank `. See its docstring for more information. r zA1-dimensional array given. Array must be at least two-dimensionalF©Ú compute_uvNr>T)r@r^rO.r?)rHr7r8Ú LinAlgErrorÚsvdr:ÚmaxrFÚfinfor5ÚepsÚ isinstancer ÚasarrayÚnewaxisr;Ú count_nonzero)r1rir.Útols r"Ú matrix_rankrxÃsô€ð „v�‚z€zÝŒi×#Ò#Ð$gÑhÔhÐhÝ Œ � Š �a”h¨5ˆ Ñ1Ô1€AØ €|Ø�eŠe˜ dˆeÑ+Ô+­c°!´'¸"¸#¸#´,Ñ.?Ô.?Ñ?Å"Ä(È1Ì7ÑBSÔBSÔBWÑWˆˆå �d�EÑ "Ô "ð Ø”;ˆDð�eŠe˜ dˆeÑ+Ô+­B¬J°tÑ,<Ô,<¸SÅ"Ä*¸_Ô,MÑMˆÝ Œ:•bÔ& q¨3¢w°RÐ8Ñ8Ô8Ñ 9Ô 9Ð9r!có�—|jdkrtd¦«‚tjt j|jdd¦«¦«S)Nr z5x must be at least 2-dimensional for matrix_transposer>rO)rHrGr r;r7Úswapaxesr:rLs r"Úmatrix_transposer{Ûs<€Ø„v�‚z€zÝÐPÑQÔQÐQÝ Œ:•b”k !¤(¨B°Ñ3Ô3Ñ 4Ô 4Ð4r!có—|jtvs|jtvrtd¦«‚|jdks |jdkrt d¦«‚t jtj|j |j ¦«¦«S)zz Array API compatible wrapper for :py:func:`np.outer `. See its docstring for more information. z(Only numeric dtypes are allowed in outerrz/The input arrays to outer must be 1-dimensional) r5rr6rHrGr r;r7Úouterr:r\s r"r}r}ásr€ð „x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐBÑCÔCÐCð „w�!‚|€|�r”w !’|�|ÝÐJÑKÔKÐKå Œ:•b”h˜rœy¨"¬)Ñ4Ô4Ñ 5Ô 5Ð5r!có&—|jtvrtd¦«‚|€;t|jdd…¦«t j|j¦«jz}tj t j   |j |¬¦«¦«S)z† Array API compatible wrapper for :py:func:`np.linalg.pinv `. See its docstring for more information. z.Only floating-point dtypes are allowed in pinvNrO)Úrcond) r5rr6rprFr7rqrrr r;r8Úpinvr:)r1ris r"r€r€ósw€ð „wÕ&Ð&Ð&ÝÐHÑIÔIÐIð €|Ý�1”7˜2˜3˜3”<Ñ Ô ¥2¤8¨A¬GÑ#4Ô#4Ô#8Ñ8ˆÝ Œ:•b”i—n’n Q¤X°T�nÑ:Ô:Ñ ;Ô ;Ð;r!Úreduced©ÚmoderƒúLiteral['reduced', 'complete']c óÆ—|jtvrtd¦«‚tt t jtj  |j |¬¦«¦«ŽS)z‚ Array API compatible wrapper for :py:func:`np.linalg.qr `. See its docstring for more information. z,Only floating-point dtypes are allowed in qrr‚) r5rr6r$rTr r;r7r8Úqrr:)r1rƒs r"r†r†sN€ð „wÕ&Ð&Ð&ÝÐFÑGÔGÐGõ •S�œ¥R¤Y§\¢\°!´(À \Ñ%FÔ%FÑGÔGÐ HÐHr!có—|jtvrtd¦«‚tt t jtj  |j ¦«¦«ŽS)zŒ Array API compatible wrapper for :py:func:`np.linalg.slogdet `. See its docstring for more information. z1Only floating-point dtypes are allowed in slogdet) r5rr6r(rTr r;r7r8Úslogdetr:rLs r"rˆrˆsL€ð „wÕ&Ð&Ð&ÝÐKÑLÔLÐLõ �#�eœj­"¬)×*;Ò*;¸A¼HÑ*EÔ*EÑFÔFÐ GÐGr!cóz—ddlm}m}m}m}m}m}m}ddlm } ||¦«\}} ||¦«||¦«||¦«\}} |||¦«\} } |j dkr| j }n| j }|| ¦«rdnd}||¦«}|||||¬¦«}| |  | d¬ ¦«¦«S) Nr )Ú _makearrayÚ_assert_stacked_2dÚ_assert_stacked_squareÚ _commonTypeÚ isComplexTypeÚget_linalg_error_extobjÚ_raise_linalgerror_singular)Ú _umath_linalgrzDD->Dzdd->d)Ú signatureÚextobjF)Úcopy)Ú linalg.linalgrŠr‹rŒr�rŽr�r�r8r‘rHÚsolve1ÚsolveÚastype)ÚaÚbrŠr‹rŒr�rŽr�r�r‘Ú_ÚwrapÚtÚresult_tÚgufuncr’r“Úrs r"Ú_solver¡+sK€ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð>ð'Ð&Ð&Ð&Ð&Ð&à ˆ:�a‰=Œ=�D€A€qØÐ�qÑÔÐØÐ˜1ÑÔÐØˆj˜‰mŒm�G€A€tØ�+˜a Ñ#Ô#�K€A€xð „v�‚{€{ØÔ%ˆˆàÔ$ˆð)˜=¨Ñ+Ô+Ð8��°€IØ $Ð $Ð%@Ñ AÔ A€F؈ˆq�!˜y°Ð8Ñ8Ô8€Aà ˆ4�—’˜¨�Ñ.Ô.Ñ /Ô /Ð/r!có°—|jtvs|jtvrtd¦«‚tjt |j|j¦«¦«S)zˆ Array API compatible wrapper for :py:func:`np.linalg.solve `. See its docstring for more information. z/Only floating-point dtypes are allowed in solve)r5rr6r r;r¡r:r\s r"r—r—FsL€ð „xÕ'Ð'Ð'¨2¬8Õ;KÐ+KÐ+KÝÐIÑJÔJÐJå Œ:•f˜RœY¨¬ Ñ2Ô2Ñ 3Ô 3Ð3r!T©Ú full_matricesr¤c óÆ—|jtvrtd¦«‚tt t jtj  |j |¬¦«¦«ŽS)z„ Array API compatible wrapper for :py:func:`np.linalg.svd `. See its docstring for more information. z-Only floating-point dtypes are allowed in svdr£) r5rr6r,rTr r;r7r8ror:)r1r¤s r"roroSsN€ð „wÕ&Ð&Ð&ÝÐGÑHÔHÐHõ •c�%œ*¥b¤i§m¢m°A´HÈM mÑ&ZÔ&ZÑ[Ô[Ð \Ð\r!úUnion[Array, Tuple[Array, ...]]có¬—|jtvrtd¦«‚tjt j |jd¬¦«¦«S)Nz1Only floating-point dtypes are allowed in svdvalsFrl) r5rr6r r;r7r8ror:rLs r"Úsvdvalsr¨dsC€Ø„wÕ&Ð&Ð&ÝÐKÑLÔLÐLÝ Œ:•b”i—m’m A¤H¸�mÑ?Ô?Ñ @Ô @Ð@r!©Úaxesrªú/Union[int, Tuple[Sequence[int], Sequence[int]]]có¾—|jtvs|jtvrtd¦«‚tjt j|j|j|¬¦«¦«S)Nz,Only numeric dtypes are allowed in tensordotr©)r5rr6r r;r7Ú tensordotr:)rArBrªs r"r­r­lsQ€ð „x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐFÑGÔGÐGå Œ:•b”l 2¤9¨b¬i¸dÐCÑCÔCÑ DÔ DÐDr!)rMr5r5úOptional[Dtype]c ó"—|jtvrtd¦«‚|€/|jtkrt}n|jt krt }tjtj tj |j |dd|¬¦«¦«¦«S)zz Array API compatible wrapper for :py:func:`np.trace `. See its docstring for more information. z(Only numeric dtypes are allowed in traceNrOr>)rMrPrQr5) r5rr6rrr r r r;r7rtÚtracer:)r1rMr5s r"r°r°us‚€ð  „w•oÐ%Ð%ÝÐBÑCÔCÐCð €}Ø Œ7•gÒ Ð ÝˆEˆEØ ŒW� Ò !Ð !݈Eõ Œ:•b”j¥¤¨!¬(¸6ÈÐSUÐ]bÐ!cÑ!cÔ!cÑdÔdÑ eÔ eÐer!cóR—|jtvs|jtvrtd¦«‚t|j|j¦«}d||jz zt |j¦«z}d||jz zt |j¦«z}||||krtd¦«‚tj |j |j ¦«\}}tj ||d¦«}tj ||d¦«}|dddd…f|dz}tj |d¦«S)Nz)Only numeric dtypes are allowed in vecdot)rz6x1 and x2 must have the same size along the given axisr>.).N).rr)r5rr6rprHÚtuplerFrGr7Úbroadcast_arraysr:Úmoveaxisr r;) rArBr@rHÚx1_shapeÚx2_shapeÚx1_Úx2_Úress r"ÚvecdotrºŠs €Ø „x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐCÑDÔDÐDÝ ˆrŒw˜œÑ Ô €DØ�T˜BœG‘^Ñ$¥u¨R¬X¡¤Ñ6€HØ�T˜BœG‘^Ñ$¥u¨R¬X¡¤Ñ6€HØ�„~˜ $œÒ'Ð'ÝÐQÑRÔRÐRåÔ" 2¤9¨b¬iÑ8Ô8�H€CˆÝ Œ+�c˜4 Ñ $Ô $€CÝ Œ+�c˜4 Ñ $Ô $€Cà ˆc�4˜˜˜ˆlÔ ˜c )œnÑ ,€CÝ Œ:�c˜)”nÑ %Ô %Ð%r!rcú%Optional[Union[int, Tuple[int, ...]]]úOptional[Union[int, float]]có8‡ ‡ —|jtvrtd¦«‚|jŠ |€‰  ¦«Š d}n¾t |t ¦«r§t||j¦«Š t ˆ fd„t‰ j¦«D¦«¦«}||z}tj ‰ |¦«  tj ˆ fd„|D¦«t¬¦«gˆ fd„|D¦«¢R¦«Š d}n|}tjtj ‰ ||¬¦«¦«}|rft'|j¦«}t|€t|j¦«n||j¦«}|D]} d || <Œt|t |¦«¦«}|S) rbz.Only floating-point dtypes are allowed in normNrc3ó$•K—|] }|‰v¯|V—Œ dS)Nr )Ú.0ÚiÚnormalized_axiss €r"ú zvector_norm..¸s-øèè€ÐJÐJ˜1°¸/Ð1IÐ1I�QÐ1IÐ1IÐ1IÐ1IÐJÐJr!có*•—g|]}‰j|‘ŒSr ©rF©r¿rÀr™s €r"ú zvector_norm..»sø€Ð/Ð/Ð/ Q�a”g˜a”jÐ/Ð/Ð/r!)r5có*•—g|]}‰j|‘ŒSr rÄrÅs €r"rÆzvector_norm..»sø€Ð>XÐ>XÐ>XÈa¸q¼wÀq¼zÐ>XÐ>XÐ>Xr!)r@r_r)r5rr6r:Úravelrsr²rrHÚranger7Ú transposer ÚprodrCr r;r8rdÚlistrF) r1r@r^r_Ú_axisÚrestÚnewshaper¹rFrÀr™rÁs @@r"Ú vector_normrРs£øø€ð „wÕ&Ð&Ð&ÝÐHÑIÔIÐI𠌀AØ €|à �GŠG‰IŒIˆØˆˆÝ �D�%Ñ Ô ð õ/¨t°Q´VÑ<Ô<ˆÝÐJÐJÐJÐJ¥ a¤f¡ ¤ ÐJÑJÔJÑJÔJˆØ˜$‘;ˆÝ ŒL˜˜HÑ %Ô %× -Ò -Ý ŒWÐ/Ð/Ð/Ð/¨$Ð/Ñ/Ô/µsÐ ;Ñ ;Ô ;Ð YÐ>XÐ>XÐ>XÐ>XÐSWÐ>XÑ>XÔ>XÐ YÐ Yñ [ô [ˆàˆˆàˆå Œ*•R”Y—^’^ A¨E°s�^Ñ;Ô;Ñ <Ô <€Càð)õ�Q”W‘ ” ˆÝ$°d°l¥U¨1¬6¡]¤] ]ÈÈaÌfÑUÔUˆØð ð ˆA؈E�!‰HˆHÝ�c�5 ™<œ<Ñ(Ô(ˆà €Jr!)r9rIrKrRrUrWrYr[rerhrxr{r}r€r†rˆr—ror¨r­r°rºrÐ)r1r r0r2r3r )rAr rBr r@rCr3r )r1r r3r )r1r rMrCr3r )r1r r3r)rAr rBr r3r )r1r r^r2r_r`r3r )r1r rfrCr3r )r1r rirjr3r )r1r rƒr„r3r$)r1r r3r()r1r r¤r2r3r,)r1r r3r¦)rAr rBr rªr«r3r )r1r rMrCr5r®r3r ) r1r r@r»r^r2r_r¼r3r )9Ú __future__rÚ_dtypesrrrrr r Ú_manipulation_functionsr Ú _array_objectr Ú core.numericrÚtypingrÚ_typingrrrrrrrÚ numpy.linalgÚnumpyr7rr$r(r,r9rIrKrRrUrWrYr[rerhrxr{r}r€r†rˆr¡r—ror¨r­r°rºrÐÚ__all__r r!r"úrÛs²ðØ"Ð"Ð"Ð"Ð"Ð"ððððððððððððððððð-Ð,Ð,Ð,Ð,Ð,Ø Ð Ð Ð Ð Ð à/Ð/Ð/Ð/Ð/Ð/à Ð Ð Ð Ð Ð ØðJØIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIàÐÐÐÐÐàÐÐÐØÐÐÐððððð�ñôðð ð ð ð ð ˆzñ ô ð ððððð�Jñôðððððð� ñôðð,1ð ð ð ð ð ð ð 35ðAðAðAðAðAðAð$ /ð /ð /ð /ð,-ðPðPðPðPðPðPð Bð Bð Bð Bð 4ð 4ð 4ð 4ð /ð /ð /ð /ð 7ð 7ð 7ð 7ð(27Ðrwð [ð [ð [ð [ð [ð [ð ;ð ;ð ;ð ;ðGKð:ð:ð:ð:ð:ð:ð05ð5ð5ð5ð 6ð6ð6ð6ð$@Dð<ð<ð<ð<ð<ð<ð"?Hð Ið Ið Ið Ið Ið Ið Hð Hð Hð Hð00ð0ð0ð6 4ð 4ð 4ð 4ð/3ð ]ð ]ð ]ð ]ð ]ð ]ð"AðAðAðAðcdðEðEðEðEðEðEð)*ÀDðfðfðfðfðfðfð*46ð&ð&ð&ð&ð&ð&ð,OSÐejðPQð+ð+ð+ð+ð+ð+ðZ Fð Fð F€€€r!