Ë
    âQ(h^R  ã                   óÌ  — 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 ejB                  jD                  d„ «       Z#d„ Z$d„ Z%ejL                  ejN                  ejP                  ejR                  fZ*ejV                  ejX                  ejZ                  fZ.ej^                  ej`                  ejb                  fZ2e.e2z   Z3e*e3z   Z4ejB                  jk                  de4«      d„ «       Z6d„ Z7d„ Z8d„ Z9d„ Z:d„ Z;d„ Z<ejB                  j{                  ed¬«      d„ «       Z>y) 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y)Ú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«      | _        y )	N©é   é   é   ©é   é   é   r   r   r   r   r   r   )ÚnpÚarrayÚAÚBÚC)Úselfs    úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/linalg/tests/test_interface.pyÚsetup_methodzTestLinearOperator.setup_method   si   € Ü—‘š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        ‰j                  t        j                  g d¢«      «      ddg«       t        ‰j                  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        ‰j                  t        j                  g d¢«      «      ddg«       t        ‰j                  t        j                  dgdgdgg«      «      dgdgg«       t        ‰j                  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        ‰j                  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  j                  ddg«      g d¢«       t        d‰z  j                  j                  ddg«      g d¢«       t        d‰z  j                  «       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  j                  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   j                  ddg«      g d¢«       t        ‰‰z   j                  j                  ddg«      g d¢«       t        ‰‰z   j                  «       j                  ddg«      g d¢«       t        ‰‰z   dgdgdggz  d
gdgg«       t        ‰‰z   j                  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  j                  |«      t        j                  d| j                   z  j                   |«      «       t        ‰dz  j                  |«      t        j                  | j                   dz  j                   |«      «       t        d‰z  j                  |«      t        j                  d| j                   z  j                   j#                  «       |«      «       t        ‰dz  j                  |«      t        j                  | j                   dz  j                   j#                  «       |«      «       t        ‰‰z   j                  |«      t        j                  | j                   | j                   z   j                   |«      «       t        ‰d‰z  z   j                  |«      t        j                  | j                   d| j                   z  z   j                   j#                  «       |«      «       t        ‰ j                  |«      t        j                  | j                    j                   |«      «       t        ‰‰z
  j                  |«      t        j                  | j                   | j                   z
  j                   |«      «       t        d‰z  j                  d|z  «      t        j                  d| j                   z  j                   j#                  «       d|z  «      «       ‰‰z   }t        t%        |j                  «      dk(  xr$ |j                  d   ‰u xr |j                  d   ‰u «       d‰z  }t        t%        |j                  «      dk(  xr% |j                  d   ‰u xr |j                  d   dk(  «       t        t'        ‰j                  g d¢«      t        j(                  «      «       t        t'        ‰j                  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'        ‰j                  t        j                  g d¢«      «      t        j(                  «      «       t        t'        ‰j                  t        j                  dgdgdgg«      «      t        j(                  «      «       t        t'        ‰j                  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'        ‰j                  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        j0                  k(  «       d}t3        t4        |¬«      5  ‰t        j                  ddg«      z   d d d «       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                   «       || j8                  «      «      D �]i  \  }}	t        j                  di |¤ŽŠt        j                  di |	¤ŽŠ| j                   j                  | j8                  «      }
t        j                  ddgddgg«      }t        ‰‰z  j                  |«      t        j                  |
j                   |«      «       t        d‰z  ‰z  j                  |«      t        j                  d|
z  j                   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  j                  dgdgg«      dgdgg«       t        ‰‰z  j                  ddg«      ddg«       t        ‰‰z  j                  j                  ddg«      ddg«       t        ‰‰z  j                  «       j                  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(  xr$ |j                  d   ‰u xr |j                  d   ‰u «       �Œl  || j<                  «      D �]º  }t        j                  di |¤Ž}t        j                  ddgddgg«      }t        |j                  |«      t        j                  | j<                  j                   |«      «       t        |dz  j                  |«      t        j                  t        j                  | j<                  | j<                  «      j                   |«      «       t        |dz  ddgz  d d!g«       t        |dz  j                  ddg«      d"dg«       t        |dz  j                  j                  ddg«      d"dg«       t        |dz  j                  «       j                  ddg«      d"dg«       t        |dz  j                  dgdgg«      d gd!gg«       t        t'        |dz  t        j>                  «      «       �Œ½ y # 1 sw Y   �ŒexY w)#Nc                 ól   ‡ — ‰ j                   ˆ fd„ˆ fd„dœ‰ j                   ˆ fd„ˆ fd„ˆ fd„ˆ fd„dœgS )	Nc                 óh   •— t        j                  ‰| «      j                  ‰j                  d   «      S ©Nr   )r   ÚdotÚreshapeÚshape©Úxr   s    €r   ú<lambda>zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>!   s$   ø€ ¬B¯F©F°1°a«L×,@Ñ,@ÀÇÁÈÁÓ,L€ r   c                 ó˜   •— t        j                  ‰j                  j                  «       | «      j	                  ‰j
                  d   «      S ©Nr   )r   r$   ÚTÚconjr%   r&   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>"   s4   ø€ ¬R¯V©V°A·C±C·H±H³JØ45ó.7ß7>±w¸q¿w¹wÀq¹zÓ7Jð r   )r&   ÚmatvecÚrmatvecc                 ó0   •— t        j                  ‰| «      S ©N©r   r$   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>'   ó   ø€ ¬B¯F©F°1°a«L€ r   c                 ó`   •— t        j                  ‰j                  j                  «       | «      S r1   ©r   r$   r,   r-   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>(   ó   ø€ ¬R¯V©V°A·C±C·H±H³JÀÓ-B€ r   c                 ó`   •— t        j                  ‰j                  j                  «       | «      S r1   r5   r'   s    €r   r)   zETestLinearOperator.test_matvec.<locals>.get_matvecs.<locals>.<lambda>)   r6   r   c                 ó0   •— 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ó$Kñð "#§¡Û"8Û#BÛ#BÛ"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¡6Ó*ó c	4ˆGÜ×(Ñ(Ñ3¨7Ñ3ˆAä�A—F‘F˜b‘LÔ!ä˜Ÿ™¤"§(¡(ª7Ó"3Ó4°r¸"°gÔ>Ü˜Ÿ™¤"§(¡(¨Q¨C°°°Q°C¨=Ó"9Ó:¸b¸TÀ2À$¸KÔHÜ˜œRŸX™X¢gÓ.Ñ.°°B°Ô8Ü˜œRŸX™X¨ s¨A¨3°¨s mÓ4Ñ4¸°t¸R¸D°kÔBÜ˜Ÿ™œrŸx™xªÓ0Ó1°B°r°7Ô;Ü˜Ÿ™œrŸx™x¨!¨¨a¨S°!°¨Ó6Ó7¸2¸$À¸t¸ÔEä˜Ÿ™¤&¨1¨#¨q¨c°1°#¨Ó"7Ó8¸B¸4ÀÀ¸+ÔFÜ˜œV a S¨!¨¨a¨S MÓ2Ñ2°b°T¸2¸$°KÔ@Ü˜Ÿ™œv¨ s¨A¨3°¨s mÓ4Ó5¸¸¸b¸T°{ÔCä˜!˜A™#šw™¨¨B¨Ô0Ü˜!˜a™%Ÿ™¨!¨Q¨Ó0²,Ô?Ü˜!˜A™#Ÿ™Ÿ™¨¨1¨Ó.²Ô=Ü˜!˜A™#Ÿ™›×/Ñ/°°1°Ó6ºÔEÜ˜!˜A™#   Q C¨¨˜}Ñ,°¨t°R°D¨kÔ:Ü˜!˜a™%Ÿ™¨!¨¨q¨c°A°3¨Ó8¸B¸4À"À¸,ÔGÜ˜!˜A™#šw™¨¨B¨Ô0Ü˜!˜A™#   Q C¨¨˜}Ñ,°¨t°R°D¨kÔ:Ü˜"˜Q™$¢™¨#¨c¨Ô3Ü˜!˜A™#šw™¨¨R¨Ô1Ü˜!˜a™%Ÿ™¨!¨Q¨Ó0²,Ô?Ü˜!˜A™#Ÿ™Ÿ™¨¨1¨Ó.²Ô=Ü˜!˜A™#Ÿ™›×/Ñ/°°1°Ó6ºÔEÜ˜!˜A™#   Q C¨¨˜}Ñ,°¨t°b°T¨lÔ;Ü˜!˜A™#Ÿ™¨ s¨A¨3°¨s mÓ4¸°t¸b¸T°lÔCÜ˜1˜"šg™¨¨3 xÔ0Ü˜1˜" ˜s A 3¨ s˜mÑ+¨r¨d°C°5¨\Ô:Ü˜!˜A™#šw™¨¨1¨Ô.Ü˜!˜a™% Q C¨!¨¨q¨c ?Ñ2°a°S¸1¸#°JÔ?ä—‘˜1˜a˜& 1 a &Ð)Ó*ˆAä˜!˜a™%Ÿ™¨Ó+¬R¯V©V°Q¸¿¹±Z·N±NÀAÓ-FÔGÜ˜!˜a™%Ÿ™¨Ó+¬R¯V©V°T·V±V¸a±Z·N±NÀAÓ-FÔGÜ˜"˜q™&×)Ñ)¨!Ó,ÜŸ™  d§f¡f¡§¡× 4Ñ 4Ó 6¸Ó:ô<ä˜!˜b™&×)Ñ)¨!Ó,ÜŸ™ §¡¨"¡§¡× 4Ñ 4Ó 6¸Ó:ô<ä˜!˜a™%Ÿ™¨Ó+ÜŸ™ §¡¨$¯&©&¡× 3Ñ 3°QÓ7ô9ä˜!˜b 1™f™*×-Ñ-¨aÓ0ÜŸ™ §¡¨"¨t¯v©v©+Ñ!5× 8Ñ 8× =Ñ =Ó ?ÀÓCôEä˜1˜"Ÿ™ a›¬"¯&©&°4·6±6°'·±¸aÓ*@ÔAÜ˜!˜a™%Ÿ™¨Ó+ÜŸ™ §¡¨$¯&©&¡× 3Ñ 3°QÓ7ô9ä˜"˜q™&×)Ñ)¨"¨q©&Ó1ÜŸ™  d§f¡f¡§¡× 4Ñ 4Ó 6¸¸Q¹Ó?ôAð �!‘ˆAÜ”C˜Ÿ™“K 1Ñ$ÒJ¨¯©°©°a¨ÒJ¸A¿F¹FÀ1¹IÈ¸NÔKØ�!‘ˆAÜ”C˜Ÿ™“K 1Ñ$ÒJ¨¯©°©°a¨ÒJ¸A¿F¹FÀ1¹IÈ¹NÔKä”J˜qŸx™xª	Ó2´B·J±JÓ?Ô@Ü”J˜qŸx™x¬¯©°1°#°q°c¸1¸#°Ó(?Ó@Ä"Ç*Á*ÓMÔNÜ”J˜q¤2§8¡8ªGÓ#4Ñ4´b·j±jÓAÔBÜ”J˜q¤2§8¡8¨a¨S°!°°a°S¨MÓ#:Ñ:¼B¿J¹JÓGÔHÜ”J˜qŸu™u¤R§X¡XªgÓ%6Ó7¼¿¹ÓDÔEÜ”J˜qŸu™u¤R§X¡X°¨s°A°3¸°s¨mÓ%<Ó=¼r¿z¹zÓJÔKä”J˜qŸx™x¬°°°Q°C¸¸¨}Ó(=Ó>ÄÇ
Á
ÓKÔLÜ”J˜q¤6¨A¨3°¨s°A°3¨-Ó#8Ñ8¼"¿*¹*ÓEÔFÜ”J˜qŸu™u¤V¨a¨S°!°°a°S¨MÓ%:Ó;¼R¿Z¹ZÓHÔIä”J˜q ™s¤I×$CÑ$CÓDÔEÜ”J˜r !™t¤Y×%DÑ%DÓEÔFÜ”J˜q ™s¤I×$@Ñ$@ÓAÔBÜ”J ˜r¤9×#BÑ#BÓCÔDÜ”J˜q ™s¤I×$@Ñ$@ÓAÔBÜ”J˜q ™s¤I×$CÑ$CÓDÔEÜ”J˜q ™t¤Y×%DÑ%DÓEÔFÜ�a˜!‘e˜q‘[×&Ñ& qÑ)¨QÐ.Ô/ð œŸ™¢)Ó,Ñ,ˆFØ�A‘ˆAØ�A‘ˆAÜ˜œRŸX™X¢iÓ0Ñ0°&Ô9ä�R˜‘T—L‘L¤B§M¡MÑ1Ô2ð CˆCÜœz°Ô5ñ %Ø”B—H‘H˜a ˜VÓ$Ò$÷%ô œ* a§h¡h´·±¸!¸A¸³Ô@Üœ* a§h¡h´·±ºÓ0CÔDÜœ* a§h¡h´·±¸1¸#¸q¸c¸Ó0CÔDÜœ* a§h¡h´·±¸1¸#¸q¸cÀ1À#ÀqÀcÐ9JÓ0KÔLäœ*£kÔ2Üœ*£lÖ3ðGc	4ôJ #*©+°d·f±fÓ*=Ù*5°d·f±fÓ*=ó#?ó 	LÑˆH�hä×(Ñ(Ñ4¨8Ñ4ˆAÜ×(Ñ(Ñ4¨8Ñ4ˆAà—f‘f—j‘j §¡Ó(ˆGÜ—‘˜1˜a˜& 1 a &Ð)Ó*ˆAä˜!˜a™%Ÿ™¨Ó+¬R¯V©V°W·K±KÀÓ-CÔDÜ˜"˜q™& 1™*×-Ñ-¨aÓ0ÜŸ™  g¡× 0Ñ 0× 5Ñ 5Ó 7¸Ó;ô=ô ˜!˜A™#  !˜u™ r¨# hÔ/Ü˜!˜A™#   Q C˜y™¨B¨4°°¨,Ô7Ü˜!˜A™#Ÿ™¨ s¨A¨3 iÓ0°B°4¸¸°,Ô?ä˜!˜a™%Ÿ™¨!¨Q¨Ó0°2°r°(Ô;Ü˜!˜a™%Ÿ™×)Ñ)¨1¨a¨&Ó1°B¸°8Ô<Ü˜!˜a™%Ÿ™Ó*×1Ñ1°1°a°&Ó9¸BÀ¸8ÔDä”J˜q ™s¤I×$DÑ$DÓEÔFäœ*¤kÔ2Üœ*£lÔ3à�!‘ˆAÜ”C˜Ÿ™“K 1Ñ$ÒJ¨¯©°©°a¨ÒJ¸A¿F¹FÀ1¹IÈ¸NÖKð5	Lñ8 $ D§F¡FÓ+ó 	FˆHÜ×(Ñ(Ñ4¨8Ñ4ˆAÜ—‘˜1˜a˜& 1 a &Ð)Ó*ˆAä˜Ÿ™ 1›¤r§v¡v¨t¯v©v¯j©j¸!Ó'<Ô=Ü˜!˜Q™$Ÿ™¨Ó*ÜŸ™¤§¡¨¯©°·±Ó!7× :Ñ :¸AÓ>ô@ô ˜!˜Q™$  1 ™¨¨2 wÔ/Ü˜!˜Q™$Ÿ™¨¨A¨Ó/°"°b°Ô:Ü˜!˜Q™$Ÿ™Ÿ™¨!¨Q¨Ó0°2°r°(Ô;Ü˜!˜Q™$Ÿ™Ó)×0Ñ0°!°Q°Ó8¸2¸r¸(ÔCÜ˜!˜Q™$Ÿ™¨¨¨Q¨C yÓ1°R°D¸"¸°;Ô?ä”J˜q !™t¤Y×%CÑ%CÓDÖEñ	F÷O%ñ %ús   ïAEÁEAE	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                  ||j                  d
d«      «      ||j                  d
d«      z  «       t        t        j                  ||«      ||z  «       t        t        j                  ||j                  «      ||j                  z  «       t        t        j                  ||j                  «       «      ||j                  «       z  «       t        t        j                  |j                  dd
«      |j                  «      |j                  dd
«      |j                  z  «       t        t        j                  |j                  dd
«      |j                  «       «      |j                  dd
«      |j                  «       z  «       t        t        j                  ||j                  «      ||j                  z  «       t        t        j                  ||j                  «       «      ||j                  «       z  «       t        t        t        j                  |d«       t        t        t        j                  d|«       y )Nc                 ó�   •— t        j                  ‰j                  | «      j                  ‰j                  j                  d   «      S r#   )r   r$   r   r%   r&   ©r(   r   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>À   s-   ø€ ¤§¡¨¯©°Ó!2×!:Ñ!:¸4¿6¹6¿<¹<È¹?Ó!K€ r   c                 óÀ   •— t        j                  ‰j                  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±F·L±LÀ±OÓ,Dð r   c                 ót   •— t        j                  ‰j                  j                  j	                  «       | «      S r1   )r   r$   r   r,   r-   rs   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>Ã   s    ø€ ¤"§&¡&¨¯©¯©¯©«¸!Ó"<€ r   c                 óD   •— t        j                  ‰j                  | «      S r1   )r   r$   r   rs   s    €r   r)   z0TestLinearOperator.test_matmul.<locals>.<lambda>Ä   s   ø€ ¤§¡¨¯©°Ó!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‘f—l‘lÛKóEã<Û2ñ4ˆô ×$Ñ$Ñ) qÑ)ˆÜ�H‰H’nÚÚð!ó "ˆð ˆa‰Dˆä”X—_‘_ Q¨Ó*¨A°©EÔ2Ü”X—_‘_ Q¨¯	©	°"°aÓ(8Ó9¸1¸q¿y¹yÈÈQÓ?OÑ;OÔPÜ”X—_‘_ Q¨Ó*¨A°©EÔ2Ü”X—_‘_ Q¨¯©Ó,¨a°!·#±#©gÔ6Ü”X—_‘_ Q¨¯	©	«Ó4°a¸!¿)¹)»+±oÔFÜ”X—_‘_ Q§Y¡Y¨q°"Ó%5°q·s±sÓ;¸Q¿Y¹YÀqÈ"Ó=MÐPQ×PSÑPSÑ=SÔTÜ”X—_‘_ Q§Y¡Y¨q°"Ó%5°q·y±y³{ÓCØ—Y‘Y˜q "Ó%¨¯	©	«Ñ3ô	5ä”X—_‘_ Q¨¯©Ó,¨a°!·#±#©gÔ6Ü”X—_‘_ Q¨¯	©	«Ó4°a¸!¿)¹)»+±oÔFÜ”j¤(§/¡/°1°aÔ8Ü”j¤(§/¡/°1°aÕ8r   N)Ú__name__Ú
__module__Ú__qualname__r   rp   r   r>   r   r   r   r      s   „ ò#ò_FóB9r   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)Ú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                    ||j                  t        j
                  «      D ��cg c]0  \  }}t        j                  |«      j                  |j                  f‘Œ2 c}}z  c_         | xj                    ||j                  t        j
                  «      D ��cg c]>  \  }}t        j                  |«      j                  |j                  j                  «       f‘Œ@ c}}z  c_         | xj                    ||j                  t        j
                  «      D ��cg c]B  \  }}t        j                  |«      j                  «       |j                  j                  «       f‘ŒD c}}z  c_         t        j                  g d¢g d¢g«      }| xj                    ||t        j                  «      z  c_         | xj                    ||j                  t        j                  «      D ��cg c]0  \  }}t        j                  |«      j                  |j                  f‘Œ2 c}}z  c_         | xj                    ||j                  t        j                  «      D ��cg c]>  \  }}t        j                  |«      j                  |j                  j                  «       f‘Œ@ c}}z  c_         | xj                    ||j                  t        j                  «      D ��cg c]B  \  }}t        j                  |«      j                  «       |j                  j                  «       f‘ŒD c}}z  c_         y c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w )Nc                 ó  ‡ ‡‡— g }|j                  t        ‰ |¬«      ‰ f«       |j                  t        j                  ‰ |¬«      ‰ f«       |j                  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|«      }|j                   ||«      ‰ f«       |j                   ||«      ‰ f«       |j                   ||«      ‰ f«       |S )N©ra   c                 ó~   •— ‰j                  | «      }t        | j                  «      dk(  r|j                  dd«      }|S )Nr   rz   r   )r$   r\   r&   r%   )r(   ra   ÚyÚoriginals      €r   ÚmvzATestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.mvæ   s5   ø€ Ø—L‘L “O�Ü�q—w‘w“< 1Ò$ØŸ	™	 " aÓ(�AØ�r   c                 óV   •— ‰j                   j                  «       j                  | «      S r1   ©r,   r-   r$   )r(   ra   rŠ   s     €r   ÚrmvzBTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.rmvì   s   ø€ Ø—z‘z—‘Ó(×,Ñ,¨QÓ/Ð/r   c                   ó&   •— e Zd ZdZˆfd„Zˆ fd„Zy)úJTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatliker>   c                 ó\   •— t        j                  |«      | _        ‰j                  | _        y r1   )r   ra   r&   )r   ra   rŠ   s     €r   Ú__init__zSTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike.__init__ò   s   ø€ Ü!#§¡¨%£�D”JØ!)§¡�D•Jr   c                 ó*   •—  ‰|| j                   «      S r1   r‡   )r   r(   r‹   s     €r   Ú_matveczRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.BaseMatlike._matvecö   s   ø€ Ù˜a §¡Ó,Ð,r   N)r€   r�   r‚   rY   r’   r”   )r‹   rŠ   s   €€r   ÚBaseMatliker�   ï   s   ø„ Ø�ô0õ-r   r•   c                   ó   •— e Zd ZdZˆ fd„Zy)ú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   ø€ Ù˜q $§*¡*Ó-Ð-r   N)r€   r�   r‚   rY   r™   )rŽ   s   €r   Ú
HasRmatvecr—   ù   s   ø„ Ø�õ.r   rš   c                   ó   •— e Zd ZdZˆ ˆfd„Zy)ú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  sa   ø€ Ø ŸJ™J q™M¨4¯:©:°a©=Ð8�EÜ$ S°·
±
Ô;�FÜ% b°·
±
Ô;�GÜ$×3Ñ3¸6Ø<CØ:>¿*¹*Ø:?ôAð Ar   N)r€   r�   r‚   rY   rž   )r‹   rŽ   s   €€r   Ú
HasAdjointrœ   ÿ   s   ø„ Ø�öAr   rŸ   c                   ó"   •— e Zd Zˆ fd„Zˆ fd„Zy)úITestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmatc                 ó&   •— ‰j                  |«      S r1   )r$   ©r   r(   rŠ   s     €r   Ú_matmatzQTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmat._matmat  s   ø€ Ø#Ÿ<™<¨›?Ð*r   c                 óV   •— ‰j                   j                  «       j                  |«      S r1   r�   r£   s     €r   Ú_rmatmatzRTestAsLinearOperator.setup_method.<locals>.make_cases.<locals>.HasRmatmat._rmatmat  s   ø€ Ø#Ÿ:™:Ÿ?™?Ó,×0Ñ0°Ó3Ð3r   N)r€   r�   r‚   r¤   r¦   )rŠ   s   €r   Ú
HasRmatmatr¡     s   ø„ ô+õ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¸ÐBÔCØ�L‰Lœ"Ÿ(™( 8°5Ô9¸8ÐDÔEØ�L‰Lœ&×*Ñ*¨8¸5ÔAÀ8ÐLÔMôô0÷-œi×6Ñ6ô -ö.˜[ô .÷
A˜[ô 
Aö4˜Zô 4ð �L‰L™* UÓ+¨XÐ6Ô7Ø�L‰L™* UÓ+¨XÐ6Ô7Ø�L‰L™* UÓ+¨XÐ6Ô7ØˆLr   r   r   ©r   rE   ù              @)y              @y              @r   )r«   r   r   Úint32Úfloat32Úfloat64r,   rW   ÚaslinearoperatorrZ   r-   r[   rb   )r   r¬   rŠ   ÚMr   s        r   r   z!TestAsLinearOperator.setup_methodÚ   s×  € ØˆŒ
ò8	ôt —8‘8šW¢gÐ.Ó/ˆØ�
Š
‘j ¬2¯8©8Ó4Ñ4�
Ø�
Š
‘j ¬2¯:©:Ó6Ñ6�
Ø�
Š
‘j ¬2¯:©:Ó6Ñ6�
Ø�
Š
Ù#-¨h¯j©j¼"¿*¹*Ó#E÷GÙ˜1˜aô "×2Ñ2°1Ó5×7Ñ7¸¿¹Ò=ó Gñ 	G�
à�
Š
Ù#-¨h¯j©j¼"¿*¹*Ó#E÷GÙ˜1˜aô "×2Ñ2°1Ó5×7Ñ7¸¿¹¿¹»ÒDó Gñ 	G�
à�
Š
Ù#-¨h¯j©j¼"¿*¹*Ó#E÷GÙ˜1˜aô "×2Ñ2°1Ó5×=Ñ=Ó?ÀÇÁÇÁÃÒLó Gñ 	G�
ô —8‘8š[ª+Ð6Ó7ˆØ�
Š
‘j ¬2¯=©=Ó9Ñ9�
Ø�
Š
Ù#-¨h¯j©j¼"¿-¹-Ó#H÷JÙ˜1˜aô "×2Ñ2°1Ó5×7Ñ7¸¿¹Ò=ó Jñ 	J�
à�
Š
Ù#-¨h¯j©j¼"¿-¹-Ó#H÷JÙ˜1˜aô "×2Ñ2°1Ó5×7Ñ7¸¿¹¿¹»ÒDó Jñ 	J�
à�
Š
Ù#-¨h¯j©j¼"¿-¹-Ó#H÷JÙ˜1˜aô "×2Ñ2°1Ó5×=Ñ=Ó?ÀÇÁÇÁÃÒLó Jñ 	JŽ
ùóGùóGùóGùó
JùóJùóJs(   Ã5O

ÅAO
ÇAO
Ê	5O
Ë9AO"
Í7AO(
c                 óæ  — | j                   D �]a  \  }}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(  rh|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 ]J  }t        |j                  |«      |j                  |«      «       t        ||z  |j                  |«      «       ŒL t        |j                  |«      |j                  |«      «       t        ||z  |j                  |«      «       |D �]  }	t        |j                  |	«      |j                  j                  «       j                  |	«      «       t        |j                  j                  |	«      |j                  j                  |	«      «       t        |j                  j                  |	«      |j                  j                  «       j                  |	«      «       t        |j!                  «       j                  |	«      |j                  j                  «       j                  |	«      «       �Œ" |D �]/  }	|	j"                  dk  rŒt        |j%                  |	«      |j                  j                  «       j                  |	«      «       t        |j                  j                  |	«      |j                  j                  |	«      «       t        |j                  j                  |	«      |j                  j                  «       j                  |	«      «       t        |j!                  «       j                  |	«      |j                  j                  «       j                  |	«      «       �Œ2 t'        |d«      r t        |j                  |j                  «       t)        t'        |d«      «       �Œd y )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Ó%Ü—(‘(˜Q˜C !  q c˜?Ó+ð-ˆBä—(‘(˜A˜q˜6Ó"¤B§H¡H¨q¨c°A°3¨ZÓ$8Ð9ˆBà�w‰wœ"Ÿ-™-Ò'Ø”r—x‘x¢Ó,Ü—x‘x !  r d¨R¨DÐ 1Ó2ð4ñ 4�à”r—x‘x  B Ó(¬"¯(©(°Q°C¸"¸°;Ó*?Ð@Ñ@�ä—‘˜A˜q˜6 A q 6¨A¨q¨6Ð2Ó3ˆBàò 4�Ü˜QŸX™X a›[¨'¯+©+°a«.Ô9Ü˜Q ™U G§K¡K°£NÕ3ð4ô ˜Ÿ™ "› w§{¡{°2£Ô7Ü˜˜R™ §¡¨R£Ô1àó M�Ü˜QŸY™Y q›\¨7¯9©9¯>©>Ó+;×+?Ñ+?ÀÓ+BÔCÜ˜QŸS™SŸZ™Z¨›]¨G¯I©I¯M©M¸!Ó,<Ô=Ü˜QŸS™SŸZ™Z¨›]¨G¯I©I¯N©NÓ,<×,@Ñ,@ÀÓ,CÔDÜ˜QŸY™Y›[×/Ñ/°Ó2°G·I±I·N±NÓ4D×4HÑ4HÈÓ4KÖLð	Mð ó M�Ø—6‘6˜A’:ØÜ˜QŸY™Y q›\¨7¯9©9¯>©>Ó+;×+?Ñ+?ÀÓ+BÔCÜ˜QŸS™SŸZ™Z¨›]¨G¯I©I¯M©M¸!Ó,<Ô=Ü˜QŸS™SŸZ™Z¨›]¨G¯I©I¯N©NÓ,<×,@Ñ,@ÀÓ,CÔDÜ˜QŸY™Y›[×/Ñ/°Ó2°G·I±I·N±NÓ4D×4HÑ4HÈÓ4KÖLðMô �q˜Ô!Ü˜QŸW™W a§g¡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        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       Œù y )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‰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ˆBä˜Ÿ™˜r› G§K¡K°£OÔ4Ü˜Ÿ™˜r› G§K¡K°£OÔ4Ü˜Ÿ™˜r› G§K¡K°£OÕ4ñ
	5r   N)r€   r�   r‚   r   r¼   rÀ   r>   r   r   r„   r„   Ù   s   „ òOJòb)(óV5r   r„   c                  óf   — t        j                  dd„ ¬«      } t        | «      }t        d|v|«       y )N)r   r   c                  ó   — y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ÔB€AÜ�!‹W€FÜÐ vÐ-¨vÕ6r   c                  óL  — t        j                  d«      } t        | g d¢z  g d¢«       t        | j                  t	        j
                  d«      j                  dd«      «      j                  «       t	        j
                  d«      «       t        t        | j                  g d¢«       y )N©r   r   r   ry   r   rH   )rW   ÚIdentityOperatorr   r$   r   Úaranger%   Úravelrc   rd   r.   )Úidents    r   Útest_identityrÎ   k  sj   € Ü×&Ñ& vÓ.€EÜ�šÑ"¢IÔ.Ü�—‘œ2Ÿ9™9 Q›<×/Ñ/°°1Ó5Ó6×<Ñ<Ó>ÄÇ	Á	È!ÃÔMä”*˜eŸl™lªLÕ9r   c            
      ó˜  — t        j                  t        j                  d«      j	                  dd«      «      } d„ }t        j
                  d|¬«      }| || |z  | |z  | j                  | j                  «       | | z   ||z   | dz  g	}|D ]A  }t        t        |d«      «       t        t        |d«      «       t        t        |d«      «       ŒC y )	Né   r   c                 ó¨   — t        j                  | «      } t        | j                  dk(  xs | 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‰J�q‹MˆÜ�—‘˜4‘Ò4 1§7¡7¨fÑ#4Ô5Ü�w‰w�q‹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¡9¨R£=×#8Ñ#8¸¸AÓ#>Ó?€Aòô
 	× Ñ  vÐ6FÔG€Aàˆa��Q‘˜˜A™˜qŸs™s A§I¡I£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‰8�A‹;Ðr   c            	      ó$  — dd l } t        | j                  dz   «      D ]q  }t        j                  dt
        «      }| j                  ||¬«      }| j                  |«      }|j                  D ]"  }t        t        ||«      t        ||«      «       Œ$ Œs y )Nr   r   rÉ   )Úprotocol)ÚpickleÚrangeÚHIGHEST_PROTOCOLrW   rX   r.   ÚdumpsÚloadsÚ__dict__r   Úgetattr)rÜ   rÛ   r   Úsr   Úks         r   Útest_picklerå   ‡  s~   € Ûä˜&×1Ñ1°AÑ5Ó6ò 7ˆÜ×$Ñ$ V¬VÓ4ˆØ�L‰L˜ XˆLÓ.ˆØ�L‰L˜‹Oˆà—‘ò 	7ˆAÜœ  A›¬°°1«Õ6ñ	7ñ7r   c                  ó^  —  G d„ dt         j                  «      } t        t        d¬«      5  t	        t
        | «       d d d «        G d„ dt         j                  «      } |d«      }t        |j                  g d¢«      g d¢«       t	        t        |j                  g d	¢«        G d
„ dt         j                  «      } |t        j                  j                  dd«      «      }t        |j                  t        j                  j                  d«      «      j                  d«       y # 1 sw Y   ŒèxY w)Nc                   ó   — e Zd Zy)ú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                 ó,   •— t         ‰| �  d ||f¬«       y )N)ra   r&   )Úsuperr’   )r   ÚnÚ	__class__s     €r   r’   z+test_inheritance.<locals>.Identity.__init__œ  s   ø€ Ü‰GÑ 4°°1¨vÐÕ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ë   ›  s   ø„ ô	7ö	r   rô   r   r   r   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ú$test_inheritance.<locals>.MatmatOnlyc                 ó\   •— t         ‰| �  |j                  |j                  «       || _        y r1   ©rí   r’   ra   r&   r   ©r   r   rï   s     €r   r’   z-test_inheritance.<locals>.MatmatOnly.__init__§  ó!   ø€ Ü‰GÑ˜QŸW™W a§g¡gÔ.ØˆD�Fr   c                 ó8   — | j                   j                  |«      S r1   )r   r$   rñ   s     r   r¤   z,test_inheritance.<locals>.MatmatOnly._matmat«  s   € Ø—6‘6—:‘:˜a“=Ð r   )r€   r�   r‚   r’   r¤   rò   ró   s   @r   Ú
MatmatOnlyrö   ¦  s   ø„ ô	ö	!r   rü   r   )r   )rW   rX   r   ÚRuntimeWarningrc   Ú	TypeErrorr   r.   ÚNotImplementedErrorr/   r   ÚrandomÚrandnr&   )ré   rô   Úid3rü   Úmms        r   Útest_inheritancer  “  sÔ   € ô”	×(Ñ(ô ô 
Œ~Ð%@Ô	Añ (Ü”i Ô'÷(ô”9×+Ñ+ô ñ �1‹+€CÜ�—‘šIÓ&ª	Ô2ÜÔ% s§{¡{²IÔ>ô!”Y×-Ñ-ô !ñ 
”B—I‘I—O‘O A qÓ)Ó	*€BÜ�—‘œ2Ÿ9™9Ÿ?™?¨1Ó-Ó.×4Ñ4°dÕ;÷/(ð (ús   «D#Ä#D,c                  óÄ  — t         j                  j                  dd«      dt         j                  j                  dd«      z  z   } t         j                  j                  dd«      }t        j                  | «      }t        j                  |«      }||z   }||z   }t        |j                  t         j                  «       t        |j                  t         j                  «       y )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©Y¯^©^¸A¸aÓ-@Ñ(@Ñ@€KÜ�y‰y�~‰~˜a Ó"€Hä ×1Ñ1°+Ó>ÐÜ×.Ñ.¨xÓ8€Mà"Ð%5Ñ5€KØ˜}Ñ,€Hä�—‘¤§¡Ô,Ü�×"Ñ"¤B§M¡MÕ2r   c                  ób   ‡— dgŠˆfd„} t        j                  d| ¬«       t        ‰d   d«       y )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  À  s/   ø€ Ø�€Jôô ×Ñ˜V¨FÕ3Ü�˜A‘ Õ"r   Ú
test_dtypec                 ó´   ‡— t        j                  d| ¬«      Šˆfd„}t        j                  d|¬«      }|j                  t        j                  | «      k(  sJ ‚y )Nr   r‡   c                 óD   •— 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‰x˜ ! A¡$™¨¨!©Ð-Ó.Ð.r   r  r  )r   r   rW   rX   ra   )r  r‹   Úlor  s      @r   Ú#test_determine_lo_dtype_from_matvecr  Ó  sI   ø€ ô �X‰X�a˜zÔ*€Fô/ô 
×	!Ñ	! &°Ô	4€BØ�8‰8”r—x‘x 
Ó+Ò+Ð+Ñ+r   c                  ó`   — d„ } t        j                  d| ¬«      }|j                  t        v sJ ‚y )Nc                 óB   — 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‰x˜˜q ™t™ Q q¡TÐ*Ó+Ð+r   r  r  )rW   rX   ra   Ú
INT_DTYPES)r‹   r  s     r   Útest_determine_lo_dtype_for_intr"  Ý  s-   € ò,ô 
×	!Ñ	! &°Ô	4€BØ�8‰8”zÑ!Ð!Ñ!r   c                  ó(  — t        j                  dgg«      } t        j                  | «      }d|z  }d| z  }t        j                  dg«      }t	        |j                  |«      |j                  |«      «       t	        |j                  j                  |«      |j                  j                  «       j                  |«      «       t	        |j                  «       j                  |«      |j                  j                  «       j                  |«      «       y ©Nr  r   )
r   r   rW   r²   r   r$   rZ   r,   r-   r[   ©rh   r   r   ÚYr  s        r   Útest_adjoint_conjugater'  æ  s´   € Ü
�‰�2�$�Ó€AÜ×"Ñ" 1Ó%€Aà
ˆQ‰€AØ
ˆQ‰€Aä
�‰�!�‹€Aä�—‘�q“˜1Ÿ5™5 ›8Ô$Ü�—‘—‘˜“˜QŸS™SŸX™X›ZŸ^™^¨AÓ.Ô/Ü�—‘“—‘ Ó# Q§S¡S§X¡X£Z§^¡^°AÓ%6Õ7r   c                  óˆ   — t        j                  dgg«      } t        j                  | «      }t	        |j
                  d«       y )Nr   r   )r   r   rW   r²   r   rµ   )rh   r   s     r   Ú	test_ndimr)  ó  s1   € Ü
�‰�1�#�‹€AÜ×"Ñ" 1Ó%€AÜ�—‘˜Õr   c                  ól  — t        j                  dgg«      } t        j                  | «      }d|z  }d| z  }t        j                  dg«      }t	        |j                  |«      |j                  |«      «       t	        |j                  j                  |«      |j                  j                  |«      «       y r$  )r   r   rW   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Ô$Ü�—‘—‘˜“˜QŸS™SŸW™W Q›ZÕ(r   c                  ój  —  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«      }|j	                  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  «       y )Nc                   ó*   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zˆ xZS )ú/test_transpose_multiplication.<locals>.MyMatrixc                 ó\   •— t         ‰| �  |j                  |j                  «       || _        y 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                 ó4   — | j                   j                  |z  S r1   )r   r,   r1  s     r   r¦   z8test_transpose_multiplication.<locals>.MyMatrix._rmatmat
  s   € ¨$¯&©&¯(©(°UÑ*:Ð#:r   )r€   r�   r‚   r’   r¤   r¦   rò   ró   s   @r   ÚMyMatrixr.    s   ø„ ô	ò 	8Þ:r   r4  r   r   r   r   rC   é   rB   é(   rz   )rW   rX   r   r   r%   r   r,   )r4  r   rh   r   ÚX2r&  s         r   Útest_transpose_multiplicationr8    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™4 !™8Ô$Ü�—‘�r‘˜1Ÿ3™3 ™8Õ$r   c                  óþ  — t        j                  dd„ ¬«      } t        j                  d«      }d}t	        t
        |¬«      5  | |z   d d d «       t	        t
        |¬«      5  || z   d d d «       t	        t        «      5  | t        j                  d«      z   d d d «       t	        t        «      5  t        j                  d«      | z   d d d «       y # 1 sw Y   Œ‰xY w# 1 sw Y   ŒvxY w# 1 sw Y   ŒRxY w# 1 sw Y   y xY w)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_exceptionr=    sÔ   € Ü× Ñ  ±Ô<€AÜ×Ñ˜Ó€AØ
E€CÜ	”y¨Ô	,ñ Ø	ˆAŠ÷ä	”y¨Ô	,ñ Ø	ˆAŠ÷ä	”zÓ	"ñ Ø	ŒB�K‰K˜‹NÒ÷ä	”zÓ	"ñ Ü
�‰�A‹˜Ò÷ð ÷ð ú÷ð ú÷ð ú÷ð ús0   ÁCÁ CÁ=C'Â-C3ÃCÃC$Ã'C0Ã3C<zTest not meaningful on PyPy)Úreasonc                  ó®   — t        j                  d«      } t        t        j                  | «      5 }|j                  «        ~d d d «       y # 1 sw Y   y xY wrL   )r   Úeyer
   rW   ÚMatrixLinearOperatorr[   )r   rÖ   s     r   Ú"test_MatrixLinearOperator_refcyclerB  *  sD   € ô 	�‰ˆq‹	€AÜ	œI×:Ñ:¸AÓ	>ð À"Ø
�
‰
ŒØ÷÷ ñ ús   °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å   ÚmarkÚthread_unsafer  r  r  Úint8Úint16r¯   Úint64r!  r°   r±   Ú
longdoubleÚREAL_DTYPESÚ	complex64rb   ÚclongdoubleÚCOMPLEX_DTYPESÚINEXACTDTYPESÚ	ALLDTYPESÚparametrizer  r"  r'  r)  r+  r8  r=  ÚskipifrB  r>   r   r   ú<module>r]     s\  ðñõ Ý Û Û ß 1ß /ã Ý ç 2Ó 2Ý (ß ;÷C9ñ C9÷LI5ñ I5òX7ò:ò(ò ò	7ð ‡�×Ññ<ó ð<ò:3ò
#ð �g‰g�r—x‘x §¡¨2¯8©8Ð4€
Ø�z‰z˜2Ÿ:™: r§}¡}Ð5€Ø—,‘, §¡¨r¯~©~Ð>€Ø˜nÑ,€Ø˜Ñ&€	ð ‡�×Ñ˜ yÓ1ñ,ó 2ð,ò"ò8òò

)ò%ò0ð ‡�×Ñ�GÐ$AÐÓBñó Cñr   