Ë
    7^(hS8  ã                   ó  — d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZmZmZ d dlmZmZ d dlmZ d„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)ed„ «       Z*y)é    )Ú
expand_mul)ÚIÚRational)ÚS)ÚSymbol)Úsqrt)ÚAbs)Úsimplify)ÚNonSquareMatrixError)ÚMatrixÚzerosÚeyeÚSparseMatrix)ÚxÚyÚz)ÚraisesÚslow)Úallclosec                  ó  ‡— t        g d¢g d¢g d¢g d¢g«      } | j                  «       \  }}}|j                  sJ ‚|j                  sJ ‚||z  j	                  |d«      | z
  t        d«      k(  sJ ‚t        g d¢g d¢g d	¢g d
¢g«      } | j                  «       \  }}}|j                  sJ ‚|j                  sJ ‚||z  j	                  |d«      | z
  t        d«      k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      } | j                  d¬«      \  }}}|j                  sJ ‚|j                  sJ ‚||z  j	                  |d«      | z
  t        dd«      k(  sJ ‚t        g d¢g d¢g d¢g«      } | j                  d¬«      \  }}}|j                  sJ ‚|j                  sJ ‚||z  j	                  |d«      | z
  t        d«      k(  sJ ‚t        dt        dfdt        dft        dt        ff«      Š‰j                  «       \  }}}|j                  sJ ‚|j                  sJ ‚||z  j	                  |d«      ‰z
  t        d«      k(  sJ ‚t        d«      }|j                  du sJ ‚|j                  du sJ ‚t        d«      }|j                  du sJ ‚|j                  du sJ ‚t        g d¢g d¢g d¢g«      Š‰j                  «       \  }}}}|‰z  ||j                  «       z  |z  k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      Š‰j                  «       \  }}}}|‰z  ||j                  «       z  |z  k(  sJ ‚t        g d ¢g d!¢g d"¢g«      Š‰j                  «       \  }}}}|‰z  ||j                  «       z  |z  k(  sJ ‚t        g d¢g d¢g d¢g«      Št        t        ˆfd#„«       y )$N)r   é   é   é   )r   r   é   é   )é   r   r   r   )éþÿÿÿé   r   r   Úbackwardr   )r   r   r   r   )r   r   r   r   )é   r   r   r   )i÷ÿÿÿr   r   r   ©r    r   r   ©r   r   r   ©r   r   é	   )é
   é   é   F©Ú	rankcheckr   )r   r   r   r    r   r   )©r    r   r   ©r   r   r   T)r!   )r   r   r   )r    r   r   )r   r   r   )r   r   r   ©r    r   r   r   )r   éÿÿÿÿr   r   )r   r    r   r   )r   r-   r   r   )r   r   r    r+   )r   r    r   c                  ó(   •— ‰ j                  d¬«      S )NTr(   )ÚLUdecomposition_Simple)ÚMs   €úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_decompositions.pyú<lambda>ztest_LUdecomp.<locals>.<lambda>b   s   ø€  × 8Ñ 8À4Ð 8Ó H€ ó    )r   ÚLUdecompositionÚis_lowerÚis_upperÚpermute_rowsr   r   r   r   ÚLUdecompositionFFÚinvr   Ú
ValueError)	ÚtestmatÚLÚUÚpÚmLÚmUÚPÚDeer0   s	           @r1   Útest_LUdecomprC      sÊ  ø€ Ü’lÚ"Ú"Ú#ð%ó &€Gð ×%Ñ%Ó'�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¼%À»(ÒBÐBÐBä’mÚ"Ú#Ú#ð%ó &€Gð ×%Ñ%Ó'�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¼%À»(ÒBÐBÐBô ’iÚÚÚ"ð$ó %€Gð ×%Ñ%°Ð%Ó6�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¼%ÀÀ1»+ÒEÐEÐEô ’iÚÚð!ó "€Gð ×%Ñ%°Ð%Ó6�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨wÑ6¼%À»(ÒBÐBÐBä�”A�q�	˜Aœq !˜9¤q¨!¬Q iÐ0Ó1€AØ×ÑÓ!�G€A€qˆ!Ø�:Š:Ðˆ:Ø�:Š:Ðˆ:Øˆa‰C×Ñ˜a Ó,¨qÑ0´E¸!³HÒ<Ð<Ð<ä	ð ó 
€Bð �;‰;˜$ÑÐÐØ�;‰;˜%ÑÐÐÜ	ð ó 
€Bð �;‰;˜%ÑÐÐØ�;‰;˜$ÑÐÐô 	’	ÚÚðó 	€Að ×&Ñ&Ó(�L€A€qˆ#ˆqØˆQ‰3�!�C—G‘G“I‘+˜a‘-ÒÐÐä’ÚÚÚð ó 	!€Að ×&Ñ&Ó(�L€A€qˆ#ˆqØˆQ‰3�!�C—G‘G“I‘+˜a‘-ÒÐÐä’	ÚÚðó 	€Að ×&Ñ&Ó(�L€A€qˆ#ˆqØˆQ‰3�!�C—G‘G“I‘+˜a‘-ÒÐÐô 	Ú	ÚÚð	ó	€Aô
 Œ:ÓHÕIr3   c                  óÊ  — t        ddgddgg«      } | j                  «       \  }}}||z  |j                  z  | k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚t        ddgg«      }|j                  «       \  }}}||z  |j                  z  |k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      }|j                  «       \  }}}||z  |j                  z  |k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚|j                  |z  t        |j                  «      k(  sJ ‚t        t        dd«      t        d«      gdt        dd	«      gg«      }|j                  «       \  }}}t        |j                  |z  «      t        |j                  «      k(  sJ ‚t        |j                  |z  «      t        |j                  «      k(  sJ ‚t        ||z  |j                  z  «      |k(  sJ ‚y )
Nr    r   )r    r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   Úsingular_value_decompositionÚTr   Úcolsr   r   r
   )ÚAr=   r   ÚVÚBÚCÚDs          r1   Ú"test_singular_value_decompositionDrM   d   s&  € Ü��A�˜˜A˜ÐÓ €AØ×,Ñ,Ó.�G€A€qˆ!Øˆq‰5�1—3‘3‰;˜!ÒÐÐØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!ä��A�ˆxÓ€AØ×,Ñ,Ó.�G€A€qˆ!àˆq‰5�1—3‘3‰;˜!ÒÐÐØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!äÚÚÚÚð	ó 	€Að ×,Ñ,Ó.�G€A€qˆ!àˆq‰5�1—3‘3‰;˜!ÒÐÐØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!ä”˜!˜Q“¤ a£Ð)¨A¬x¸¸1«~Ð+>Ð?Ó@€AØ×,Ñ,Ó.�G€A€qˆ!Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A˜‘E˜AŸC™C‘KÓ  AÒ%Ð%Ñ%r3   c                  ó.  — t        ddgddgg«      } | j                  «       \  }}t        }|t        d |dd«      z   |d«      dz   |d«      dz   |dd«      z  z  gdd |dd«      z  z   |d«       dz   |d«      dz   |dd«      z  z  gg«      k(  sJ ‚|t        d |dd«      z  dd |dd«      z  z  gd |d«      dz   |dd«      z  gg«      k(  sJ ‚||z  | k(  sJ ‚|j                  |z  t	        d«      k(  sJ ‚t        g d¢g d	¢g d
¢g«      } | j                  «       \  }}|j                  |z  t	        |j
                  «      k(  sJ ‚|j                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t	        |j
                  «      k(  sJ ‚|j                  sJ ‚| ||z  k(  sJ ‚t        d«      }t        |g«      } | j                  «       \  }}|t        |t        |«      z  g«      k(  sJ ‚|t        t        |«      g«      k(  sJ ‚t        |dgd|gg«      } | j                  «       \  }}||t        |«      z  t        ddgddgg«      z  k(  sJ ‚|t        |«      t        ddgddgg«      z  k(  sJ ‚y )Nr    r   r   r   r-   r   r   ©r    r    r    )r    r    r   )r   r   r   )r'   r   iÍÿÿÿ)r   r   é§   )éüÿÿÿr   é   r   )	r   ÚQRdecompositionr   rF   r   rG   r6   r   r	   )rH   ÚQr   ÚRr   s        r1   Útest_QRrV   †   sÃ  € Ü��A�˜˜A˜ÐÓ €AØ×ÑÓ�D€A€qÜ€AØ”Ø‰a��A‹h‰;™!˜A›$˜q™&¡1 Q£4¨¡6©A¨b°!«HÑ"4Ñ4Ð5Ø	
ˆ1‰a��A‹h‰;‰™!˜A›$˜˜q™¡1 Q£4¨¡6©A¨b°!«HÑ"4Ñ4Ð5ð7ó 8ò 8ð 8ð 8ð ”˜™A˜a ›G™ Q q©!¨B°«(¡{¡]Ð3°a¹!¸A»$¸q¹&Á1ÀQÈÃ7Ñ9JÐ5KÐLÓMÒMÐMÐMØˆQ‰3�!Š8€Oˆ8Ø�3‰3�‰7”c˜!“fÒÐÐä’	š9¢iÐ0Ó1€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’škª;Ð7Ó8€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8äˆs‹€AÜ�ˆs‹€AØ×ÑÓ�D€A€qØ”˜œC ›F™
�|Ó$Ò$Ð$Ð$Ø”œ˜A›�xÓ Ò Ð Ð ä��A�˜˜A˜ÐÓ €AØ×ÑÓ�D€A€qØ�”C˜“F‘
œV a¨ V¨a°¨VÐ$4Ó5Ñ5Ò5Ð5Ð5Ø”�A“œ ! Q ¨!¨Q¨Ð 0Ó1Ñ1Ò1Ð1Ñ1r3   c                  ó¾  — t        g d¢g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        d	d
d
d	g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        d
d	d
d	g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚y )N)r$   r   é   )r'   r   éùÿÿÿ)r   r   r   )r   éýÿÿÿrZ   )r    r-   r   )r    r   r   )r    r   r   )r    r-   r   r   r    r!   r"   r,   )r    r   r$   é   )r    r   é   é@   ©r   rS   rF   r   rG   r6   ©rH   rT   rU   s      r1   Útest_QR_non_squarer`   ©   s0  € ä’
šKª²KÐ@ÓA€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’
šJª	²:Ð>Ó?€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8äˆq�!�a˜�VÓ€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ô 	’	š9Ð%Ó&€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’šmª^Ð<Ó=€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8äˆq�!�a˜�VÓ€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€O‰8r3   c                  óB	  — t        g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g«      } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d	¢g d
¢g d	¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d	¢g d
¢g d	¢g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      j                  } | j                  «       \  }}|j                  |z  t        |j                  «      k(  sJ ‚|j
                  sJ ‚| ||z  k(  sJ ‚y )Nr!   r"   r#   rO   )r   r   r   )r   r   r   )r   r   r   )r   r   r   )r   r   r   r   r,   )r   r   r   r   r^   r_   s      r1   Útest_QR_trivialrb   Ð   s  € ä’	š9¢iÐ0Ó1€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	š9¢i²Ð;Ó<€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	š9¢i²Ð;Ó<×>Ñ>€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ô 	’	ˆ{Ó€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	ˆ{Ó×Ñ€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	š9Ð%Ó&€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	š9Ð%Ó&×(Ñ(€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ô 	’	š9Ð%Ó&×(Ñ(€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’šlªLÐ9Ó:×<Ñ<€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’šlªLº,ÐGÓH×JÑJ€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€Oˆ8ä’	š9¢i²Ð;Ó<×>Ñ>€AØ×ÑÓ�D€A€qØ�3‰3�‰7”c˜!Ÿ&™&“kÒ!Ð!Ð!Ø�:Š:Ðˆ:Ø��!‘Š8€O‰8r3   c                  óH  — t        ddgddgg«      } | j                  «       \  }}t        ||z  | «      sJ ‚t        ||j                  z  t        j                  d«      «      sJ ‚t        |j                  |z  t        j                  d«      «      sJ ‚t        ddgddgg«      } | j                  «       \  }}t        ||z  | «      sJ ‚t        ||j                  z  t        j                  d«      «      sJ ‚t        |j                  |z  t        j                  d«      «      sJ ‚y )Nr    g)\�Âõ(ð?r   gj¼t“ð?)r   rS   r   rF   r   r_   s      r1   Útest_QR_floatrd     sü   € Ü��A�˜˜D˜	Ð"Ó#€AØ×ÑÓ�D€A€qÜ�A˜‘E˜1ÔÐÐÜ�A˜Ÿ™‘GœVŸZ™Z¨›]Ô+Ð+Ð+Ü�A—C‘C˜!‘GœVŸZ™Z¨›]Ô+Ð+Ð+ä��A�˜˜E˜
Ð#Ó$€AØ×ÑÓ�D€A€qÜ�A˜‘E˜1ÔÐÐÜ�A˜Ÿ™‘GœVŸZ™Z¨›]Ô+Ð+Ð+Ü�A—C‘C˜!‘GœVŸZ™Z¨›]Ô+Ð+Ñ+r3   c                  ó´   ‡— dŠˆfd„} 	 t        ddgddgg«      j                  | ¬«      \  }}J ‚# t        $ r}‰|j                  d   k(  sJ ‚Y d }~y d }~ww xY w)NúI got passed in!c                 ó   •— t        ‰«      ‚©N©r:   ©ÚvalueÚmagic_strings    €r1   Úgoofyiszeroz;test_LUdecomposition_Simple_iszerofunc.<locals>.goofyiszero)  ó   ø€ Ü˜Ó&Ð&r3   r    r   ©Ú
iszerofunc)r   r/   r:   Úargs)rm   Úlur>   Úerrrl   s       @r1   Ú&test_LUdecomposition_Simple_iszerofuncrt   %  so   ø€ ð &€Lô'ðÜ˜˜A˜  A Ð'Ó(×?Ñ?È;Ð?ÓW‰ˆˆAð
 ˆ5øô	 ò Ø˜sŸx™x¨™{Ò*Ð*Ð*Üûðús   Š$0 °	A¹AÁAc                  ó¶   ‡— dŠˆfd„} 	 t        ddgddgg«      j                  | ¬«      \  }}}J ‚# t        $ r}‰|j                  d   k(  sJ ‚Y d }~y d }~ww xY w)Nrf   c                 ó   •— t        ‰«      ‚rh   ri   rj   s    €r1   rm   z4test_LUdecomposition_iszerofunc.<locals>.goofyiszero8  rn   r3   r    r   ro   )r   r4   r:   rq   )rm   ÚlÚur>   rs   rl   s        @r1   Útest_LUdecomposition_iszerofuncry   4  sq   ø€ ð &€Lô'ðÜ˜1˜a˜& 1 a &Ð)Ó*×:Ñ:ÀkÐ:ÓR‰ˆˆ1ˆað
 ˆ5øô	 ò Ø˜sŸx™x¨™{Ò*Ð*Ð*Üûðús   Š%1 ±	AºAÁAc            
      ó  — t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        d«      } | j	                  d¬«      \  }}||z  |j
                  z  | k(  sJ ‚t        d	«      } | j	                  «       \  }}||z  |j
                  z  | k(  sJ ‚|j                  sJ ‚|t        g d
¢t        dd«      ddgt        dd«      t        dd«      dgg«      k(  sJ ‚|j                  «       sJ ‚|t        g d¢g d¢g d¢g«      k(  sJ ‚t        ddt        z  ddt        z  z   fdt        z  ddt        z   fddt        z  z
  dt        z
  dff«      } | j	                  «       \  }}t        ||z  |j                  z  «      | k(  sJ ‚|j                  «       t        g d
¢t        dz  ddgt        j                  t        dz  z
  ddgg«      k(  sJ ‚|j                  «       t        d«      k(  sJ ‚t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        t        d„ «       t        d«      } | j	                  d¬«      \  }}||z  |j
                  z  | k(  sJ ‚t        d	«      } | j	                  «       \  }}||z  |j
                  z  | k(  sJ ‚|j                  sJ ‚|t        g d
¢t        dd«      ddgt        dd«      t        dd«      dgg«      k(  sJ ‚|j                  «       sJ ‚|t        g d¢g d¢g d¢g«      k(  sJ ‚t        ddt        z  ddt        z  z   fdt        z  ddt        z   fddt        z  z
  dt        z
  dff«      } | j	                  «       \  }}t        ||z  |j                  z  «      | k(  sJ ‚|t        d
t        dz  ddft        j                  t        dz  z
  ddff«      k(  sJ ‚|t        d«      k(  sJ ‚y )Nc                  ó4   — t        d«      j                  «       S ©N©r    r   ©r   ÚLDLdecomposition© r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>D  s   € ¬°«×)HÑ)HÓ)J€ r3   c                  ó4   — t        d«      j                  «       S ©N©r}   )r   r   r~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>E  ó   € œvÐ&6Ó7×HÑHÓJ€ r3   c                  óJ   — t        dt        z   dfdf«      j                  «       S ©Nr   r   )r   r    )r   r   r   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>F  s!   € œv¨¬A©¨q z°6Ð&:Ó;×LÑLÓN€ r3   c                  ó4   — t        d«      j                  «       S ©N©)r    r   )r   r    r~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>G  r„   r3   c                  ó8   — t        d«      j                  d¬«      S ©Nrƒ   F©Ú	hermitianr~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>H  s   € œvÐ&6Ó7×HÑHÐSXÐHÓY€ r3   r‰   FrŒ   ))é   é   éûÿÿÿ)r�   é   r   )r�   r   r&   r*   r   r   r    r   r-   )rŽ   r   r   )r   r$   r   ©r   r   r$   r   r   r   r&   ))r   r   r   )r   r    r   r’   c                  ó4   — t        d«      j                  «       S r|   ©r   r   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>Y  s   € ¬°fÓ)=×)NÑ)NÓ)P€ r3   c                  ó4   — t        d«      j                  «       S r‚   r”   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>Z  ó   € œ|Ð,<Ó=×NÑNÓP€ r3   c                  óJ   — t        dt        z   dfdf«      j                  «       S r†   )r   r   r   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>[  s!   € œ|¨a´!©e°Q¨Z¸Ð,@ÓA×RÑRÓT€ r3   c                  ó4   — t        d«      j                  «       S rˆ   r”   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>\  r–   r3   c                  ó8   — t        d«      j                  d¬«      S r‹   r”   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>]  s   € œ|Ð,<Ó=×NÑNÐY^ÐNÓ_€ r3   )r   r   r:   r   r   rF   r5   r   Úis_diagonalr   r   ÚHÚexpandr   ÚHalfr   )rH   r<   rL   s      r1   Útest_LDLdecompositionrž   C  sÊ  € Ü
ÔÑ!JÔKÜ
Œ:ÑJÔKÜ
Œ:ÑNÔOÜ
Œ:ÑJÔKÜ
Œ:ÑYÔZÜÐÓ €AØ×Ñ¨ÐÓ.�D€A€qØˆq‰5�1—3‘3‰;˜!ÒÐÐÜÐ7Ó8€AØ×ÑÓ�D€A€qØˆq‰5�1—3‘3‰;˜!ÒÐÐØ�:Š:Ðˆ:Ø”š	¤X¨a°£^°Q¸Ð#:¼XÀbÈ!»_ÌhÐWXÐZ[ËnÐ^_Ð<`ÐaÓbÒbÐbÐbØ�=‰=Œ?Ðˆ?Ø”š
¢IªyÐ9Ó:Ò:Ð:Ð:Ü��B”q‘D˜!˜a¤™c™'Ð" Q¤q¡S¨!¨R´!©VÐ$4°q¸1¼Q¹3±wÀÄQÁÈÐ6KÐLÓM€AØ×ÑÓ�D€A€qÜ�a˜!‘e˜aŸc™c‘kÓ" aÒ'Ð'Ð'Ø�8‰8‹:œ¢¬Q¨q©S°!°Q¨K¼!¿&¹&Ä1ÀQÁ3¹,ÈÈ1Ð9MÐ NÓOÒOÐOÐOØ�8‰8‹:œÐ AÓBÒBÐBÐBä
ÔÑ!PÔQÜ
Œ:ÑPÔQÜ
Œ:ÑTÔUÜ
Œ:ÑPÔQÜ
Œ:Ñ_Ô`ÜÐ%Ó&€AØ×Ñ¨ÐÓ.�D€A€qØˆq‰5�1—3‘3‰;˜!ÒÐÐÜÐ=Ó>€AØ×ÑÓ�D€A€qØˆq‰5�1—3‘3‰;˜!ÒÐÐØ�:Š:Ðˆ:Ø”š	¤X¨a°£^°Q¸Ð#:¼XÀbÈ!»_ÌhÐWXÐZ[ËnÐ^_Ð<`ÐaÓbÒbÐbÐbØ�=‰=Œ?Ðˆ?Ø”š
¢IªyÐ9Ó:Ò:Ð:Ð:Ü�q˜"œQ™$  A¤a¡C¡Ð(¨1¬Q©3°°2¼±6Ð*:¸QÀÄ1Á¹WÀbÌ1ÁfÈbÐ<QÐRÓS€AØ×ÑÓ�D€A€qÜ�a˜!‘e˜aŸc™c‘kÓ" aÒ'Ð'Ð'Ø”˜	¤A a¡C¨¨A ;´·±¼!¸A¹#±¸qÀ!Ð0DÐEÓFÒFÐFÐFØ”Ð8Ó9Ò9Ð9Ñ9r3   c            	      ó  — t        g d¢g d¢g d¢g d¢g d¢g d¢g«      g} | D ]f  }|j                  d¬«      }||z  }||z  }t        ||z  «      |k(  sJ ‚t        ||z  «      |k(  sJ ‚|j                  |k(  sJ ‚|j                  |k(  rŒfJ ‚ y )	N)é=   éY   é7   é   éG   r   )é>   é`   éU   r§   r[   r   )éE   é8   é   r   é6   r   )r%   r«   é[   é)   r¤   r   )r   é   r%   é0   éZ   r   )r   r   r   r   r   r   ÚRD)Úmethod)r   Úpinvr
   r›   )ÚAsrH   ÚA_pinvÚAApÚApAs        r1   Ú1test_pinv_succeeds_with_rank_decomposition_methodr¸   n  s©   € ä
ÚÚÚÚÚÚðó ð 
€Bð ò ˆØ—‘˜t�Ó$ˆØ�&‰jˆØ�q‰jˆÜ˜˜a™Ó  AÒ%Ð%Ð%Ü˜˜f™Ó%¨Ò/Ð/Ð/Ø�u‰u˜Š|Ðˆ|Ø�u‰u˜‹|Ðˆ|ñr3   c                  ón  — t        ddg «      } | j                  «       \  }}|j                  sJ ‚|j                  |j                  cxk(  r| j                  «       k(  sJ ‚ J ‚||z  | k(  sJ ‚t        dddg«      } | j                  «       \  }}|j                  sJ ‚|j                  |j                  cxk(  r| j                  «       k(  sJ ‚ J ‚||z  | k(  sJ ‚t        ddg d¢«      } | j                  «       \  }}|j                  sJ ‚|j                  |j                  cxk(  r| j                  «       k(  sJ ‚ J ‚||z  | k(  sJ ‚t        g d¢g d¢g d¢g d	¢g«      } | j                  «       \  }}|j                  sJ ‚|j                  |j                  cxk(  r| j                  «       k(  sJ ‚ J ‚||z  | k(  sJ ‚y )
Nr   r    r   r   )	r    r   r   r    r   r   r    r   r   )r   r   r    r   r   r�   r   )r-   r   r   r   r    rY   r   )r   r   r   rZ   rZ   r   r�   )r-   r   r   r-   r   r    r   )r   Úrank_decompositionÚ
is_echelonrG   ÚrowsÚrank)ÚaÚcÚfs      r1   Útest_rank_decompositionrÁ   €  s   € Üˆq�!�RÓ€AØ×ÑÓ!�D€A€qØ�<Š<Ðˆ<Ø�6‰6�Q—V‘VÔ'˜qŸv™v›xÒ'Ð'Ñ'Ð'Ð'Øˆq‰5�AŠ:Ðˆ:äˆq�!�a�SÓ€AØ×ÑÓ!�D€A€qØ�<Š<Ðˆ<Ø�6‰6�Q—V‘VÔ'˜qŸv™v›xÒ'Ð'Ñ'Ð'Ð'Øˆq‰5�AŠ:Ðˆ:äˆq�!Ò0Ó1€AØ×ÑÓ!�D€A€qØ�<Š<Ðˆ<Ø�6‰6�Q—V‘VÔ'˜qŸv™v›xÒ'Ð'Ñ'Ð'Ð'Øˆq‰5�AŠ:Ðˆ:äÚÚÚ!Ú ð	"ó 	#€Að
 ×ÑÓ!�D€A€qØ�<Š<Ðˆ<Ø�6‰6�Q—V‘VÔ'˜qŸv™v›xÒ'Ð'Ñ'Ð'Ð'Øˆq‰5�AŠ:Ð‰:r3   c            
      ó   — t        ddt        d«      gt        d«      t        dd«      dgdt        dd«      dgg«      } | j                  «       \  }}t	        ||j
                  z  «      t        |j                  «      k(  sJ ‚t	        |j
                  |z  «      t        |j                  «      k(  sJ ‚|j                  sJ ‚t	        ||z  |j
                  z  «      | k(  sJ ‚t        g d¢g d¢g d¢g«      }|j                  «       \  }}t	        ||j
                  z  «      t        |j                  «      k(  sJ ‚t	        |j
                  |z  «      t        |j                  «      k(  sJ ‚|j                  sJ ‚t	        ||z  |j
                  z  «      |k(  sJ ‚t        dt        d«      ddgg d	¢dddt        d
«      gg d¢g«      }|j                  «       \  }}t	        ||j
                  z  «      t        |j                  «      k(  sJ ‚t	        |j
                  |z  «      t        |j                  «      k(  sJ ‚|j                  sJ ‚t	        ||z  |j
                  z  «      |k(  sJ ‚t        g d¢g d¢g d¢g«      }|j                  «       \  }}t	        ||j
                  z  «      t        |j                  «      k(  sJ ‚t	        |j
                  |z  «      t        |j                  «      k(  sJ ‚|j                  sJ ‚t	        ||z  |j
                  z  «      |k(  sJ ‚t        g d¢g d¢g d¢g d¢g«      }|j                  «       \  }}t	        ||j
                  z  «      t        |j                  «      k(  sJ ‚t	        |j
                  |z  «      t        |j                  «      k(  sJ ‚|j                  sJ ‚t	        ||z  |j
                  z  «      |k(  sJ ‚y )Nr    r   r   r   r   )r    r   r%   )r   r   r   )r   r'   é"   )r   r   r   r   r   )r   r   r   r   r!   )rZ   r   r   )r   iøÿÿÿr$   )r    r   r   r   )r   r    r   r   )r    r    r   r    )r    r    r    r   )	r   r   r   Úupper_hessenberg_decompositionr
   r›   r   rG   Úis_upper_hessenberg)rH   r›   rA   rJ   rK   rL   ÚEs          r1   Ú#test_upper_hessenberg_decompositionrÇ   ž  sl  € äØ	
ˆAŒt�A‹wˆÜ	ˆa‹”(˜1˜a“. !Ð$Ø	
ŒH�Q˜‹N˜AÐðó 	€Að
 ×+Ñ+Ó-�D€A€qÜ�A˜Ÿ™‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ø× Ò Ð Ð Ü�Q˜‘U˜QŸS™S‘[Ó! aÒ'Ð'Ð'ô 	ÚÚÚðó 	€Að
 ×+Ñ+Ó-�D€A€qÜ�A˜Ÿ™‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ø× Ò Ð Ð Ü�A˜‘E˜AŸC™C‘KÓ  AÒ%Ð%Ð%äØ	
ŒD�‹G�Q˜ÐÚØ	
ˆAˆq”$�q“'ÐÚð	ó 	€Að ×+Ñ+Ó-�D€A€qÜ�A˜Ÿ™‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ø× Ò Ð Ð Ü�A˜‘E˜AŸC™C‘KÓ  AÒ%Ð%Ð%äÚÚÚðó 	€Að
 ×+Ñ+Ó-�D€A€qÜ�A˜Ÿ™‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ø× Ò Ð Ð Ü�A˜‘E˜AŸC™C‘KÓ  AÒ%Ð%Ð%äÚÚÚÚð	ó 	€Að ×+Ñ+Ó-�D€A€qÜ�A˜Ÿ™‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ü�A—C‘C˜!‘GÓ¤ A§F¡F£Ò+Ð+Ð+Ø× Ò Ð Ð Ü�A˜‘E˜AŸC™C‘KÓ  AÒ%Ð%Ñ%r3   N)+Úsympy.core.functionr   Úsympy.core.numbersr   r   Úsympy.core.singletonr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.miscellaneousr   Ú$sympy.functions.elementary.complexesr	   Úsympy.simplify.simplifyr
   Úsympy.matrices.exceptionsr   Úsympy.matricesr   r   r   r   Ú	sympy.abcr   r   r   Úsympy.testing.pytestr   r   Úsympy.testing.matricesr   rC   rM   rV   r`   rb   rd   rt   ry   rž   r¸   rÁ   rÇ   r€   r3   r1   ú<module>rÔ      sƒ   ðÝ *ß *Ý "Ý $Ý 9Ý 4Ý ,Ý :ß ;Ó ;ß Ñ ß -Ý +òSJòj&òD 2òF%òNDòN,òòò):òVò$ð< ñ;&ó ñ;&r3   