§
    fŠtjCR  ã                   óL  — d Z ddlmZ ddlmZ ddlZddlZddlmZm	Z	 ddl
mZmZ ddlZddlmZ ddlmc mc mZ ddlmZ ddlmZmZ  G d	„ d
¦  «        Z G d„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej$        ej%        ej&        ej'        fZ(ej)        ej*        ej+        fZ,ej-        ej.        ej/        fZ0e,e0z   Z1e(e1z   Z2ej3         4                    de2¦  «        d„ ¦   «         Z5d„ Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;ej3         <                    ed¬¦  «        d„ ¦   «         Z=dS ) z7Test functions for the sparse.linalg._interface module
é    )Úpartial)ÚproductN)ÚraisesÚwarns)Úassert_Úassert_equal)Úmatrix)Úassert_deallocatedÚIS_PYPYc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestLinearOperatorc                 óÆ   — t          j        g d¢g d¢g¦  «        | _        t          j        ddgddgddgg¦  «        | _        t          j        ddgddgg¦  «        | _        d S )	N©é   é   é   ©é   é   é   r   r   r   r   r   r   )ÚnpÚarrayÚAÚBÚC)Úselfs    úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/sparse/linalg/tests/test_interface.pyÚsetup_methodzTestLinearOperator.setup_method   s~   € Ý”˜7˜7˜7Ø"˜7˜7ð$ñ %ô %ˆŒå”˜A˜a˜5Ø˜a˜5Ø˜a˜5ð"ñ #ô #ˆŒõ ”˜A˜a˜5Ø˜a˜5ð"ñ #ô #ˆŒˆˆó    c                 ó%  ‡‡— d„ } || j         ¦  «        D �]Ì}t          j        di |¤ŽŠt          ‰j        dk    ¦  «         t          ‰                     t          j        g d¢¦  «        ¦  «        ddg¦  «         t          ‰                     t          j        dgdgdgg¦  «        ¦  «        dgdgg¦  «         t          ‰t          j        g d¢¦  «        z  ddg¦  «         t          ‰t          j        dgdgdgg¦  «        z  dgdgg¦  «         t          ‰ 	                    t          j        g d¢¦  «        ¦  «        ddg¦  «         t          ‰ 	                    t          j        dgdgdgg¦  «        ¦  «        dgdgg¦  «         t          ‰                     t          dgdgdgg¦  «        ¦  «        dgdgg¦  «         t          ‰t          dgdgdgg¦  «        z  dgdgg¦  «         t          ‰ 	                    t          dgdgdgg¦  «        ¦  «        dgdgg¦  «         t          d‰z  g d	¢z  d
dg¦  «         t          d‰z                       ddg¦  «        g d¢¦  «         t          d‰z  j                             ddg¦  «        g d¢¦  «         t          d‰z                       ¦   «                              ddg¦  «        g d¢¦  «         t          d‰z  dgdgdggz  d
gdgg¦  «         t          d‰z                       dgdgdgg¦  «        d
gdgg¦  «         t          ‰dz  g d	¢z  d
dg¦  «         t          ‰dz  dgdgdggz  d
gdgg¦  «         t          d‰z  g d	¢z  ddg¦  «         t          ‰‰z   g d	¢z  d
dg¦  «         t          ‰‰z                        ddg¦  «        g d¢¦  «         t          ‰‰z   j                             ddg¦  «        g d¢¦  «         t          ‰‰z                        ¦   «                              ddg¦  «        g d¢¦  «         t          ‰‰z   dgdgdggz  d
gdgg¦  «         t          ‰‰z                        dgdgdgg¦  «        d
gdgg¦  «         t          ‰ g d	¢z  ddg¦  «         t          ‰ dgdgdggz  dgdgg¦  «         t          ‰‰z
  g d	¢z  ddg¦  «         t          ‰‰z
  dgdgdggz  dgdgg¦  «         t          j        ddgddgg¦  «        }t          d‰z                       |¦  «        t          j	        d| j         z  j        |¦  «        ¦  «         t          ‰dz                       |¦  «        t          j	        | j         dz  j        |¦  «        ¦  «         t          d‰z                       |¦  «        t          j	        d| j         z  j                             ¦   «         |¦  «        ¦  «         t          ‰dz                       |¦  «        t          j	        | j         dz  j                             ¦   «         |¦  «        ¦  «         t          ‰‰z                        |¦  «        t          j	        | j         | j         z   j        |¦  «        ¦  «         t          ‰d‰z  z                        |¦  «        t          j	        | j         d| j         z  z   j                             ¦   «         |¦  «        ¦  «         t          ‰                      |¦  «        t          j	        | j          j        |¦  «        ¦  «         t          ‰‰z
                       |¦  «        t          j	        | j         | j         z
  j        |¦  «        ¦  «         t          d‰z                       d|z  ¦  «        t          j	        d| j         z  j                             ¦   «         d|z  ¦  «        ¦  «         ‰‰z   }t          t%          |j        ¦  «        dk    o|j        d         ‰u o|j        d         ‰u ¦  «         d‰z  }t          t%          |j        ¦  «        dk    o|j        d         ‰u o|j        d         dk    ¦  «         t          t'          ‰                     g d¢¦  «        t          j        ¦  «        ¦  «         t          t'          ‰                     t          j        dgdgdgg¦  «        ¦  «        t          j        ¦  «        ¦  «         t          t'          ‰t          j        g d¢¦  «        z  t          j        ¦  «        ¦  «         t          t'          ‰t          j        dgdgdgg¦  «        z  t          j        ¦  «        ¦  «         t          t'          ‰ 	                    t          j        g d¢¦  «        ¦  «        t          j        ¦  «        ¦  «         t          t'          ‰ 	                    t          j        dgdgdgg¦  «        ¦  «        t          j        ¦  «        ¦  «         t          t'          ‰                     t          dgdgdgg¦  «        ¦  «        t          j        ¦  «        ¦  «         t          t'          ‰t          dgdgdgg¦  «        z  t          j        ¦  «        ¦  «         t          t'          ‰ 	                    t          dgdgdgg¦  «        ¦  «        t          j        ¦  «        ¦  «         t          t'          d‰z  t          j        ¦  «        ¦  «         t          t'          d‰z  t          j        ¦  «        ¦  «         t          t'          ‰‰z   t          j        ¦  «        ¦  «         t          t'          ‰ t          j        ¦  «        ¦  «         t          t'          ‰‰z
  t          j        ¦  «        ¦  «         t          t'          ‰dz  t          j        ¦  «        ¦  «         t          t'          ‰dz  t          j        ¦  «        ¦  «         t          ‰dz  dz  j        d         ‰u ¦  «         ‰t          j        g d¢¦  «        z  }‰dz  Š‰dz  }t          ‰t          j        g d¢¦  «        z  |¦  «         t          d‰z  j        t          j        k    ¦  «         d}t3          t4          |¬¦  «        5  ‰t          j        ddg¦  «        z   d d d ¦  «         n# 1 swxY w Y   t3          t4          ‰j        t          j        ddg¦  «        ¦  «         t3          t4          ‰j        t          j        g d¢¦  «        ¦  «         t3          t4          ‰j        t          j        dgdgg¦  «        ¦  «         t3          t4          ‰j        t          j        dgdgdgdgg¦  «        ¦  «         t3          t4          ˆfd„¦  «         t3          t4          ˆfd„¦  «         �ŒÎt7           || j         ¦  «         || j        ¦  «        ¦  «        D �]“\  }}	t          j        di |¤ŽŠt          j        di |	¤ŽŠ| j          	                    | j        ¦  «        }
t          j        ddgddgg¦  «        }t          ‰‰z                       |¦  «        t          j	        |
j        |¦  «        ¦  «         t          d‰z  ‰z                       |¦  «        t          j	        d|
z  j                             ¦   «         |¦  «        ¦  «         t          ‰‰z  ddgz  ddg¦  «         t          ‰‰z  dgdggz  dgdgg¦  «         t          ‰‰z                       dgdgg¦  «        dgdgg¦  «         t          ‰‰z                       ddg¦  «        ddg¦  «         t          ‰‰z  j                             ddg¦  «        ddg¦  «         t          ‰‰z                       ¦   «                              ddg¦  «        ddg¦  «         t          t'          ‰‰z  t          j        ¦  «        ¦  «         t3          t4          ˆˆfd„¦  «         t3          t4          ˆfd„¦  «         ‰‰z  }t          t%          |j        ¦  «        dk    o|j        d         ‰u o|j        d         ‰u ¦  «         �Œ• || j        ¦  «        D �]Ð}t          j        di |¤Ž}t          j        ddgddgg¦  «        }t          |                     |¦  «        t          j	        | j        j        |¦  «        ¦  «         t          |dz                       |¦  «        t          j	        t          j	        | j        | j        ¦  «        j        |¦  «        ¦  «         t          |dz  ddgz  d d!g¦  «         t          |dz                       ddg¦  «        d"dg¦  «         t          |dz  j                             ddg¦  «        d"dg¦  «         t          |dz                       ¦   «                              ddg¦  «        d"dg¦  «         t          |dz                       dgdgg¦  «        d gd!gg¦  «         t          t'          |dz  t          j        ¦  «        ¦  «         �ŒÒd S )#Nc                 óX   ‡ — ‰ j         ˆ fd„ˆ fd„dœ‰ j         ˆ fd„ˆ fd„ˆ fd„ˆ fd„dœgS )	Nc                 ój   •— t          j        ‰| ¦  «                             ‰j        d         ¦  «        S ©Nr   )r   ÚdotÚreshapeÚshape©Úxr   s    €r   ú<lambda>zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>!   s%   ø€ ­B¬F°1°a©L¬L×,@Ò,@ÀÄÈÄÑ,LÔ,L€ r   c                 ó˜   •— t          j        ‰j                             ¦   «         | ¦  «                             ‰j        d         ¦  «        S ©Nr   )r   r$   ÚTÚconjr%   r&   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>"   s8   ø€ ­R¬V°A´C·H²H±J´JØ45ñ.7ô .7ß7>²w¸q¼wÀq¼zÑ7JÔ7Jð r   )r&   ÚmatvecÚrmatvecc                 ó.   •— t          j        ‰| ¦  «        S ©N©r   r$   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>'   ó   ø€ ­B¬F°1°a©L¬L€ r   c                 ó\   •— t          j        ‰j                             ¦   «         | ¦  «        S r1   ©r   r$   r,   r-   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>(   ó   ø€ ­R¬V°A´C·H²H±J´JÀÑ-BÔ-B€ r   c                 ó\   •— t          j        ‰j                             ¦   «         | ¦  «        S r1   r5   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>)   r6   r   c                 ó.   •— t          j        ‰| ¦  «        S r1   r2   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>*   r3   r   ©r&   r.   r/   ÚrmatmatÚmatmat)r&   ©r   s   `r   Úget_matvecsz3TestLinearOperator.test_matvec.<locals>.get_matvecs   s�   ø€ à!"¤Ø"LÐ"LÐ"LÐ"Lð$Kð $Kð $Kð $Kðð ð "#¤Ø"8Ð"8Ð"8Ð"8Ø#BÐ#BÐ#BÐ#BØ#BÐ#BÐ#BÐ#BØ"8Ð"8Ð"8Ð"8ðð ðð r   © r   é   é    r   r   r   )r   r   r   é   é   )é
   r?   é   ù               @y              (@y              >@iúÿÿÿiñÿÿÿr   r   r   z.Can only divide a linear operator by a scalar.©Úmatch©r   r   r   r   c                  ó   •— ‰ ‰ z  S r1   r>   r<   s   €r   r)   z0TestLinearOperator.test_matvec.<locals>.<lambda>�   ó   ø€ ¨a°©c€ r   c                  ó   •— ‰ dz  S ©Nr   r>   r<   s   €r   r)   z0TestLinearOperator.test_matvec.<locals>.<lambda>�   ó   ø€ ¨a°©d€ r   é2   éq   éG   é\   c                  ó   •— ‰ ‰z   S r1   r>   )r   r   s   €€r   r)   z0TestLinearOperator.test_matvec.<locals>.<lambda>¨   rJ   r   c                  ó   •— ‰ dz  S rL   r>   r<   s   €r   r)   z0TestLinearOperator.test_matvec.<locals>.<lambda>©   rM   r   é   é%   é   ) r   Ú	interfaceÚLinearOperatorr   Úargsr   r.   r   r   r$   r	   r/   ÚHÚadjointr;   r:   r,   r-   ÚlenÚ
isinstanceÚndarrayÚ_ScaledLinearOperatorÚ_SumLinearOperatorÚdtypeÚ
complex128Úassert_raisesÚ
ValueErrorr   r   Ú_ProductLinearOperatorr   Ú_PowerLinearOperator)r   r=   ÚmatvecsÚXÚzÚresultr   ÚmsgÚmatvecsAÚmatvecsBÚAtimesBÚmatvecsCr   r   s               @@r   Útest_matveczTestLinearOperator.test_matvec   s*  øø€ ð	ð 	ð 	ð #�{ 4¤6Ñ*Ô*ð c	4ñ c	4ˆGÝÔ(Ð3Ð3¨7Ð3Ð3ˆAå�A”F˜b’LÑ!Ô!Ð!å˜Ÿš¥"¤(¨7¨7¨7Ñ"3Ô"3Ñ4Ô4°r¸"°gÑ>Ô>Ð>Ý˜Ÿš¥"¤(¨Q¨C°°°Q°C¨=Ñ"9Ô"9Ñ:Ô:¸b¸TÀ2À$¸KÑHÔHÐHÝ˜�RœX g g gÑ.Ô.Ñ.°°B°Ñ8Ô8Ð8Ý˜�RœX¨ s¨A¨3°¨s mÑ4Ô4Ñ4¸°t¸R¸D°kÑBÔBÐBÝ˜Ÿš�rœx¨¨¨Ñ0Ô0Ñ1Ô1°B°r°7Ñ;Ô;Ð;Ý˜Ÿš�rœx¨!¨¨a¨S°!°¨Ñ6Ô6Ñ7Ô7¸2¸$À¸t¸ÑEÔEÐEå˜Ÿš¥&¨1¨#¨q¨c°1°#¨Ñ"7Ô"7Ñ8Ô8¸B¸4ÀÀ¸+ÑFÔFÐFÝ˜�V a S¨!¨¨a¨S MÑ2Ô2Ñ2°b°T¸2¸$°KÑ@Ô@Ð@Ý˜Ÿš�v¨ s¨A¨3°¨s mÑ4Ô4Ñ5Ô5¸¸¸b¸T°{ÑCÔCÐCå˜!˜A™#˜w˜w˜w™¨¨B¨Ñ0Ô0Ð0Ý˜!˜a™%Ÿš¨!¨Q¨Ñ0Ô0°,°,°,Ñ?Ô?Ð?Ý˜!˜A™#œŸš¨¨1¨Ñ.Ô.°°°Ñ=Ô=Ð=Ý˜!˜A™#Ÿš™œ×/Ò/°°1°Ñ6Ô6¸¸¸ÑEÔEÐEÝ˜!˜A™#   Q C¨¨˜}Ñ,°¨t°R°D¨kÑ:Ô:Ð:Ý˜!˜a™%Ÿš¨!¨¨q¨c°A°3¨Ñ8Ô8¸B¸4À"À¸,ÑGÔGÐGÝ˜!˜A™#˜w˜w˜w™¨¨B¨Ñ0Ô0Ð0Ý˜!˜A™#   Q C¨¨˜}Ñ,°¨t°R°D¨kÑ:Ô:Ð:Ý˜"˜Q™$   ™¨#¨c¨Ñ3Ô3Ð3Ý˜!˜A™#˜w˜w˜w™¨¨R¨Ñ1Ô1Ð1Ý˜!˜a™%Ÿš¨!¨Q¨Ñ0Ô0°,°,°,Ñ?Ô?Ð?Ý˜!˜A™#œŸš¨¨1¨Ñ.Ô.°°°Ñ=Ô=Ð=Ý˜!˜A™#Ÿš™œ×/Ò/°°1°Ñ6Ô6¸¸¸ÑEÔEÐEÝ˜!˜A™#   Q C¨¨˜}Ñ,°¨t°b°T¨lÑ;Ô;Ð;Ý˜!˜A™#Ÿš¨ s¨A¨3°¨s mÑ4Ô4¸°t¸b¸T°lÑCÔCÐCÝ˜1˜"˜g˜g˜g™¨¨3 xÑ0Ô0Ð0Ý˜1˜" ˜s A 3¨ s˜mÑ+¨r¨d°C°5¨\Ñ:Ô:Ð:Ý˜!˜A™#˜w˜w˜w™¨¨1¨Ñ.Ô.Ð.Ý˜!˜a™% Q C¨!¨¨q¨c ?Ñ2°a°S¸1¸#°JÑ?Ô?Ð?å”˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆAå˜!˜a™%Ÿš¨Ñ+Ô+­R¬V°Q¸¼±Z´NÀAÑ-FÔ-FÑGÔGÐGÝ˜!˜a™%Ÿš¨Ñ+Ô+­R¬V°T´V¸a±Z´NÀAÑ-FÔ-FÑGÔGÐGÝ˜"˜q™&×)Ò)¨!Ñ,Ô,Ýœ  d¤f¡¤× 4Ò 4Ñ 6Ô 6¸Ñ:Ô:ñ<ô <ð <å˜!˜b™&×)Ò)¨!Ñ,Ô,Ýœ ¤¨"¡¤× 4Ò 4Ñ 6Ô 6¸Ñ:Ô:ñ<ô <ð <å˜!˜a™%Ÿš¨Ñ+Ô+Ýœ ¤¨$¬&¡Ô 3°QÑ7Ô7ñ9ô 9ð 9å˜!˜b 1™f™*×-Ò-¨aÑ0Ô0Ýœ ¤¨"¨t¬v©+Ñ!5Ô 8× =Ò =Ñ ?Ô ?ÀÑCÔCñEô Eð Eå˜1˜"Ÿš a™œ­"¬&°4´6°'´¸aÑ*@Ô*@ÑAÔAÐAÝ˜!˜a™%Ÿš¨Ñ+Ô+Ýœ ¤¨$¬&¡Ô 3°QÑ7Ô7ñ9ô 9ð 9å˜"˜q™&×)Ò)¨"¨q©&Ñ1Ô1Ýœ  d¤f¡¤× 4Ò 4Ñ 6Ô 6¸¸Q¹Ñ?Ô?ñAô Að Að �!‘ˆAÝ•C˜œ‘K”K 1Ò$ÐJ¨¬°¬°a¨ÐJ¸A¼FÀ1¼IÈ¸NÑKÔKÐKØ�!‘ˆAÝ•C˜œ‘K”K 1Ò$ÐJ¨¬°¬°a¨ÐJ¸A¼FÀ1¼IÈºNÑKÔKÐKå•J˜qŸxšx¨	¨	¨	Ñ2Ô2µB´JÑ?Ô?Ñ@Ô@Ð@Ý•J˜qŸxšx­¬°1°#°q°c¸1¸#°Ñ(?Ô(?Ñ@Ô@Å"Ä*ÑMÔMÑNÔNÐNÝ•J˜q¥2¤8¨G¨G¨GÑ#4Ô#4Ñ4µb´jÑAÔAÑBÔBÐBÝ•J˜q¥2¤8¨a¨S°!°°a°S¨MÑ#:Ô#:Ñ:½B¼JÑGÔGÑHÔHÐHÝ•J˜qŸušu¥R¤X¨g¨g¨gÑ%6Ô%6Ñ7Ô7½¼ÑDÔDÑEÔEÐEÝ•J˜qŸušu¥R¤X°¨s°A°3¸°s¨mÑ%<Ô%<Ñ=Ô=½r¼zÑJÔJÑKÔKÐKå•J˜qŸxšx­°°°Q°C¸¸¨}Ñ(=Ô(=Ñ>Ô>ÅÄ
ÑKÔKÑLÔLÐLÝ•J˜q¥6¨A¨3°¨s°A°3¨-Ñ#8Ô#8Ñ8½"¼*ÑEÔEÑFÔFÐFÝ•J˜qŸušu¥V¨a¨S°!°°a°S¨MÑ%:Ô%:Ñ;Ô;½R¼ZÑHÔHÑIÔIÐIå•J˜q ™s¥IÔ$CÑDÔDÑEÔEÐEÝ•J˜r !™t¥YÔ%DÑEÔEÑFÔFÐFÝ•J˜q ™s¥IÔ$@ÑAÔAÑBÔBÐBÝ•J ˜r¥9Ô#BÑCÔCÑDÔDÐDÝ•J˜q ™s¥IÔ$@ÑAÔAÑBÔBÐBÝ•J˜q ™s¥IÔ$CÑDÔDÑEÔEÐEÝ•J˜q ™t¥YÔ%DÑEÔEÑFÔFÐFÝ�a˜!‘e˜q‘[Ô& qÔ)¨QÐ.Ñ/Ô/Ð/ð �œ ) ) )Ñ,Ô,Ñ,ˆFØ�A‘ˆAØ�A‘ˆAÝ˜�RœX i i iÑ0Ô0Ñ0°&Ñ9Ô9Ð9å�R˜‘T”L¥B¤MÒ1Ñ2Ô2Ð2ð CˆCÝ�z°Ð5Ñ5Ô5ð %ð %Ø•B”H˜a ˜VÑ$Ô$Ñ$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %õ �* a¤hµ´¸!¸A¸±´Ñ@Ô@Ð@Ý�* a¤hµ´¸¸¸Ñ0CÔ0CÑDÔDÐDÝ�* a¤hµ´¸1¸#¸q¸c¸Ñ0CÔ0CÑDÔDÐDÝ�* a¤hµ´¸1¸#¸q¸cÀ1À#ÀqÀcÐ9JÑ0KÔ0KÑLÔLÐLå�* k k k kÑ2Ô2Ð2Ý�* l l l lÑ3Ô3Ð3Ñ3å")¨+¨+°d´fÑ*=Ô*=Ø*5¨+°d´fÑ*=Ô*=ñ#?ô #?ð 	Lñ 	LÑˆH�håÔ(Ð4Ð4¨8Ð4Ð4ˆAÝÔ(Ð4Ð4¨8Ð4Ð4ˆAà”f—j’j ¤Ñ(Ô(ˆGÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆAå˜!˜a™%Ÿš¨Ñ+Ô+­R¬V°W´KÀÑ-CÔ-CÑDÔDÐDÝ˜"˜q™& 1™*×-Ò-¨aÑ0Ô0Ýœ  g¡Ô 0× 5Ò 5Ñ 7Ô 7¸Ñ;Ô;ñ=ô =ð =õ ˜!˜A™#  !˜u™ r¨# hÑ/Ô/Ð/Ý˜!˜A™#   Q C˜y™¨B¨4°°¨,Ñ7Ô7Ð7Ý˜!˜A™#Ÿš¨ s¨A¨3 iÑ0Ô0°B°4¸¸°,Ñ?Ô?Ð?å˜!˜a™%Ÿš¨!¨Q¨Ñ0Ô0°2°r°(Ñ;Ô;Ð;Ý˜!˜a™%œ×)Ò)¨1¨a¨&Ñ1Ô1°B¸°8Ñ<Ô<Ð<Ý˜!˜a™%ŸšÑ*Ô*×1Ò1°1°a°&Ñ9Ô9¸BÀ¸8ÑDÔDÐDå•J˜q ™s¥IÔ$DÑEÔEÑFÔFÐFå�* k k k k kÑ2Ô2Ð2Ý�* l l l lÑ3Ô3Ð3à�!‘ˆAÝ•C˜œ‘K”K 1Ò$ÐJ¨¬°¬°a¨ÐJ¸A¼FÀ1¼IÈ¸NÑKÔKÐKÑKà#˜ D¤FÑ+Ô+ð 	Fñ 	FˆHÝÔ(Ð4Ð4¨8Ð4Ð4ˆAÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆAå˜Ÿš 1™œ¥r¤v¨t¬v¬j¸!Ñ'<Ô'<Ñ=Ô=Ð=Ý˜!˜Q™$Ÿš¨Ñ*Ô*Ýœ¥¤¨¬°´Ñ!7Ô!7Ô :¸AÑ>Ô>ñ@ô @ð @õ ˜!˜Q™$  1 ™¨¨2 wÑ/Ô/Ð/Ý˜!˜Q™$Ÿš¨¨A¨Ñ/Ô/°"°b°Ñ:Ô:Ð:Ý˜!˜Q™$œŸš¨!¨Q¨Ñ0Ô0°2°r°(Ñ;Ô;Ð;Ý˜!˜Q™$ŸšÑ)Ô)×0Ò0°!°Q°Ñ8Ô8¸2¸r¸(ÑCÔCÐCÝ˜!˜Q™$Ÿš¨¨¨Q¨C yÑ1Ô1°R°D¸"¸°;Ñ?Ô?Ð?å•J˜q !™t¥YÔ%CÑDÔDÑEÔEÐEÑEð	Fð 	Fs   ò=s#ó#s'	ó*s'	c           	      óä  ‡ — ‰ j         j        ˆ fd„ˆ fd„ˆ fd„ˆ fd„dœ}t          j        di |¤Ž}t	          j        g d¢g d¢g d¢g¦  «        }|d	         }t          t          j        ||¦  «        ||z  ¦  «         t          t          j        || 	                    d
d¦  «        ¦  «        || 	                    d
d¦  «        z  ¦  «         t          t          j        ||¦  «        ||z  ¦  «         t          t          j        ||j
        ¦  «        ||j
        z  ¦  «         t          t          j        ||                     ¦   «         ¦  «        ||                     ¦   «         z  ¦  «         t          t          j        | 	                    dd
¦  «        |j
        ¦  «        | 	                    dd
¦  «        |j
        z  ¦  «         t          t          j        | 	                    dd
¦  «        |                     ¦   «         ¦  «        | 	                    dd
¦  «        |                     ¦   «         z  ¦  «         t          t          j        ||j
        ¦  «        ||j
        z  ¦  «         t          t          j        ||                     ¦   «         ¦  «        ||                     ¦   «         z  ¦  «         t          t          t          j        |d¦  «         t          t          t          j        d|¦  «         d S )Nc                 ó~   •— t          j        ‰j        | ¦  «                             ‰j        j        d         ¦  «        S r#   )r   r$   r   r%   r&   ©r(   r   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>À   s+   ø€ ¥¤¨¬°Ñ!2Ô!2×!:Ò!:¸4¼6¼<È¼?Ñ!KÔ!K€ r   c                 ó¬   •— t          j        ‰j        j                             ¦   «         | ¦  «                             ‰j        j        d         ¦  «        S r+   )r   r$   r   r,   r-   r%   r&   rs   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>Á   s<   ø€ ¥"¤&¨¬¬¯ª©¬Ø)*ñ#,ô #,ß,3ªG°D´F´LÀ´OÑ,DÔ,Dð r   c                 óf   •— t          j        ‰j        j                             ¦   «         | ¦  «        S r1   )r   r$   r   r,   r-   rs   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>Ã   s   ø€ ¥"¤&¨¬¬¯ª©¬¸!Ñ"<Ô"<€ r   c                 ó8   •— t          j        ‰j        | ¦  «        S r1   )r   r$   r   rs   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>Ä   s   ø€ ¥¤¨¬°Ñ!2Ô!2€ r   r9   )y      ð?      ð?r   r   r   )é   é   é	   r   éÿÿÿÿr   r   r>   )r   r&   rW   rX   r   r   r   ÚoperatorÚmatmulr%   rZ   r[   rc   rd   )r   ÚDr   r   Úbs   `    r   Útest_matmulzTestLinearOperator.test_matmul¾   s�  ø€ Ø”f”lØKÐKÐKÐKðEð Eð Eð Eà<Ð<Ð<Ð<Ø2Ð2Ð2Ð2ð4ð 4ˆõ Ô$Ð)Ð) qÐ)Ð)ˆÝŒH�n�n�nØ�i�iØ�i�ið!ñ "ô "ˆð ˆaŒDˆå•X”_ Q¨Ñ*Ô*¨A°©EÑ2Ô2Ð2Ý•X”_ Q¨¯	ª	°"°aÑ(8Ô(8Ñ9Ô9¸1¸q¿yºyÈÈQÑ?OÔ?OÑ;OÑPÔPÐPÝ•X”_ Q¨Ñ*Ô*¨A°©EÑ2Ô2Ð2Ý•X”_ Q¨¬Ñ,Ô,¨a°!´#©gÑ6Ô6Ð6Ý•X”_ Q¨¯	ª	©¬Ñ4Ô4°a¸!¿)º)¹+¼+±oÑFÔFÐFÝ•X”_ Q§Y¢Y¨q°"Ñ%5Ô%5°q´sÑ;Ô;¸Q¿YºYÀqÈ"Ñ=MÔ=MÐPQÔPSÑ=SÑTÔTÐTÝ•X”_ Q§Y¢Y¨q°"Ñ%5Ô%5°q·y²y±{´{ÑCÔCØ—Y’Y˜q "Ñ%Ô%¨¯	ª	©¬Ñ3ñ	5ô 	5ð 	5å•X”_ Q¨¬Ñ,Ô,¨a°!´#©gÑ6Ô6Ð6Ý•X”_ Q¨¯	ª	©¬Ñ4Ô4°a¸!¿)º)¹+¼+±oÑFÔFÐFÝ•j¥(¤/°1°aÑ8Ô8Ð8Ý•j¥(¤/°1°aÑ8Ô8Ð8Ð8Ð8r   N)Ú__name__Ú
__module__Ú__qualname__r   rp   r   r>   r   r   r   r      sH   € € € € € ð#ð #ð #ð_Fð _Fð _FðB9ð 9ð 9ð 9ð 9r   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestAsLinearOperatorc                 ó  — g | _         d„ }t          j        g d¢g d¢g¦  «        }| xj          ||t          j        ¦  «        z  c_         | xj          ||t          j        ¦  «        z  c_         | xj          ||t          j        ¦  «        z  c_         | xj         d„  ||j        t          j        ¦  «        D ¦   «         z  c_         | xj         d„  ||j        t          j        ¦  «        D ¦   «         z  c_         | xj         d„  ||j        t          j        ¦  «        D ¦   «         z  c_         t          j        g d¢g d¢g¦  «        }| xj          ||t          j        ¦  «        z  c_         | xj         d	„  ||j        t          j        ¦  «        D ¦   «         z  c_         | xj         d
„  ||j        t          j        ¦  «        D ¦   «         z  c_         | xj         d„  ||j        t          j        ¦  «        D ¦   «         z  c_         d S )Nc                 ót  ‡ ‡‡— g }|                      t          ‰ |¬¦  «        ‰ f¦  «         |                      t          j        ‰ |¬¦  «        ‰ f¦  «         |                      t	          j        ‰ |¬¦  «        ‰ f¦  «         ˆ fd„Šˆ fd„Š G ˆˆ fd„dt          j        ¦  «        } G ˆfd„d|¦  «        } G ˆˆfd„d	|¦  «        } G ˆ fd
„d|¦  «        }|                       ||¦  «        ‰ f¦  «         |                       ||¦  «        ‰ f¦  «         |                       ||¦  «        ‰ f¦  «         |S )N©ra   c                 óŽ   •— ‰                      | ¦  «        }t          | j        ¦  «        dk    r|                     dd¦  «        }|S )Nr   rz   r   )r$   r\   r&   r%   )r(   ra   ÚyÚoriginals      €r   ÚmvzATestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.mvæ   s=   ø€ Ø—L’L ‘O”O�Ý�q”w‘<”< 1Ò$Ð$ØŸ	š	 " aÑ(Ô(�AØ�r   c                 ó\   •— ‰j                              ¦   «                              | ¦  «        S r1   ©r,   r-   r$   )r(   ra   rŠ   s     €r   ÚrmvzBTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.rmvì   s#   ø€ Ø”z—’Ñ(Ô(×,Ò,¨QÑ/Ô/Ð/r   c                   ó(   •— e Zd ZdZˆfd„Zˆ fd„ZdS )úJTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatliker>   c                 óR   •— t          j        |¦  «        | _        ‰j        | _        d S r1   )r   ra   r&   )r   ra   rŠ   s     €r   Ú__init__zSTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike.__init__ò   s   ø€ Ý!#¤¨%¡¤�D”JØ!)¤�D”J�J�Jr   c                 ó&   •—  ‰|| j         ¦  «        S r1   r‡   )r   r(   r‹   s     €r   Ú_matveczRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike._matvecö   s   ø€ Ø˜2˜a ¤Ñ,Ô,Ð,r   N)r€   r�   r‚   rY   r’   r”   )r‹   rŠ   s   €€r   ÚBaseMatliker�   ï   sL   ø€ € € € € Ø�ð0ð 0ð 0ð 0ð 0ð-ð -ð -ð -ð -ð -ð -r   r•   c                   ó   •— e Zd ZdZˆ fd„ZdS )úITestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatvecr>   c                 ó&   •—  ‰|| j         ¦  «        S r1   r‡   )r   r(   rŽ   s     €r   Ú_rmatveczRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatvec._rmatvecü   s   ø€ Ø˜3˜q $¤*Ñ-Ô-Ð-r   N)r€   r�   r‚   rY   r™   )rŽ   s   €r   Ú
HasRmatvecr—   ù   s3   ø€ € € € € Ø�ð.ð .ð .ð .ð .ð .ð .r   rš   c                   ó    •— e Zd ZdZˆ ˆfd„ZdS )úITestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasAdjointr>   c                 óÊ   •— | j         d         | j         d         f}t          ‰| j        ¬¦  «        }t          ‰| j        ¬¦  «        }t          j        ||| j        |¬¦  «        S )Nr   r   r‡   )r.   r/   ra   r&   )r&   r   ra   rW   rX   )r   r&   r.   r/   r‹   rŽ   s       €€r   Ú_adjointzRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasAdjoint._adjoint  sl   ø€ Ø œJ qœM¨4¬:°a¬=Ð8�EÝ$ S°´
Ð;Ñ;Ô;�FÝ% b°´
Ð;Ñ;Ô;�GÝ$Ô3¸6Ø<CØ:>¼*Ø:?ðAñ Aô Að Ar   N)r€   r�   r‚   rY   rž   )r‹   rŽ   s   €€r   Ú
HasAdjointrœ   ÿ   s@   ø€ € € € € Ø�ðAð Að Að Að Að Að Að Ar   rŸ   c                   ó$   •— e Zd Zˆ fd„Zˆ fd„ZdS )úITestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmatc                 ó.   •— ‰                      |¦  «        S r1   )r$   ©r   r(   rŠ   s     €r   Ú_matmatzQTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmat._matmat  s   ø€ Ø#Ÿ<š<¨™?œ?Ð*r   c                 ó\   •— ‰j                              ¦   «                              |¦  «        S r1   r�   r£   s     €r   Ú_rmatmatzRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmat._rmatmat  s#   ø€ Ø#œ:Ÿ?š?Ñ,Ô,×0Ò0°Ñ3Ô3Ð3r   N)r€   r�   r‚   r¤   r¦   )rŠ   s   €r   Ú
HasRmatmatr¡     sG   ø€ € € € € ð+ð +ð +ð +ð +ð4ð 4ð 4ð 4ð 4ð 4ð 4r   r§   )Úappendr	   r   r   ÚsparseÚ	csr_arrayrW   rX   )	rŠ   ra   Úcasesr•   rš   rŸ   r§   r‹   rŽ   s	   `      @@r   Ú
make_casesz5TestAsLinearOperator.setup_method.<locals>.make_casesÝ   sÿ  øøø€ ØˆEà�LŠL�& °Ð7Ñ7Ô7¸ÐBÑCÔCÐCØ�LŠL�"œ( 8°5Ð9Ñ9Ô9¸8ÐDÑEÔEÐEØ�LŠL�&Ô*¨8¸5ÐAÑAÔAÀ8ÐLÑMÔMÐMðð ð ð ð ð0ð 0ð 0ð 0ð 0ð-ð -ð -ð -ð -ð -ð -ð -�iÔ6ñ -ô -ð -ð.ð .ð .ð .ð .ð .ð .˜[ñ .ô .ð .ð
Að 
Að 
Að 
Að 
Að 
Að 
Að 
A˜[ñ 
Aô 
Að 
Að4ð 4ð 4ð 4ð 4ð 4ð 4˜Zñ 4ô 4ð 4ð �LŠL˜*˜* UÑ+Ô+¨XÐ6Ñ7Ô7Ð7Ø�LŠL˜*˜* UÑ+Ô+¨XÐ6Ñ7Ô7Ð7Ø�LŠL˜*˜* UÑ+Ô+¨XÐ6Ñ7Ô7Ð7ØˆLr   r   r   c                 óT   — g | ]%\  }}t          j        |¦  «        j        |j        f‘Œ&S r>   ©rW   Úaslinearoperatorr,   ©Ú.0ÚMr   s      r   ú
<listcomp>z5TestAsLinearOperator.setup_method.<locals>.<listcomp>  sG   € ð Gð Gð GÙ˜1˜aõ "Ô2°1Ñ5Ô5Ô7¸¼Ð=ð Gð Gð Gr   c                 óx   — g | ]7\  }}t          j        |¦  «        j        |j                             ¦   «         f‘Œ8S r>   ©rW   r¯   rZ   r,   r-   r°   s      r   r³   z5TestAsLinearOperator.setup_method.<locals>.<listcomp>  sO   € ð Gð Gð GÙ˜1˜aõ "Ô2°1Ñ5Ô5Ô7¸¼¿º¹¼ÐDð Gð Gð Gr   c                 ó’   — g | ]D\  }}t          j        |¦  «                             ¦   «         |j                             ¦   «         f‘ŒES r>   ©rW   r¯   r[   r,   r-   r°   s      r   r³   z5TestAsLinearOperator.setup_method.<locals>.<listcomp>  sX   € ð Gð Gð GÙ˜1˜aõ "Ô2°1Ñ5Ô5×=Ò=Ñ?Ô?ÀÄÇÂÁÄÐLð Gð Gð Gr   ©r   rE   ù              @)y              @y              @r   c                 óT   — g | ]%\  }}t          j        |¦  «        j        |j        f‘Œ&S r>   r®   r°   s      r   r³   z5TestAsLinearOperator.setup_method.<locals>.<listcomp>$  sG   € ð Jð Jð JÙ˜1˜aõ "Ô2°1Ñ5Ô5Ô7¸¼Ð=ð Jð Jð Jr   c                 óx   — g | ]7\  }}t          j        |¦  «        j        |j                             ¦   «         f‘Œ8S r>   rµ   r°   s      r   r³   z5TestAsLinearOperator.setup_method.<locals>.<listcomp>&  sO   € ð Jð Jð JÙ˜1˜aõ "Ô2°1Ñ5Ô5Ô7¸¼¿º¹¼ÐDð Jð Jð Jr   c                 ó’   — g | ]D\  }}t          j        |¦  «                             ¦   «         |j                             ¦   «         f‘ŒES r>   r·   r°   s      r   r³   z5TestAsLinearOperator.setup_method.<locals>.<listcomp>(  sX   € ð Jð Jð JÙ˜1˜aõ "Ô2°1Ñ5Ô5×=Ò=Ñ?Ô?ÀÄÇÂÁÄÐLð Jð Jð Jr   )r«   r   r   Úint32Úfloat32Úfloat64r,   rb   )r   r¬   rŠ   s      r   r   z!TestAsLinearOperator.setup_methodÚ   s]  € ØˆŒ
ð8	ð 8	ð 8	õt ”8˜W˜W˜W g g gÐ.Ñ/Ô/ˆØˆ
Œ
�j�j ­2¬8Ñ4Ô4Ñ4ˆ
Œ
Øˆ
Œ
�j�j ­2¬:Ñ6Ô6Ñ6ˆ
Œ
Øˆ
Œ
�j�j ­2¬:Ñ6Ô6Ñ6ˆ
Œ
Øˆ
Œ
ð Gð GØ#- :¨h¬j½"¼*Ñ#EÔ#EðGñ Gô Gñ 	Gˆ
Œ
àˆ
Œ
ð Gð GØ#- :¨h¬j½"¼*Ñ#EÔ#EðGñ Gô Gñ 	Gˆ
Œ
àˆ
Œ
ð Gð GØ#- :¨h¬j½"¼*Ñ#EÔ#EðGñ Gô Gñ 	Gˆ
Œ
õ ”8˜[˜[˜[¨+¨+¨+Ð6Ñ7Ô7ˆØˆ
Œ
�j�j ­2¬=Ñ9Ô9Ñ9ˆ
Œ
Øˆ
Œ
ð Jð JØ#- :¨h¬j½"¼-Ñ#HÔ#HðJñ Jô Jñ 	Jˆ
Œ
àˆ
Œ
ð Jð JØ#- :¨h¬j½"¼-Ñ#HÔ#HðJñ Jô Jñ 	Jˆ
Œ
àˆ
Œ
ð Jð JØ#- :¨h¬j½"¼-Ñ#HÔ#HðJñ Jô Jñ 	Jˆ
Œ
ˆ
ˆ
r   c                 ó|	  — | j         D �]²\  }}t          j        |¦  «        }|j        \  }}t	          j        g d¢¦  «        t	          j        dgdgdgg¦  «        g}t	          j        ddg¦  «        t	          j        dgdgg¦  «        g}|j        t          j        k    rd|t	          j        g d¢¦  «        t	          j        dgdgdgg¦  «        gz  }|t	          j        ddg¦  «        t	          j        dgdgg¦  «        gz  }t	          j        ddgdd	gdd
gg¦  «        }|D ]^}t          | 	                    |¦  «        | 
                    |¦  «        ¦  «         t          ||z  | 
                    |¦  «        ¦  «         Œ_t          |                     |¦  «        | 
                    |¦  «        ¦  «         t          ||z  | 
                    |¦  «        ¦  «         |D �]A}	t          |                     |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |j         	                    |	¦  «        |j         
                    |	¦  «        ¦  «         t          |j         	                    |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |                     ¦   «          	                    |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         �ŒC|D �]M}	|	j        dk     rŒt          |                     |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |j                             |	¦  «        |j         
                    |	¦  «        ¦  «         t          |j                             |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |                     ¦   «                              |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         �ŒOt'          |d¦  «        rt          |j        |j        ¦  «         t)          t'          |d¦  «        ¦  «         �Œ´d S )Nr   r   r   r   r¸   rE   r¹   r   r   r   ra   rY   )r«   rW   r¯   r&   r   r   ra   rb   r   r.   r$   r;   r/   r,   r-   rZ   r[   Úndimr:   Úhasattrr   )
r   r²   ÚA_arrayr   ÚNÚxsÚysÚx2r(   r‰   s
             r   Ú
test_basiczTestAsLinearOperator.test_basic+  sæ  € àœ*ð '	(ñ '	(‰JˆAˆwÝÔ*¨1Ñ-Ô-ˆAØ”'‰CˆAˆaå”(˜9˜9˜9Ñ%Ô%Ý”(˜Q˜C !  q c˜?Ñ+Ô+ð-ˆBå”(˜A˜q˜6Ñ"Ô"¥B¤H¨q¨c°A°3¨ZÑ$8Ô$8Ð9ˆBàŒw�"œ-Ò'Ð'Ø•r”x   Ñ,Ô,Ý”x !  r d¨R¨DÐ 1Ñ2Ô2ð4ñ 4�à•r”x  B Ñ(Ô(­"¬(°Q°C¸"¸°;Ñ*?Ô*?Ð@Ñ@�å”˜A˜q˜6 A q 6¨A¨q¨6Ð2Ñ3Ô3ˆBàð 4ð 4�Ý˜QŸXšX a™[œ[¨'¯+ª+°a©.¬.Ñ9Ô9Ð9Ý˜Q ™U G§K¢K°¡N¤NÑ3Ô3Ð3Ð3å˜Ÿš "™œ w§{¢{°2¡¤Ñ7Ô7Ð7Ý˜˜R™ §¢¨R¡¤Ñ1Ô1Ð1àð Mñ M�Ý˜QŸYšY q™\œ\¨7¬9¯>ª>Ñ+;Ô+;×+?Ò+?ÀÑ+BÔ+BÑCÔCÐCÝ˜QœSŸZšZ¨™]œ]¨G¬I¯MªM¸!Ñ,<Ô,<Ñ=Ô=Ð=Ý˜QœSŸZšZ¨™]œ]¨G¬I¯NªNÑ,<Ô,<×,@Ò,@ÀÑ,CÔ,CÑDÔDÐDÝ˜QŸYšY™[œ[×/Ò/°Ñ2Ô2°G´I·N²NÑ4DÔ4D×4HÒ4HÈÑ4KÔ4KÑLÔLÐLÑLàð Mñ M�Ø”6˜A’:�:ØÝ˜QŸYšY q™\œ\¨7¬9¯>ª>Ñ+;Ô+;×+?Ò+?ÀÑ+BÔ+BÑCÔCÐCÝ˜QœSŸZšZ¨™]œ]¨G¬I¯MªM¸!Ñ,<Ô,<Ñ=Ô=Ð=Ý˜QœSŸZšZ¨™]œ]¨G¬I¯NªNÑ,<Ô,<×,@Ò,@ÀÑ,CÔ,CÑDÔDÐDÝ˜QŸYšY™[œ[×/Ò/°Ñ2Ô2°G´I·N²NÑ4DÔ4D×4HÒ4HÈÑ4KÔ4KÑLÔLÐLÑLå�q˜Ñ!Ô!ð /Ý˜QœW a¤gÑ.Ô.Ð.å•G˜A˜vÑ&Ô&Ñ'Ô'Ð'Ñ'ðO'	(ð '	(r   c                 ó>  — | j         D �]\  }}t          j        |¦  «        }|j        \  }}t	          j        g d¢¦  «        }t	          j        dgdgdgg¦  «        }t	          j        ddgddgddgg¦  «        }t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         �Œd S )Nr   r   r   r   r   r   r   )r«   rW   r¯   r&   r   r   r   r$   )r   r²   rÃ   r   rÄ   Úx0Úx1rÇ   s           r   Útest_dotzTestAsLinearOperator.test_dotV  sû   € àœ*ð 
	5ñ 
	5‰JˆAˆwÝÔ*¨1Ñ-Ô-ˆAØ”'‰CˆAˆaå”˜)˜)˜)Ñ$Ô$ˆBÝ”˜A˜3   a S˜/Ñ*Ô*ˆBÝ”˜A˜q˜6 A q 6¨A¨q¨6Ð2Ñ3Ô3ˆBå˜Ÿš˜r™œ G§K¢K°¡O¤OÑ4Ô4Ð4Ý˜Ÿš˜r™œ G§K¢K°¡O¤OÑ4Ô4Ð4Ý˜Ÿš˜r™œ G§K¢K°¡O¤OÑ4Ô4Ð4Ñ4ð
	5ð 
	5r   N)r€   r�   r‚   r   rÈ   rÌ   r>   r   r   r„   r„   Ù   sI   € € € € € ðOJð OJð OJðb)(ð )(ð )(ðV5ð 5ð 5ð 5ð 5r   r„   c                  óv   — t          j        dd„ ¬¦  «        } t          | ¦  «        }t          d|v|¦  «         d S )N)r   r   c                 ó   — dS r+   r>   ©r(   s    r   r)   ztest_repr.<locals>.<lambda>f  s   € À€ r   ©r&   r.   zunspecified dtype)rW   rX   Úreprr   )r   Úrepr_As     r   Ú	test_reprrÓ   e  s@   € ÝÔ  v°k°kÐBÑBÔB€AÝ�!‰WŒW€FÝÐ vÐ-¨vÑ6Ô6Ð6Ð6Ð6r   c                  óp  — t          j        d¦  «        } t          | g d¢z  g d¢¦  «         t          |                      t	          j        d¦  «                             dd¦  «        ¦  «                             ¦   «         t	          j        d¦  «        ¦  «         t          t          | j
        g d¢¦  «         d S )N©r   r   r   ry   r   rH   )rW   ÚIdentityOperatorr   r$   r   Úaranger%   Úravelrc   rd   r.   )Úidents    r   Útest_identityrÚ   k  s•   € ÝÔ& vÑ.Ô.€EÝ�˜˜˜Ñ" I I IÑ.Ô.Ð.Ý�—’�2œ9 Q™<œ<×/Ò/°°1Ñ5Ô5Ñ6Ô6×<Ò<Ñ>Ô>ÅÄ	È!ÁÄÑMÔMÐMå•*˜eœl¨L¨L¨LÑ9Ô9Ð9Ð9Ð9r   c            
      óÆ  — t          j        t          j        d¦  «                             dd¦  «        ¦  «        } d„ }t          j        d|¬¦  «        }| || |z  | |z  | j        |                      ¦   «         | | z   ||z   | dz  g	}|D ]Y}t          t          |d¦  «        ¦  «         t          t          |d¦  «        ¦  «         t          t          |d¦  «        ¦  «         ŒZd S )	Né   r   c                 ó˜   — t          j        | ¦  «        } t          | j        dk    p
| j        dk    ¦  «         t          j        d¦  «        S )N)r   )r   r   r   )r   Úasarrayr   r&   ÚonesrÏ   s    r   Úalways_four_onesz)test_attributes.<locals>.always_four_onesv  s=   € ÝŒJ�q‰MŒMˆÝ�”˜4’Ð4 1¤7¨fÒ#4Ñ5Ô5Ð5ÝŒw�q‰zŒzÐr   )r   r   rÐ   ra   r&   r”   )
rW   r¯   r   r×   r%   rX   rZ   r[   r   rÂ   )r   rà   r   ÚopsÚops        r   Útest_attributesrã   s  së   € ÝÔ"¥2¤9¨R¡=¤=×#8Ò#8¸¸AÑ#>Ô#>Ñ?Ô?€Aðð ð õ
 	Ô  vÐ6FÐGÑGÔG€Aàˆa��Q‘˜˜A™˜qœs A§I¢I¡K¤K°°Q±¸¸A¹¸qÀ!¹tÐ
D€CØð (ð (ˆÝ•˜˜GÑ$Ô$Ñ%Ô%Ð%Ý•˜˜GÑ$Ô$Ñ%Ô%Ð%Ý•˜˜IÑ&Ô&Ñ'Ô'Ð'Ð'ð(ð (r   c                 ó*   — t          j        d¦  «        S )z> Needed for test_pickle as local functions are not pickleable r   )r   ÚzerosrÏ   s    r   r.   r.   ƒ  s   € åŒ8�A‰;Œ;Ðr   c            	      ó:  — dd l } t          | j        dz   ¦  «        D ]~}t          j        dt
          ¦  «        }|                      ||¬¦  «        }|                      |¦  «        }|j        D ].}t          t          ||¦  «        t          ||¦  «        ¦  «         Œ/Œd S )Nr   r   rÕ   )Úprotocol)ÚpickleÚrangeÚHIGHEST_PROTOCOLrW   rX   r.   ÚdumpsÚloadsÚ__dict__r   Úgetattr)rè   rç   r   Úsr   Úks         r   Útest_picklerñ   ‡  s£   € Ø€M€M€Må˜&Ô1°AÑ5Ñ6Ô6ð 7ð 7ˆÝÔ$ V­VÑ4Ô4ˆØ�LŠL˜ XˆLÑ.Ô.ˆØ�LŠL˜‰OŒOˆà”ð 	7ð 	7ˆAÝ�  A™œ­°°1©¬Ñ6Ô6Ð6Ð6ð	7ð7ð 7r   c                  ó–  —  G d„ dt           j        ¦  «        } t          t          d¬¦  «        5  t	          t
          | ¦  «         d d d ¦  «         n# 1 swxY w Y    G d„ dt           j        ¦  «        } |d¦  «        }t          |                     g d¢¦  «        g d¢¦  «         t	          t          |j	        g d	¢¦  «          G d
„ dt           j        ¦  «        } |t          j                             dd¦  «        ¦  «        }t          |                     t          j                             d¦  «        ¦  «        j        d¦  «         d S )Nc                   ó   — e Zd ZdS )útest_inheritance.<locals>.EmptyN)r€   r�   r‚   r>   r   r   ÚEmptyrô   ”  s   € € € € € Øˆr   rõ   zshould implement at leastrF   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ú"test_inheritance.<locals>.Identityc                 óR   •— t          ¦   «                              d ||f¬¦  «         d S )N)ra   r&   )Úsuperr’   )r   ÚnÚ	__class__s     €r   r’   z+test_inheritance.<locals>.Identity.__init__›  s*   ø€ Ý‰GŒG×Ò 4°°1¨vÐÑ6Ô6Ð6Ð6Ð6r   c                 ó   — |S r1   r>   ©r   r(   s     r   r”   z*test_inheritance.<locals>.Identity._matvecž  s   € ØˆHr   )r€   r�   r‚   r’   r”   Ú__classcell__©rû   s   @r   ÚIdentityr÷   š  sG   ø€ € € € € ð	7ð 	7ð 	7ð 	7ð 	7ð	ð 	ð 	ð 	ð 	ð 	ð 	r   r   r   r   r   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ú$test_inheritance.<locals>.MatmatOnlyc                 ón   •— t          ¦   «                              |j        |j        ¦  «         || _        d S r1   ©rù   r’   ra   r&   r   ©r   r   rû   s     €r   r’   z-test_inheritance.<locals>.MatmatOnly.__init__¦  ó,   ø€ Ý‰GŒG×Ò˜QœW a¤gÑ.Ô.Ð.ØˆDŒFˆFˆFr   c                 ó6   — | j                              |¦  «        S r1   )r   r$   rý   s     r   r¤   z,test_inheritance.<locals>.MatmatOnly._matmatª  s   € Ø”6—:’:˜a‘=”=Ð r   )r€   r�   r‚   r’   r¤   rþ   rÿ   s   @r   Ú
MatmatOnlyr  ¥  sG   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!r   r  r   )r   )rW   rX   r   ÚRuntimeWarningrc   Ú	TypeErrorr   r.   ÚNotImplementedErrorr/   r   ÚrandomÚrandnr&   )rõ   r   Úid3r  Úmms        r   Útest_inheritancer  “  s¤  € ðð ð ð ð •	Ô(ñ ô ð õ 
�~Ð%@Ð	AÑ	AÔ	Að (ð (Ý•i Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ðð ð ð ð •9Ô+ñ ô ð ð ˆ(�1‰+Œ+€CÝ�—’˜I˜I˜IÑ&Ô&¨	¨	¨	Ñ2Ô2Ð2ÝÕ% s¤{°I°I°IÑ>Ô>Ð>ð!ð !ð !ð !ð !•YÔ-ñ !ô !ð !ð 
ˆ•B”I—O’O A qÑ)Ô)Ñ	*Ô	*€BÝ�—’�2œ9Ÿ?š?¨1Ñ-Ô-Ñ.Ô.Ô4°dÑ;Ô;Ð;Ð;Ð;s   ¯AÁAÁAc                  ó®  — t           j                             dd¦  «        dt           j                             dd¦  «        z  z   } t           j                             dd¦  «        }t          j        | ¦  «        }t          j        |¦  «        }||z   }||z   }t          |j        t           j        ¦  «         t          |j        t           j        ¦  «         d S )Nr   ù              ð?)	r   r  ÚrandrW   r¯   r   ra   r¿   rb   )Úmat_complexÚmat_realÚcomplex_operatorÚreal_operatorÚsum_complexÚsum_reals         r   Útest_dtypes_of_operator_sumr  °  s­   € õ ”)—.’.  1Ñ%Ô%¨­R¬Y¯^ª^¸A¸aÑ-@Ô-@Ñ(@Ñ@€KÝŒy�~Š~˜a Ñ"Ô"€Hå Ô1°+Ñ>Ô>ÐÝÔ.¨xÑ8Ô8€Mà"Ð%5Ñ5€KØ˜}Ñ,€Hå�”¥¤Ñ,Ô,Ð,Ý�Ô"¥B¤MÑ2Ô2Ð2Ð2Ð2r   c                  óp   ‡— dgŠˆfd„} t          j        d| ¬¦  «         t          ‰d         d¦  «         d S )Nr   c                 ó(   •— ‰dxx         dz  cc<   | S ©Nr   r   r>   )ÚvÚ
call_counts    €r   r.   z#test_no_double_init.<locals>.matvecÂ  s   ø€ Ø�1ˆˆŒ˜Ñˆˆ‰Øˆr   ©r   r   ©r.   r   )rW   rX   r   )r.   r  s    @r   Útest_no_double_initr"  ¿  sU   ø€ Ø�€Jðð ð ð ð õ Ô˜V¨FÐ3Ñ3Ô3Ð3Ý�˜A” Ñ"Ô"Ð"Ð"Ð"r   Ú
test_dtypec                 ó¨   ‡— t          j        d| ¬¦  «        Šˆfd„}t          j        d|¬¦  «        }|j        t          j        | ¦  «        k    sJ ‚d S )Nr   r‡   c                 óN   •— t          j        ‰| d         z  | d         g¦  «        S r  ©r   r   )r  Úscalars    €r   r‹   z/test_determine_lo_dtype_from_matvec.<locals>.mvÖ  s$   ø€ ÝŒx˜ ! A¤$™¨¨!¬Ð-Ñ.Ô.Ð.r   r   r!  )r   r   rW   rX   ra   )r#  r‹   Úlor'  s      @r   Ú#test_determine_lo_dtype_from_matvecr)  Ò  sl   ø€ õ ŒX�a˜zÐ*Ñ*Ô*€Fð/ð /ð /ð /ð /õ 
Ô	! &°Ð	4Ñ	4Ô	4€BØŒ8•r”x 
Ñ+Ô+Ò+Ð+Ð+Ð+Ð+Ð+r   c                  óX   — d„ } t          j        d| ¬¦  «        }|j        t          v sJ ‚d S )Nc                 óL   — t          j        d| d         z  | d         g¦  «        S )Né€   r   r   r&  )r  s    r   r‹   z+test_determine_lo_dtype_for_int.<locals>.mvß  s#   € ÝŒx˜˜q œt™ Q q¤TÐ*Ñ+Ô+Ð+r   r   r!  )rW   rX   ra   Ú
INT_DTYPES)r‹   r(  s     r   Útest_determine_lo_dtype_for_intr.  Ü  sA   € ð,ð ,ð ,õ 
Ô	! &°Ð	4Ñ	4Ô	4€BØŒ8•zÐ!Ð!Ð!Ð!Ð!Ð!r   c                  óf  — t          j        dgg¦  «        } t          j        | ¦  «        }d|z  }d| z  }t          j        dg¦  «        }t	          |                     |¦  «        |                     |¦  «        ¦  «         t	          |j                             |¦  «        |j                             ¦   «                              |¦  «        ¦  «         t	          | 	                    ¦   «                              |¦  «        |j                             ¦   «                              |¦  «        ¦  «         d S ©Nr  r   )
r   r   rW   r¯   r   r$   rZ   r,   r-   r[   ©rh   r   r   ÚYr  s        r   Útest_adjoint_conjugater3  å  sÜ   € Ý
Œ�2�$�ÑÔ€AÝÔ" 1Ñ%Ô%€Aà
ˆQ‰€AØ
ˆQ‰€Aå
Œ�!�‰Œ€Aå�—’�q‘”˜1Ÿ5š5 ™8œ8Ñ$Ô$Ð$Ý�”—’˜‘”˜QœSŸXšX™ZœZŸ^š^¨AÑ.Ô.Ñ/Ô/Ð/Ý�—’‘”—’ Ñ#Ô# Q¤S§X¢X¡Z¤Z§^¢^°AÑ%6Ô%6Ñ7Ô7Ð7Ð7Ð7r   c                  ó„   — t          j        dgg¦  «        } t          j        | ¦  «        }t	          |j        d¦  «         d S )Nr   r   )r   r   rW   r¯   r   rÁ   )rh   r   s     r   Ú	test_ndimr5  ò  s;   € Ý
Œ�1�#�‰Œ€AÝÔ" 1Ñ%Ô%€AÝ�”˜ÑÔÐÐÐr   c                  ó„  — t          j        dgg¦  «        } t          j        | ¦  «        }d|z  }d| z  }t          j        dg¦  «        }t	          |                     |¦  «        |                     |¦  «        ¦  «         t	          |j                             |¦  «        |j                             |¦  «        ¦  «         d S r0  )r   r   rW   r¯   r   r$   r,   r1  s        r   Útest_transpose_noconjugater7  ÷  s˜   € Ý
Œ�2�$�ÑÔ€AÝÔ" 1Ñ%Ô%€Aà
ˆQ‰€AØ
ˆQ‰€Aå
Œ�!�‰Œ€Aå�—’�q‘”˜1Ÿ5š5 ™8œ8Ñ$Ô$Ð$Ý�”—’˜‘”˜QœSŸWšW Q™ZœZÑ(Ô(Ð(Ð(Ð(r   c                  ó@  —  G d„ dt           j        ¦  «        }  | t          j        ddgddgg¦  «        ¦  «        }t          j        ddg¦  «        }t          j        ddgd	d
gg¦  «        }|                     dd¦  «        }t          j        ddgddgg¦  «        }t          ||z  ||z  ¦  «         t          |j        |z  |j        |z  ¦  «         t          |j        |z  |j        |z  ¦  «         t          ||z  ||z  ¦  «         t          |j        |z  |j        |z  ¦  «         t          |j        |z  |j        |z  ¦  «         t          ||z  ||z  ¦  «         t          |j        |z  |j        |z  ¦  «         t          |j        |z  |j        |z  ¦  «         d S )Nc                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ú/test_transpose_multiplication.<locals>.MyMatrixc                 ón   •— t          ¦   «                              |j        |j        ¦  «         || _        d S r1   r  r  s     €r   r’   z8test_transpose_multiplication.<locals>.MyMatrix.__init__  r  r   c                 ó   — | j         |z  S r1   r<   ©r   Úothers     r   r¤   z7test_transpose_multiplication.<locals>.MyMatrix._matmat  s   € ¨¬°%©Ð"7r   c                 ó    — | j         j        |z  S r1   )r   r,   r=  s     r   r¦   z8test_transpose_multiplication.<locals>.MyMatrix._rmatmat	  s   € ¨$¬&¬(°UÑ*:Ð#:r   )r€   r�   r‚   r’   r¤   r¦   rþ   rÿ   s   @r   ÚMyMatrixr:    sD   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	8Ð7Ð7Ø:Ð:Ð:Ð:Ð:Ð:Ð:r   r@  r   r   r   r   rC   é   rB   é(   rz   )rW   rX   r   r   r%   r   r,   )r@  r   rh   r   ÚX2r2  s         r   Útest_transpose_multiplicationrD    s«  € ð;ð ;ð ;ð ;ð ;•9Ô+ñ ;ô ;ð ;ð 	ˆ•”˜A˜q˜6 A q 6Ð*Ñ+Ô+Ñ,Ô,€AÝ
Œ�!�Q�ÑÔ€AÝ
Œ�2�r�(˜R ˜HÐ%Ñ&Ô&€AØ	
�Š�2�qÑ	Ô	€BÝ
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€Aå��Q‘˜˜A™ÑÔÐÝ�”�q‘˜!œ# ™'Ñ"Ô"Ð"Ý�”�q‘˜!œ# ™'Ñ"Ô"Ð"Ý��Q‘˜˜A™ÑÔÐÝ�”�q‘˜!œ# ™'Ñ"Ô"Ð"Ý�”�q‘˜!œ# ™'Ñ"Ô"Ð"Ý��R‘˜˜R™Ñ Ô Ð Ý�”˜‘˜2œ4 !™8Ñ$Ô$Ð$Ý�”�r‘˜1œ3 ™8Ñ$Ô$Ð$Ð$Ð$r   c                  ó:  — t          j        dd„ ¬¦  «        } t          j        d¦  «        }d}t	          t
          |¬¦  «        5  | |z   d d d ¦  «         n# 1 swxY w Y   t	          t
          |¬¦  «        5  || z   d d d ¦  «         n# 1 swxY w Y   t	          t          ¦  «        5  | t          j        d¦  «        z   d d d ¦  «         n# 1 swxY w Y   t	          t          ¦  «        5  t          j        d¦  «        | z   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   c                 ó   — | S r1   r>   rÏ   s    r   r)   z.test_sparse_matmat_exception.<locals>.<lambda>  s   € ¸!€ r   r!  r   z9Unable to multiply a LinearOperator with a sparse matrix.rF   r   )	rW   rX   r©   Ú	eye_arrayrc   r
  rd   r   Úidentity)r   r   rk   s      r   Útest_sparse_matmat_exceptionrI    s  € ÝÔ  °°Ð<Ñ<Ô<€AÝÔ˜ÑÔ€AØ
E€CÝ	•y¨Ð	,Ñ	,Ô	,ð ð Ø	ˆA‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	•y¨Ð	,Ñ	,Ô	,ð ð Ø	ˆA‰ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	•zÑ	"Ô	"ð ð Ø	�BŒK˜‰NŒNÑÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	•zÑ	"Ô	"ð ð Ý
Œ�A‰Œ˜ÑÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sH   ÁAÁAÁAÁ7B	Â	BÂBÂ(CÃCÃCÃ+DÄDÄDzTest not meaningful on PyPy)Úreasonc                  ó¾   — t          j        d¦  «        } t          t          j        | ¦  «        5 }|                     ¦   «          ~d d d ¦  «         d S # 1 swxY w Y   d S rL   )r   Úeyer
   rW   ÚMatrixLinearOperatorr[   )r   râ   s     r   Ú"test_MatrixLinearOperator_refcyclerN  )  s•   € õ 	Œˆq‰	Œ	€AÝ	�IÔ:¸AÑ	>Ô	>ð À"Ø
�
Š
‰ŒˆØðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¯AÁAÁA)>Ú__doc__Ú	functoolsr   Ú	itertoolsr   r{   Úpytestr   rc   r   Únumpy.testingr   r   Únumpyr   Úscipy.sparser©   Úscipy.sparse.linalg._interfaceÚlinalgÚ
_interfacerW   Úscipy.sparse._sputilsr	   Úscipy._lib._gcutilsr
   r   r   r„   rÓ   rÚ   rã   r.   rñ   r  r  r"  Úint8Úint16r½   Úint64r-  r¾   r¿   Ú
longdoubleÚREAL_DTYPESÚ	complex64rb   ÚclongdoubleÚCOMPLEX_DTYPESÚINEXACTDTYPESÚ	ALLDTYPESÚmarkÚparametrizer)  r.  r3  r5  r7  rD  rI  ÚskipifrN  r>   r   r   ú<module>rh     sÒ  ððð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ø Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø (Ð (Ð (Ð (Ð (Ð (Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðC9ð C9ð C9ð C9ð C9ñ C9ô C9ð C9ðLI5ð I5ð I5ð I5ð I5ñ I5ô I5ð I5ðX7ð 7ð 7ð:ð :ð :ð(ð (ð (ð ð ð ð	7ð 	7ð 	7ð<ð <ð <ð:3ð 3ð 3ð
#ð 
#ð 
#ð Œg�r”x ¤¨2¬8Ð4€
ØŒz˜2œ: r¤}Ð5€Ø”, ¤¨r¬~Ð>€Ø˜nÑ,€Ø˜Ñ&€	ð „×Ò˜ yÑ1Ô1ð,ð ,ñ 2Ô1ð,ð"ð "ð "ð8ð 8ð 8ðð ð ð

)ð 
)ð 
)ð%ð %ð %ð0ð ð ð „×Ò�GÐ$AÐÑBÔBðð ñ CÔBðð ð r   