§
    ¡éUg!F  ã                   óþ   — d Z ddlmZ ddlm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  G d„ d	¦  «        Z G d
„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$dS )z7Test functions for the sparse.linalg._interface module
é    )Úpartial)ÚproductN)ÚraisesÚwarns)Úassert_Úassert_equal)Úmatrixc                   ó    — 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    úg/var/www/surfInsights/venv3-11/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                 ó2#  ‡‡— d„ } || j         ¦  «        D �]T}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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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}t1          t2          |¬¦  «        5  ‰t          j        ddg¦  «        z   d d d ¦  «         n# 1 swxY w Y   t1          t2          ‰j        t          j        ddg¦  «        ¦  «         t1          t2          ‰j        t          j        g d¢¦  «        ¦  «         t1          t2          ‰j        t          j        dgdgg¦  «        ¦  «         t1          t2          ‰j        t          j        dgdgdgdgg¦  «        ¦  «         t1          t2          ˆfd„¦  «         t1          t2          ˆfd„¦  «         �ŒVt5           || j         ¦  «         || j        ¦  «        ¦  «        D �]W\  }}	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          t%          ‰‰z  t          j        ¦  «        ¦  «         t1          t2          ˆˆfd„¦  «         t1          t2          ˆfd„¦  «         ‰‰z  }t          t#          |j        ¦  «        dk    o|j        d         ‰u o|j        d         ‰u ¦  «         �ŒY || 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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 r/   ©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 r/   r3   r%   s    €r   r'   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>'   r4   r   c                 ó.   •— t          j        ‰| ¦  «        S r/   r0   r%   s    €r   r'   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>(   r1   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 r/   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 r/   r<   )r   r   s   €€r   r'   z0TestLinearOperator.test_matvec.<locals>.<lambda>£   rH   r   c                  ó   •— ‰ dz  S rJ   r<   r:   s   €r   r'   z0TestLinearOperator.test_matvec.<locals>.<lambda>¤   rK   r   é   é%   é   )r   Ú	interfaceÚLinearOperatorr   Úargsr   r,   r   r   r"   r	   r-   ÚHr9   r8   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Ñ*Ô*ð a	4ñ a	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™#   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™#   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Ñ<Ô<Ð<å•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™$Ÿš¨¨¨Q¨C yÑ1Ô1°R°D¸"¸°;Ñ?Ô?Ð?å•J˜q !™t¥YÔ%CÑDÔDÑEÔEÐEÑEð	Fð 	Fs   ñq+ñ+q/	ñ2q/	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        | 	                    dd
¦  «        |j
        ¦  «        | 	                    dd
¦  «        |j
        z  ¦  «         t          t          j        ||j
        ¦  «        ||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$   rp   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 r/   )r   r"   r   r*   r+   rp   s    €r   r'   z0TestLinearOperator.test_matmul.<locals>.<lambda>½   s   ø€ ¥"¤&¨¬¬¯ª©¬¸!Ñ"<Ô"<€ r   c                 ó8   •— t          j        ‰j        | ¦  «        S r/   )r   r"   r   rp   s    €r   r'   z0TestLinearOperator.test_matmul.<locals>.<lambda>¾   s   ø€ ¥¤¨¬°Ñ!2Ô!2€ r   r7   )y      ð?      ð?r   r   r   )é   é   é	   r   éÿÿÿÿr   r   r<   )r   r$   rU   rV   r   r   r   ÚoperatorÚmatmulr#   rX   r`   ra   )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§Y¢Y¨q°"Ñ%5Ô%5°q´sÑ;Ô;¸Q¿YºYÀqÈ"Ñ=MÔ=MÐPQÔPSÑ=SÑTÔTÐTÝ•X”_ Q¨¬Ñ,Ô,¨a°!´#©gÑ6Ô6Ð6Ý•j¥(¤/°1°aÑ8Ô8Ð8Ý•j¥(¤/°1°aÑ8Ô8Ð8Ð8Ð8r   N)Ú__name__Ú
__module__Ú__qualname__r   rm   r|   r<   r   r   r   r      sH   € € € € € ð#ð #ð #ð[Fð [Fð [Fðz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_         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_         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©r^   c                 óŽ   •— ‰                      | ¦  «        }t          | j        ¦  «        dk    r|                     dd¦  «        }|S )Nr   rw   r   )r"   rY   r$   r#   )r&   r^   Ú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 r/   ©r*   r+   r"   )r&   r^   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 r/   )r   r^   r$   )r   r^   r‡   s     €r   Ú__init__zSTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike.__init__è   s   ø€ Ý!#¤¨%¡¤�D”JØ!)¤�D”J�J�Jr   c                 ó&   •—  ‰|| j         ¦  «        S r/   r„   )r   r&   rˆ   s     €r   Ú_matveczRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike._matvecì   s   ø€ Ø˜2˜a ¤Ñ,Ô,Ð,r   N)r}   r~   r   rW   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 r/   r„   )r   r&   r‹   s     €r   Ú_rmatveczRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatvec._rmatvecò   s   ø€ Ø˜3˜q $¤*Ñ-Ô-Ð-r   N)r}   r~   r   rW   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-   r^   r$   )r$   r   r^   rU   rV   )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   rW   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 r/   )r"   ©r   r&   r‡   s     €r   Ú_matmatzQTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmat._matmat  s   ø€ Ø#Ÿ<š<¨™?œ?Ð*r   c                 ó\   •— ‰j                              ¦   «                              |¦  «        S r/   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_matrixrU   rV   )	r‡   r^   Ú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�&Ô+¨H¸EÐBÑBÔBÀHÐMÑNÔNÐNðð ð ð ð ð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<   ©rU   Ú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<   ©rU   r¬   rX   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   ©r   rC   ù              @)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   )r¨   r   r   Úint32Úfloat32Úfloat64r*   r_   )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ˆ
Œ
õ ”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ˆ
Œ
ˆ
ˆ
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 ]á}	t          |                     |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |j         	                    |	¦  «        |j         
                    |	¦  «        ¦  «         t          |j         	                    |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         Œâ|D ]í}	|	j        dk     rŒt          |                     |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         t          |j                             |	¦  «        |j         
                    |	¦  «        ¦  «         t          |j                             |	¦  «        |j                             ¦   «          
                    |	¦  «        ¦  «         Œît%          |d¦  «        rt          |j        |j        ¦  «         t'          t%          |d¦  «        ¦  «         �Œòd S )Nr   r   r   r   r³   rC   r´   r   r   r   r^   rW   )r¨   rU   r¬   r$   r   r   r^   r_   r   r,   r"   r9   r-   r*   r+   rX   Úndimr8   Úhasattrr   )
r   r¯   ÚA_arrayr   ÚNÚxsÚysÚx2r&   r†   s
             r   Ú
test_basiczTestAsLinearOperator.test_basic  sf  € àœ*ð %	(ñ %	(‰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àð Eð E�Ý˜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ÐDàð Eð E�Ø”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ÐDå�q˜Ñ!Ô!ð /Ý˜QœW a¤gÑ.Ô.Ð.å•G˜A˜vÑ&Ô&Ñ'Ô'Ð'Ñ'ðK%	(ð %	(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¨   rU   r¬   r$   r   r   r   r"   )r   r¯   r½   r   r¾   Úx0Úx1rÁ   s           r   Útest_dotzTestAsLinearOperator.test_dotF  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   € € € € € ðKJð KJð KJðZ'(ð '(ð '(ðR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>V  s   € À€ r   ©r$   r,   zunspecified dtype)rU   rV   Úreprr   )r   Úrepr_As     r   Ú	test_reprrÍ   U  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   rv   r   rF   )rU   ÚIdentityOperatorr   r"   r   Úaranger#   Úravelr`   ra   r,   )Úidents    r   Útest_identityrÔ   [  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  | j        | | z   ||z   | dz  f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_onesf  s=   € ÝŒJ�q‰MŒMˆÝ�”˜4’Ð4 1¤7¨fÒ#4Ñ5Ô5Ð5ÝŒw�q‰zŒzÐr   )r   r   rÊ   r^   r$   r‘   )	rU   r¬   r   rÑ   r#   rV   rX   r   r¼   )r   rÚ   r   Úops       r   Útest_attributesrÜ   c  sÖ   € ÝÔ"¥2¤9¨R¡=¤=×#8Ò#8¸¸AÑ#>Ô#>Ñ?Ô?€Aðð ð õ
 	Ô  vÐ6FÐGÑGÔG€Aà�!�Q˜‘U˜AœC  Q¡¨¨A©¨q°!©tÐ4ð (ð (ˆÝ•˜˜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,   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_PROTOCOLrU   rV   r,   ÚdumpsÚloadsÚ__dict__r   Úgetattr)rá   rà   r   Úsr   Úks         r   Útest_picklerê   v  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 leastrD   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ú"test_inheritance.<locals>.Identityc                 óR   •— t          ¦   «                              d ||f¬¦  «         d S )N)r^   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 r/   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 r/   )rò   r�   r^   r$   r   )r   r   rô   s     €r   r�   z-test_inheritance.<locals>.MatmatOnly.__init__”  s,   ø€ Ý‰GŒG×Ò˜QœW a¤gÑ.Ô.Ð.ØˆDŒFˆFˆFr   c                 ó6   — | j                              |¦  «        S r/   )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   )rU   rV   r   ÚRuntimeWarningr`   Ú	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  ÚrandrU   r¬   r   r^   r¹   r_   )Ú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   )rU   rV   r   )r,   r  s    @r   Útest_no_double_initr  ­  sU   ø€ Ø�€Jðð ð ð ð õ Ô˜V¨FÐ3Ñ3Ô3Ð3Ý�˜A” Ñ"Ô"Ð"Ð"Ð"r   c                  ó¨  — t          j        dgg¦  «        } t          j        | ¦  «        }d|z  }d| z  }t          j        dg¦  «        }t	          |                     |¦  «        |                     |¦  «        ¦  «         t	          |j                             |¦  «        |j                             ¦   «                              |¦  «        ¦  «         d S ©Nr  r   )	r   r   rU   r¬   r   r"   rX   r*   r+   ©re   r   r   ÚYr  s        r   Útest_adjoint_conjugater  ¹  s¢   € Ý
Œ�2�$�ÑÔ€AÝÔ" 1Ñ%Ô%€Aà
ˆQ‰€AØ
ˆQ‰€Aå
Œ�!�‰Œ€Aå�—’�q‘”˜1Ÿ5š5 ™8œ8Ñ$Ô$Ð$Ý�”—’˜‘”˜QœSŸXšX™ZœZŸ^š^¨AÑ.Ô.Ñ/Ô/Ð/Ð/Ð/r   c                  ó„   — t          j        dgg¦  «        } t          j        | ¦  «        }t	          |j        d¦  «         d S )Nr   r   )r   r   rU   r¬   r   r»   )re   r   s     r   Ú	test_ndimr  Å  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 r  )r   r   rU   r¬   r   r"   r*   r  s        r   Útest_transpose_noconjugater   Ê  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                  ó:  — 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 r/   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.rD   r   )rU   rV   r¦   Úidentityr`   r   ra   r   )r   r   rh   s      r   Útest_sparse_matmat_exceptionr$  Ö  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)%Ú__doc__Ú	functoolsr   Ú	itertoolsr   rx   Úpytestr   r`   r   Únumpy.testingr   r   Únumpyr   Úscipy.sparser¦   Úscipy.sparse.linalg._interfaceÚlinalgÚ
_interfacerU   Úscipy.sparse._sputilsr	   r   r�   rÍ   rÔ   rÜ   r,   rê   r  r  r  r  r  r   r$  r<   r   r   ú<module>r0     sâ  ððð ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à Ð Ð Ð Ø Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø (Ð (Ð (Ð (Ð (Ð (ð{9ð {9ð {9ð {9ð {9ñ {9ô {9ð {9ð|C5ð C5ð C5ð C5ð C5ñ C5ô C5ð C5ðL7ð 7ð 7ð:ð :ð :ð(ð (ð (ðð ð ð	7ð 	7ð 	7ð<ð <ð <ð:3ð 3ð 3ð
#ð 
#ð 
#ð
0ð 
0ð 
0ðð ð ð

)ð 
)ð 
)ðð ð ð ð r   