§
    ËãßcÄE  ã                  ó  — d dl mZ ddlmZmZ ddlmZ ddlmZ ddl	m
Z
 d dlmZ erdd	lmZmZmZmZmZ d d
lmZ d dlZd dlZ G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZddœdSd„ZddœdTd"„ZdUd#„Zd d$œdVd&„ZdWd'„ZdUd(„Z dUd)„Z!dXd*„Z"dd+d,œdYd0„Z#dZd2„Z$dd3œd[d6„Z%dUd7„Z&dXd8„Z'dd3œd[d9„Z(d:d;œd\d>„Z)d]d?„Z*d@„ Z+dXdA„Z,dBdCœd^dE„Z-d_dG„Z.ddHœd`dK„Z/d d$œdVdL„Z0ddœdTdM„Z1ddddNœdadQ„Z2g dR¢Z3dS )bé    )Úannotationsé   )Ú_floating_dtypesÚ_numeric_dtypes)Úreshape)ÚArrayé   )Únormalize_axis_tuple)ÚTYPE_CHECKING)ÚLiteralÚOptionalÚSequenceÚTupleÚUnion)Ú
NamedTupleNc                  ó$   — e Zd ZU ded<   ded<   dS )Ú
EighResultr   ÚeigenvaluesÚeigenvectorsN©Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú8/usr/lib/python3/dist-packages/numpy/array_api/linalg.pyr   r      s*   € € € € € € ØÐÐÑØÐÐÑÐÐr   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚQRResultr   ÚQÚRNr   r   r   r   r   r      s"   € € € € € € Ø€H€H�HØ€H€H�H€H€Hr   r   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚSlogdetResultr   ÚsignÚ	logabsdetNr   r   r   r   r#   r#      s'   € € € € € € Ø€K€K�KØÐÐÑÐÐr   r#   c                  ó.   — e Zd ZU ded<   ded<   ded<   dS )Ú	SVDResultr   ÚUÚSÚVhNr   r   r   r   r'   r'      s+   € € € € € € Ø€H€H�HØ€H€H�HØ€I€I�I€I€Ir   r'   F)ÚupperÚxr   r+   ÚboolÚreturnc              óâ   — | j         t          vrt          d¦  «        ‚t          j                             | j        ¦  «        }|rt          j        |¦  «        j	        S t          j        |¦  «        S )zŽ
    Array API compatible wrapper for :py:func:`np.linalg.cholesky <numpy.linalg.cholesky>`.

    See its docstring for more information.
    z2Only floating-point dtypes are allowed in cholesky)
Údtyper   Ú	TypeErrorÚnpÚlinalgÚcholeskyÚ_arrayr   Ú_newÚmT)r,   r+   ÚLs      r   r4   r4   %   s_   € ð 	„wÕ&Ð&Ð&ÝÐLÑMÔMÐMÝ
Œ	×Ò˜1œ8Ñ$Ô$€AØð  ÝŒz˜!‰}Œ}ÔÐÝŒ:�a‰=Œ=Ðr   éÿÿÿÿ©ÚaxisÚx1Úx2r;   Úintc              óp  — | j         t          vs|j         t          vrt          d¦  «        ‚| j        |j        k    rt	          d¦  «        ‚| j        dk    rt	          d¦  «        ‚| j        |         dk    rt	          d¦  «        ‚t          j        t          j	        | j
        |j
        |¬¦  «        ¦  «        S )zz
    Array API compatible wrapper for :py:func:`np.cross <numpy.cross>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in crossz"x1 and x2 must have the same shaper   z/cross() requires arrays of dimension at least 1é   zcross() dimension must equal 3r:   )r0   r   r1   ÚshapeÚ
ValueErrorÚndimr   r6   r2   Úcrossr5   )r<   r=   r;   s      r   rD   rD   5   s©   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐBÑCÔCÐCà	„x�2”8ÒÐÝÐ=Ñ>Ô>Ð>Ø	„w�!‚|€|ÝÐJÑKÔKÐKà	„x�„~˜ÒÐÝÐ9Ñ:Ô:Ð:ÝŒ:•b”h˜rœy¨"¬)¸$Ð?Ñ?Ô?Ñ@Ô@Ð@r   c               ó¨   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        ¦  «        ¦  «        S )z„
    Array API compatible wrapper for :py:func:`np.linalg.det <numpy.linalg.det>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in det)	r0   r   r1   r   r6   r2   r3   Údetr5   ©r,   s    r   rF   rF   G   sA   € ð 	„wÕ&Ð&Ð&ÝÐGÑHÔHÐHÝŒ:•b”i—m’m A¤HÑ-Ô-Ñ.Ô.Ð.r   )ÚoffsetrH   c              ó`   — t          j        t          j        | j        |dd¬¦  «        ¦  «        S )z€
    Array API compatible wrapper for :py:func:`np.diagonal <numpy.diagonal>`.

    See its docstring for more information.
    éþÿÿÿr9   ©rH   Úaxis1Úaxis2)r   r6   r2   Údiagonalr5   ©r,   rH   s     r   rN   rN   T   s)   € õ Œ:•b”k !¤(°6ÀÈ2ÐNÑNÔNÑOÔOÐOr   c               óÂ   — | j         t          vrt          d¦  «        ‚t          t	          t
          j        t          j         	                    | j
        ¦  «        ¦  «        Ž S )z†
    Array API compatible wrapper for :py:func:`np.linalg.eigh <numpy.linalg.eigh>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in eigh)r0   r   r1   r   Úmapr   r6   r2   r3   Úeighr5   rG   s    r   rR   rR   _   sJ   € ð 	„wÕ&Ð&Ð&ÝÐHÑIÔIÐIõ •s�5œ:¥r¤y§~¢~°a´hÑ'?Ô'?Ñ@Ô@ÐAÐAr   c               ó¨   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        ¦  «        ¦  «        S )zŽ
    Array API compatible wrapper for :py:func:`np.linalg.eigvalsh <numpy.linalg.eigvalsh>`.

    See its docstring for more information.
    z2Only floating-point dtypes are allowed in eigvalsh)	r0   r   r1   r   r6   r2   r3   Úeigvalshr5   rG   s    r   rT   rT   o   sC   € ð 	„wÕ&Ð&Ð&ÝÐLÑMÔMÐMåŒ:•b”i×(Ò(¨¬Ñ2Ô2Ñ3Ô3Ð3r   c               ó¨   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        ¦  «        ¦  «        S )z„
    Array API compatible wrapper for :py:func:`np.linalg.inv <numpy.linalg.inv>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in inv)	r0   r   r1   r   r6   r2   r3   Úinvr5   rG   s    r   rV   rV   |   sA   € ð 	„wÕ&Ð&Ð&ÝÐGÑHÔHÐHåŒ:•b”i—m’m A¤HÑ-Ô-Ñ.Ô.Ð.r   c               óº   — | j         t          vs|j         t          vrt          d¦  «        ‚t          j        t          j        | j        |j        ¦  «        ¦  «        S )z|
    Array API compatible wrapper for :py:func:`np.matmul <numpy.matmul>`.

    See its docstring for more information.
    z)Only numeric dtypes are allowed in matmul)r0   r   r1   r   r6   r2   Úmatmulr5   ©r<   r=   s     r   rX   rX   ‹   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              ó°   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        d||¬¦  «        ¦  «        S )ú†
    Array API compatible wrapper for :py:func:`np.linalg.norm <numpy.linalg.norm>`.

    See its docstring for more information.
    z5Only floating-point dtypes are allowed in matrix_norm)rJ   r9   ©r;   r[   r\   )	r0   r   r1   r   r6   r2   r3   Únormr5   )r,   r[   r\   s      r   Úmatrix_normrb   Ÿ   sJ   € ð 	„wÕ&Ð&Ð&ÝÐOÑPÔPÐPåŒ:•b”i—n’n Q¤X°HÀxÐUX�nÑYÔYÑZÔZÐZr   Únc               óª   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        |¦  «        ¦  «        S )zˆ
    Array API compatible wrapper for :py:func:`np.matrix_power <numpy.matrix_power>`.

    See its docstring for more information.
    zMOnly floating-point dtypes are allowed for the first argument of matrix_power)	r0   r   r1   r   r6   r2   r3   Úmatrix_powerr5   )r,   rc   s     r   re   re   ­   sG   € ð 	„wÕ&Ð&Ð&ÝÐgÑhÔhÐhõ Œ:•b”i×,Ò,¨Q¬X°qÑ9Ô9Ñ:Ô:Ð:r   )Úrtolrf   úOptional[Union[float, Array]]c              óZ  — | j         dk     rt          j                             d¦  «        ‚t          j                             | j        d¬¦  «        }|€T|                     dd¬¦  «        t          | j        d	d…         ¦  «        z  t          j        |j	        ¦  «        j
        z  }nZt          |t          ¦  «        r|j        }|                     dd¬¦  «        t          j        |¦  «        d
t          j        f         z  }t          j        t          j        ||k    d¬¦  «        ¦  «        S )z†
    Array API compatible wrapper for :py:func:`np.matrix_rank <numpy.matrix_rank>`.

    See its docstring for more information.
    r	   zA1-dimensional array given. Array must be at least two-dimensionalF©Ú
compute_uvNr9   T)r;   r[   rJ   .r:   )rC   r2   r3   ÚLinAlgErrorÚsvdr5   ÚmaxrA   Úfinfor0   ÚepsÚ
isinstancer   ÚasarrayÚnewaxisr6   Úcount_nonzero)r,   rf   r)   Útols       r   Úmatrix_rankru   ¼   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               ó�   — | j         dk     rt          d¦  «        ‚t          j        t	          j        | j        dd¦  «        ¦  «        S )Nr	   z5x must be at least 2-dimensional for matrix_transposer9   rJ   )rC   rB   r   r6   r2   Úswapaxesr5   rG   s    r   Úmatrix_transposerx   Ô   s<   € Ø„v�‚z€zÝÐPÑQÔQÐQÝŒ:•b”k !¤(¨B°Ñ3Ô3Ñ4Ô4Ð4r   c               ó  — | j         t          vs|j         t          vrt          d¦  «        ‚| j        dk    s|j        dk    rt	          d¦  «        ‚t          j        t          j        | j	        |j	        ¦  «        ¦  «        S )zz
    Array API compatible wrapper for :py:func:`np.outer <numpy.outer>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in outerr   z/The input arrays to outer must be 1-dimensional)
r0   r   r1   rC   rB   r   r6   r2   Úouterr5   rY   s     r   rz   rz   Ú   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              ó&  — | j         t          vrt          d¦  «        ‚|€;t          | j        dd…         ¦  «        t          j        | j         ¦  «        j        z  }t          j	        t
          j
                             | j        |¬¦  «        ¦  «        S )z†
    Array API compatible wrapper for :py:func:`np.linalg.pinv <numpy.linalg.pinv>`.

    See its docstring for more information.
    z.Only floating-point dtypes are allowed in pinvNrJ   )Úrcond)r0   r   r1   rm   rA   r2   rn   ro   r   r6   r3   Úpinvr5   )r,   rf   s     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         	     óÆ   — | j         t          vrt          d¦  «        ‚t          t	          t
          j        t          j         	                    | j
        |¬¦  «        ¦  «        Ž S )z‚
    Array API compatible wrapper for :py:func:`np.linalg.qr <numpy.linalg.qr>`.

    See its docstring for more information.
    z,Only floating-point dtypes are allowed in qrr   )r0   r   r1   r   rQ   r   r6   r2   r3   Úqrr5   )r,   r€   s     r   rƒ   rƒ   ý   sN   € ð 	„wÕ&Ð&Ð&ÝÐFÑGÔGÐGõ •S�œ¥R¤Y§\¢\°!´(À \Ñ%FÔ%FÑGÔGÐHÐHr   c               óÂ   — | j         t          vrt          d¦  «        ‚t          t	          t
          j        t          j         	                    | j
        ¦  «        ¦  «        Ž S )zŒ
    Array API compatible wrapper for :py:func:`np.linalg.slogdet <numpy.linalg.slogdet>`.

    See its docstring for more information.
    z1Only floating-point dtypes are allowed in slogdet)r0   r   r1   r#   rQ   r   r6   r2   r3   Úslogdetr5   rG   s    r   r…   r…     sL   € ð 	„wÕ&Ð&Ð&ÝÐKÑLÔLÐLõ �#�eœj­"¬)×*;Ò*;¸A¼HÑ*EÔ*EÑFÔFÐGÐGr   c                óz  — ddl m}m}m}m}m}m}m} ddlm	}	  || ¦  «        \  } }
 || ¦  «          || ¦  «          ||¦  «        \  }} || |¦  «        \  }}|j
        dk    r|	j        }n|	j        } ||¦  «        rdnd} ||¦  «        } || |||¬¦  «        } ||                     |d¬	¦  «        ¦  «        S )
Nr	   )Ú
_makearrayÚ_assert_stacked_2dÚ_assert_stacked_squareÚ_commonTypeÚisComplexTypeÚget_linalg_error_extobjÚ_raise_linalgerror_singular)Ú_umath_linalgr   zDD->Dzdd->d)Ú	signatureÚextobjF)Úcopy)Úlinalg.linalgr‡   rˆ   r‰   rŠ   r‹   rŒ   r�   r3   rŽ   rC   Ú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               ó°   — | j         t          vs|j         t          vrt          d¦  «        ‚t          j        t          | j        |j        ¦  «        ¦  «        S )zˆ
    Array API compatible wrapper for :py:func:`np.linalg.solve <numpy.linalg.solve>`.

    See its docstring for more information.
    z/Only floating-point dtypes are allowed in solve)r0   r   r1   r   r6   rž   r5   rY   s     r   r”   r”   ?  sL   € ð 
„xÕ'Ð'Ð'¨2¬8Õ;KÐ+KÐ+KÝÐIÑJÔJÐJåŒ:•f˜RœY¨¬	Ñ2Ô2Ñ3Ô3Ð3r   T©Úfull_matricesr¡   c         	     óÆ   — | j         t          vrt          d¦  «        ‚t          t	          t
          j        t          j         	                    | j
        |¬¦  «        ¦  «        Ž S )z„
    Array API compatible wrapper for :py:func:`np.linalg.svd <numpy.linalg.svd>`.

    See its docstring for more information.
    z-Only floating-point dtypes are allowed in svdr    )r0   r   r1   r'   rQ   r   r6   r2   r3   rl   r5   )r,   r¡   s     r   rl   rl   L  sN   € ð 	„wÕ&Ð&Ð&ÝÐGÑHÔHÐHõ •c�%œ*¥b¤i§m¢m°A´HÈM mÑ&ZÔ&ZÑ[Ô[Ð\Ð\r   úUnion[Array, Tuple[Array, ...]]c               ó¬   — | j         t          vrt          d¦  «        ‚t          j        t
          j                             | j        d¬¦  «        ¦  «        S )Nz1Only floating-point dtypes are allowed in svdvalsFri   )	r0   r   r1   r   r6   r2   r3   rl   r5   rG   s    r   Úsvdvalsr¥   ]  sC   € Ø„wÕ&Ð&Ð&ÝÐKÑLÔLÐLÝŒ:•b”i—m’m A¤H¸�mÑ?Ô?Ñ@Ô@Ð@r   ©Úaxesr§   ú/Union[int, Tuple[Sequence[int], Sequence[int]]]c              ó¾   — | j         t          vs|j         t          vrt          d¦  «        ‚t          j        t          j        | j        |j        |¬¦  «        ¦  «        S )Nz,Only numeric dtypes are allowed in tensordotr¦   )r0   r   r1   r   r6   r2   Ú	tensordotr5   )r<   r=   r§   s      r   rª   rª   e  sQ   € ð 
„x•Ð&Ð&¨"¬(½/Ð*IÐ*IÝÐFÑGÔGÐGåŒ:•b”l 2¤9¨b¬i¸dÐCÑCÔCÑDÔDÐDr   c         
     ó¾   — | j         t          vrt          d¦  «        ‚t          j        t          j        t          j        | j        |dd¬¦  «        ¦  «        ¦  «        S )zz
    Array API compatible wrapper for :py:func:`np.trace <numpy.trace>`.

    See its docstring for more information.
    z(Only numeric dtypes are allowed in tracerJ   r9   rK   )	r0   r   r1   r   r6   r2   rq   Útracer5   rO   s     r   r¬   r¬   n  sR   € ð 	„w•oÐ%Ð%ÝÐBÑCÔCÐCõ Œ:•b”j¥¤¨!¬(¸6ÈÐSUÐ!VÑ!VÔ!VÑWÔWÑXÔXÐXr   c              óR  — | j         t          vs|j         t          vrt          d¦  «        ‚t          | j        |j        ¦  «        }d|| j        z
  z  t          | j        ¦  «        z   }d||j        z
  z  t          |j        ¦  «        z   }||         ||         k    rt          d¦  «        ‚t          j	        | j
        |j
        ¦  «        \  }}t          j        ||d¦  «        }t          j        ||d¦  «        }|dd d d …f         |d         z  }t          j        |d         ¦  «        S )Nz)Only numeric dtypes are allowed in vecdot)r   z6x1 and x2 must have the same size along the given axisr9   .).N).r   r   )r0   r   r1   rm   rC   ÚtuplerA   rB   r2   Úbroadcast_arraysr5   Úmoveaxisr   r6   )	r<   r=   r;   rC   Ú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   r`   ú%Optional[Union[int, Tuple[int, ...]]]úOptional[Union[int, float]]c              ó8  ‡
‡— | j         t          vrt          d¦  «        ‚| j        Š
|€‰
                     ¦   «         Š
d}n¾t          |t          ¦  «        r§t          || j        ¦  «        Št          ˆfd„t          ‰
j        ¦  «        D ¦   «         ¦  «        }||z   }t          j        ‰
|¦  «                             t          j        ˆ
fd„|D ¦   «         t          ¬¦  «        gˆ
fd„|D ¦   «         ¢R ¦  «        Š
d}n|}t          j        t          j                             ‰
||¬¦  «        ¦  «        }|rft'          | j        ¦  «        }t          |€t          | j        ¦  «        n|| j        ¦  «        }|D ]}	d	||	<   Œt          |t          |¦  «        ¦  «        }|S )
r_   z.Only floating-point dtypes are allowed in normNr   c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S )Nr   )Ú.0ÚiÚnormalized_axiss     €r   ú	<genexpr>zvector_norm.<locals>.<genexpr>©  s-   øè è € ÐJÐJ˜1°¸/Ð1IÐ1I�QÐ1IÐ1IÐ1IÐ1IÐJÐJr   c                ó*   •— g | ]}‰j         |         ‘ŒS r   ©rA   ©r»   r¼   r–   s     €r   ú
<listcomp>zvector_norm.<locals>.<listcomp>¬  s   ø€ Ð/Ð/Ð/ Q�a”g˜a”jÐ/Ð/Ð/r   )r0   c                ó*   •— g | ]}‰j         |         ‘ŒS r   rÀ   rÁ   s     €r   rÂ   zvector_norm.<locals>.<listcomp>¬  s   ø€ Ð>XÐ>XÐ>XÈa¸q¼wÀq¼zÐ>XÐ>XÐ>Xr   )r;   r\   r   )r0   r   r1   r5   Úravelrp   r®   r
   rC   Úranger2   Ú	transposer   Úprodr>   r   r6   r3   ra   ÚlistrA   )r,   r;   r[   r\   Ú_axisÚrestÚnewshaperµ   rA   r¼   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   )r4   rD   rF   rN   rR   rT   rV   rX   rb   re   ru   rx   rz   r}   rƒ   r…   r”   rl   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   rH   r>   r.   r   )r,   r   r.   r   )r<   r   r=   r   r.   r   )r,   r   r[   r-   r\   r]   r.   r   )r,   r   rc   r>   r.   r   )r,   r   rf   rg   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   )4Ú
__future__r   Ú_dtypesr   r   Ú_manipulation_functionsr   Ú_array_objectr   Úcore.numericr
   Útypingr   Ú_typingr   r   r   r   r   r   Únumpy.linalgÚnumpyr2   r   r   r#   r'   r4   rD   rF   rN   rR   rT   rV   rX   rb   re   ru   rx   rz   r}   rƒ   r…   rž   r”   rl   r¥   rª   r¬   r¶   rÌ   Ú__all__r   r   r   ú<module>r×      sp  ðØ "Ð "Ð "Ð "Ð "Ð "à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  à /Ð /Ð /Ð /Ð /Ð /à  Ð  Ð  Ð  Ð  Ð  Øð CØBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBÐBà Ð Ð Ð Ð Ð à Ð Ð Ð Ø Ð Ð Ð ðð ð ð ð �ñ ô ð ðð ð ð ð ˆ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ð [ð [ð [ð [ð [ð [ð;ð ;ð ;ð ;ð GKð :ð :ð :ð :ð :ð :ð05ð 5ð 5ð 5ð6ð 6ð 6ð 6ð$ @Dð <ð <ð <ð <ð <ð <ð" ?Hð Ið Ið Ið Ið Ið IðHð Hð Hð Hð00ð 0ð 0ð64ð 4ð 4ð 4ð /3ð ]ð ]ð ]ð ]ð ]ð ]ð"Að Að Að Að cdð Eð Eð Eð Eð Eð Eð )*ð 
Yð 
Yð 
Yð 
Yð 
Yð 
Yð 46ð &ð &ð &ð &ð &ð &ð, OSÐejð  PQð +ð +ð +ð +ð +ð +ðZ Fð  Fð  F€€€r   