§
    OŠtjS8  ã                   ó
  — 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*dS )é    )Ú
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        sJ ‚|j        sJ ‚||z                       |d¦  «        | z
  t          d¦  «        k    sJ ‚t          g d¢g d¢g d	¢g d
¢g¦  «        } |                      ¦   «         \  }}}|j        sJ ‚|j        sJ ‚||z                       |d¦  «        | z
  t          d¦  «        k    sJ ‚t          g d¢g d¢g d¢g d¢g¦  «        } |                      d¬¦  «        \  }}}|j        sJ ‚|j        sJ ‚||z                       |d¦  «        | z
  t          dd¦  «        k    sJ ‚t          g d¢g d¢g d¢g¦  «        } |                      d¬¦  «        \  }}}|j        sJ ‚|j        sJ ‚||z                       |d¦  «        | z
  t          d¦  «        k    sJ ‚t          dt          dfdt          dft          dt          ff¦  «        Š‰                     ¦   «         \  }}}|j        sJ ‚|j        sJ ‚||z                       |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¦  «        Š‰ 	                    ¦   «         \  }}}}|‰z  || 
                    ¦   «         z  |z  k    sJ ‚t          g d¢g d¢g d¢g d¢g¦  «        Š‰ 	                    ¦   «         \  }}}}|‰z  || 
                    ¦   «         z  |z  k    sJ ‚t          g d ¢g d!¢g d"¢g¦  «        Š‰ 	                    ¦   «         \  }}}}|‰z  || 
                    ¦   «         z  |z  k    sJ ‚t          g d¢g d¢g d¢g¦  «        Št          t          ˆfd#„¦  «         d S )$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                  ó0   •— ‰                       d¬¦  «        S )NTr(   )ÚLUdecomposition_Simple)ÚMs   €úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/tests/test_decompositions.pyú<lambda>ztest_LUdecomp.<locals>.<lambda>b   s   ø€  × 8Ò 8À4Ð 8Ñ HÔ 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�l�lØ"�l�lØ"�l�lØ#�m�mð%ñ &ô &€Gð ×%Ò%Ñ'Ô'�G€A€qˆ!ØŒ:ÐÐˆ:ØŒ:ÐÐˆ:Øˆa‰C×Ò˜a Ñ,Ô,¨wÑ6½%À¹(¼(ÒBÐBÐBÐBå�m�m�mØ"�l�lØ#�m�mØ#�m�mð%ñ &ô &€Gð ×%Ò%Ñ'Ô'�G€A€qˆ!ØŒ:ÐÐˆ:ØŒ:ÐÐˆ:Øˆa‰C×Ò˜a Ñ,Ô,¨wÑ6½%À¹(¼(ÒBÐBÐBÐBõ �i�i�iØ�i�iØ�i�iØ"�l�lð$ñ %ô %€Gð ×%Ò%°Ð%Ñ6Ô6�G€A€qˆ!ØŒ:ÐÐˆ:ØŒ:ÐÐˆ:Øˆa‰C×Ò˜a Ñ,Ô,¨wÑ6½%ÀÀ1¹+¼+ÒEÐEÐEÐEõ �i�i�iØ�i�iØ�i�ið!ñ "ô "€Gð ×%Ò%°Ð%Ñ6Ô6�G€A€qˆ!ØŒ:ÐÐˆ:ØŒ:ÐÐˆ:Øˆa‰C×Ò˜a Ñ,Ô,¨wÑ6½%À¹(¼(ÒBÐBÐBÐBå�•A�q�	˜A�q !˜9¥q¨!­Q iÐ0Ñ1Ô1€AØ×ÒÑ!Ô!�G€A€qˆ!ØŒ:ÐÐˆ:ØŒ:ÐÐˆ:Øˆa‰C×Ò˜a Ñ,Ô,¨qÑ0µE¸!±H´HÒ<Ð<Ð<Ð<å	ð ñ 
ô 
€Bð Œ;˜$ÐÐÐÐØŒ;˜%ÐÐÐÐÝ	ð ñ 
ô 
€Bð Œ;˜%ÐÐÐÐØŒ;˜$ÐÐÐÐõ 	�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Að ×&Ò&Ñ(Ô(�L€A€qˆ#ˆqØˆQ‰3�!�C—G’G‘I”I‘+˜a‘-ÒÐÐÐå���Ø��Ø��Ø��ð ñ 	!ô 	!€Að ×&Ò&Ñ(Ô(�L€A€qˆ#ˆqØˆQ‰3�!�C—G’G‘I”I‘+˜a‘-ÒÐÐÐå�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Að ×&Ò&Ñ(Ô(�L€A€qˆ#ˆqØˆQ‰3�!�C—G’G‘I”I‘+˜a‘-ÒÐÐÐõ 	Ø	ˆˆØˆ	ˆ	Øˆ	ˆ	ð	ñ	ô 	€Aõ
 �:ÐHÐHÐHÐHÑIÔIÐIÐIÐIr3   c                  óÌ  — t          ddgddgg¦  «        } |                      ¦   «         \  }}}||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¦  «        }|                     ¦   «         \  }}}||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¦  «        }|                     ¦   «         \  }}}||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¦  «        }|                     ¦   «         \  }}}t          |j        |z  ¦  «        t          |j        ¦  «        k    sJ ‚t          |j        |z  ¦  «        t          |j        ¦  «        k    sJ ‚t          ||z  |j        z  ¦  «        |k    sJ ‚d S )
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   sq  € Ý��A�˜˜A˜ÐÑ Ô €AØ×,Ò,Ñ.Ô.�G€A€qˆ!Øˆq‰5�1”3‰;˜!ÒÐÐÐØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!å��A�ˆxÑÔ€AØ×,Ò,Ñ.Ô.�G€A€qˆ!àˆq‰5�1”3‰;˜!ÒÐÐÐØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!åØˆˆØˆˆØˆˆØˆˆð	ñ 	ô 	€Að ×,Ò,Ñ.Ô.�G€A€qˆ!àˆq‰5�1”3‰;˜!ÒÐÐÐØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!å•˜!˜Q‘”¥ a¡¤Ð)¨A­x¸¸1©~¬~Ð+>Ð?Ñ@Ô@€AØ×,Ò,Ñ.Ô.�G€A€qˆ!Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A˜‘E˜AœC‘KÑ Ô  AÒ%Ð%Ð%Ð%Ð%Ð%r3   c                  ó  — t          ddgddgg¦  «        } |                      ¦   «         \  }}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        |z  t	          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          g d¢g d¢g d¢g¦  «        } |                      ¦   «         \  }}|j        |z  t	          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          d¦  «        }t          |g¦  «        } |                      ¦   «         \  }}|t          |t          |¦  «        z  g¦  «        k    sJ ‚|t          t          |¦  «        g¦  «        k    sJ ‚t          |dgd|gg¦  «        } |                      ¦   «         \  }}||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 ‚d S )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   †   sm  € Ý��A�˜˜A˜ÐÑ Ô €AØ×ÒÑÔ�D€A€qÝ€AØ•Øˆaˆa��A‰hŒh‰;˜!˜!˜A™$œ$˜q™& 1 1 Q¡4¤4¨¡6¨A¨A¨b°!©H¬HÑ"4Ñ4Ð5Ø	
ˆ1ˆaˆa��A‰hŒh‰;‰˜!˜!˜A™$œ$˜˜q™ 1 1 Q¡4¤4¨¡6¨A¨A¨b°!©H¬HÑ"4Ñ4Ð5ð7ñ 8ô 8ò 8ð 8ð 8ð 8ð •˜˜A˜A˜a ™GœG™ Q q¨!¨!¨B°©(¬(¡{¡]Ð3°a¸!¸!¸A¹$¼$¸q¹&À1À1ÀQÈÁ7Ä7Ñ9JÐ5KÐLÑMÔMÒMÐMÐMÐMØˆQ‰3�!Š8ˆ8ˆ8ˆ8ØŒ3�‰7•c˜!‘f”fÒÐÐÐå�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å���˜k˜k˜k¨;¨;¨;Ð7Ñ8Ô8€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8åˆs‰Œ€AÝ�ˆs‰Œ€AØ×ÒÑÔ�D€A€qØ•˜�C ™FœF™
�|Ñ$Ô$Ò$Ð$Ð$Ð$Ø•�˜A™œ�xÑ Ô Ò Ð Ð Ð å��A�˜˜A˜ÐÑ Ô €AØ×ÒÑÔ�D€A€qØ�•C˜‘F”F‘
�V a¨ V¨a°¨VÐ$4Ñ5Ô5Ñ5Ò5Ð5Ð5Ð5Ø•�A‘”� ! Q ¨!¨Q¨Ð 0Ñ1Ô1Ñ1Ò1Ð1Ð1Ð1Ð1Ð1r3   c                  ó´  — t          g d¢g d¢g d¢g d¢g¦  «        } |                      ¦   «         \  }}|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        |z  t          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          d	d
d
d	g¦  «        } |                      ¦   «         \  }}|j        |z  t          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          g d¢g d¢g¦  «        } |                      ¦   «         \  }}|j        |z  t          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          g d¢g d¢g d¢g¦  «        } |                      ¦   «         \  }}|j        |z  t          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚t          d
d	d
d	g¦  «        } |                      ¦   «         \  }}|j        |z  t          |j        ¦  «        k    sJ ‚|j        sJ ‚| ||z  k    sJ ‚d S )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`   ©   s¤  € å�
�
�
˜K˜K˜K¨¨¨°K°K°KÐ@ÑAÔA€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�
�
�
˜J˜J˜J¨	¨	¨	°:°:°:Ð>Ñ?Ô?€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8åˆq�!�a˜�VÑÔ€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8õ 	�	�	�	˜9˜9˜9Ð%Ñ&Ô&€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å���˜m˜m˜m¨^¨^¨^Ð<Ñ=Ô=€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8åˆq�!�a˜�VÑÔ€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8ˆ8ˆ8r3   c                  óè  — t          g d¢g d¢g d¢g¦  «        } |                      ¦   «         \  }}|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        |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¦  «        } |                      ¦   «         \  }}|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 d¢g¦  «        } |                      ¦   «         \  }}|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        |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          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 ‚d S )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˜9˜9 i i iÐ0Ñ1Ô1€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<Ô>€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8õ 	�	�	�	ˆ{ÑÔ€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	ˆ{ÑÔÔ€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	˜9˜9˜9Ð%Ñ&Ô&€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	˜9˜9˜9Ð%Ñ&Ô&Ô(€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8õ 	�	�	�	˜9˜9˜9Ð%Ñ&Ô&Ô(€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å���˜l˜l˜l¨L¨L¨LÐ9Ñ:Ô:Ô<€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å���˜l˜l˜l¨L¨L¨L¸,¸,¸,ÐGÑHÔHÔJ€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8å�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<Ô>€AØ×ÒÑÔ�D€A€qØŒ3�‰7•c˜!œ&‘k”kÒ!Ð!Ð!Ð!ØŒ:ÐÐˆ:Ø��!‘Š8ˆ8ˆ8ˆ8ˆ8ˆ8r3   c                  ój  — t          ddgddgg¦  «        } |                      ¦   «         \  }}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¦  «        } |                      ¦   «         \  }}t          ||z  | ¦  «        sJ ‚t          ||j        z  t          j        d¦  «        ¦  «        sJ ‚t          |j        |z  t          j        d¦  «        ¦  «        sJ ‚d S )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¨™]œ]Ñ+Ô+Ð+Ð+Ð+Ý�A”C˜!‘G�VœZ¨™]œ]Ñ+Ô+Ð+Ð+Ð+å��A�˜˜E˜
Ð#Ñ$Ô$€AØ×ÒÑÔ�D€A€qÝ�A˜‘E˜1ÑÔÐÐÐÝ�A˜œ‘G�VœZ¨™]œ]Ñ+Ô+Ð+Ð+Ð+Ý�A”C˜!‘G�VœZ¨™]œ]Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r3   c                  óÈ   ‡— dŠˆfd„} 	 t          ddgddgg¦  «                             | ¬¦  «        \  }}n+# t          $ r}‰|j        d         k    sJ ‚Y d }~d S d }~ww xY wJ ‚)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   %  s£   ø€ ð &€Lð'ð 'ð 'ð 'ð 'ðÝ˜˜A˜  A Ð'Ñ(Ô(×?Ò?È;Ð?ÑWÔW‰ˆˆAˆAøÝð ð ð Ø˜sœx¨œ{Ò*Ð*Ð*Ð*Øˆˆˆˆˆøøøøðøøøð ˆ5s   Š,7 ·
AÁAÁAc                  óÊ   ‡— dŠˆfd„} 	 t          ddgddgg¦  «                             | ¬¦  «        \  }}}n+# t          $ r}‰|j        d         k    sJ ‚Y d }~d S d }~ww xY wJ ‚)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  s¥   ø€ ð &€Lð'ð 'ð 'ð 'ð 'ðÝ˜1˜a˜& 1 a &Ð)Ñ*Ô*×:Ò:ÀkÐ:ÑRÔR‰ˆˆ1ˆaˆaøÝð ð ð Ø˜sœx¨œ{Ò*Ð*Ð*Ð*Øˆˆˆˆˆøøøøðøøøð ˆ5s   Š-8 ¸
A ÁAÁA c            
      óV	  — t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          d¦  «        } |                      d¬¦  «        \  }}||z  |j        z  | k    sJ ‚t          d	¦  «        } |                      ¦   «         \  }}||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 ‚|                     ¦   «         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¦  «        } |                      ¦   «         \  }}t          ||z  |j        z  ¦  «        | k    sJ ‚|                     ¦   «         t          g d
¢t          dz  ddgt          j        t          dz  z
  ddgg¦  «        k    sJ ‚|                     ¦   «         t          d¦  «        k    sJ ‚t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t          d¦  «        } |                      d¬¦  «        \  }}||z  |j        z  | k    sJ ‚t          d	¦  «        } |                      ¦   «         \  }}||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 ‚|                     ¦   «         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¦  «        } |                      ¦   «         \  }}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 ‚d S )Nc                  óD   — t          d¦  «                             ¦   «         S ©N©r    r   ©r   ÚLDLdecomposition© r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>D  s   € ­°©¬×)HÒ)HÑ)JÔ)J€ r3   c                  óD   — t          d¦  «                             ¦   «         S ©N©r}   )r   r   r~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>E  ó   € �vÐ&6Ñ7Ô7×HÒHÑJÔJ€ r3   c                  ó\   — t          dt          z   dfdf¦  «                             ¦   «         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ÔN€ r3   c                  óD   — t          d¦  «                             ¦   «         S ©N©)r    r   )r   r    r~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>G  r„   r3   c                  óH   — t          d¦  «                             d¬¦  «        S ©Nrƒ   F©Ú	hermitianr~   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>H  s!   € �vÐ&6Ñ7Ô7×HÒHÐSXÐHÑYÔ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                  óD   — t          d¦  «                             ¦   «         S r|   ©r   r   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>Y  s   € ­°fÑ)=Ô)=×)NÒ)NÑ)PÔ)P€ r3   c                  óD   — t          d¦  «                             ¦   «         S r‚   r”   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>Z  ó   € �|Ð,<Ñ=Ô=×NÒNÑPÔP€ r3   c                  ó\   — t          dt          z   dfdf¦  «                             ¦   «         S r†   )r   r   r   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>[  s'   € �|¨aµ!©e°Q¨Z¸Ð,@ÑAÔA×RÒRÑTÔT€ r3   c                  óD   — t          d¦  «                             ¦   «         S rˆ   r”   r€   r3   r1   r2   z'test_LDLdecomposition.<locals>.<lambda>\  r–   r3   c                  óH   — t          d¦  «                             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Ð!JÑKÔKÐKÝ
�:ÐJÐJÑKÔKÐKÝ
�:ÐNÐNÑOÔOÐOÝ
�:ÐJÐJÑKÔKÐKÝ
�:ÐYÐYÑZÔZÐZÝÐÑ Ô €AØ×Ò¨ÐÑ.Ô.�D€A€qØˆq‰5�1”3‰;˜!ÒÐÐÐÝÐ7Ñ8Ô8€AØ×ÒÑÔ�D€A€qØˆq‰5�1”3‰;˜!ÒÐÐÐØŒ:ÐÐˆ:Ø•˜	˜	˜	¥X¨a°¡^¤^°Q¸Ð#:½XÀbÈ!¹_¼_ÍhÐWXÐZ[ÉnÌnÐ^_Ð<`ÐaÑbÔbÒbÐbÐbÐbØ�=Š=‰?Œ?ÐÐˆ?Ø•˜
˜
˜
 I I I¨y¨y¨yÐ9Ñ:Ô:Ò:Ð:Ð:Ð:Ý��B•q‘D˜!˜a¥™c™'Ð" Q¥q¡S¨!¨Rµ!©VÐ$4°q¸1½Q¹3±wÀÅQÁÈÐ6KÐLÑMÔM€AØ×ÒÑÔ�D€A€qÝ�a˜!‘e˜aœc‘kÑ"Ô" aÒ'Ð'Ð'Ð'Ø�8Š8‰:Œ:�   ­Q¨q©S°!°Q¨K½!¼&Å1ÀQÁ3¹,ÈÈ1Ð9MÐ NÑOÔOÒOÐOÐOÐOØ�8Š8‰:Œ:�Ð AÑBÔBÒBÐBÐBÐBå
ÕÐ!PÐ!PÑQÔQÐQÝ
�:ÐPÐPÑQÔQÐQÝ
�:ÐTÐTÑUÔUÐUÝ
�:ÐPÐPÑQÔQÐQÝ
�:Ð_Ð_Ñ`Ô`Ð`ÝÐ%Ñ&Ô&€AØ×Ò¨ÐÑ.Ô.�D€A€qØˆq‰5�1”3‰;˜!ÒÐÐÐÝÐ=Ñ>Ô>€AØ×ÒÑÔ�D€A€qØˆq‰5�1”3‰;˜!ÒÐÐÐØŒ:ÐÐˆ:Ø•˜	˜	˜	¥X¨a°¡^¤^°Q¸Ð#:½XÀbÈ!¹_¼_ÍhÐWXÐZ[ÉnÌnÐ^_Ð<`ÐaÑbÔbÒbÐbÐbÐbØ�=Š=‰?Œ?ÐÐˆ?Ø•˜
˜
˜
 I I I¨y¨y¨yÐ9Ñ:Ô:Ò:Ð:Ð:Ð:Ý�q˜"�Q™$  A¥a¡C¡Ð(¨1­Q©3°°2½±6Ð*:¸QÀÅ1Á¹WÀbÍ1ÁfÈbÐ<QÐRÑSÔS€AØ×ÒÑÔ�D€A€qÝ�a˜!‘e˜aœc‘kÑ"Ô" aÒ'Ð'Ð'Ð'Ø•˜	¥A a¡C¨¨A ;µ´½!¸A¹#±¸qÀ!Ð0DÐEÑFÔFÒFÐFÐFÐFØ•Ð8Ñ9Ô9Ò9Ð9Ð9Ð9Ð9Ð9r3   c            	      ó(  — t          g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        g} | D ]l}|                     d¬¦  «        }||z  }||z  }t          ||z  ¦  «        |k    sJ ‚t          ||z  ¦  «        |k    sJ ‚|j        |k    sJ ‚|j        |k    sJ ‚Œmd S )	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˜Š|ˆ|ˆ|ˆ|ˆ|ðð r3   c                  óh  — t          ddg ¦  «        } |                      ¦   «         \  }}|j        sJ ‚|j        |j        cxk    r|                      ¦   «         k    sn J ‚||z  | k    sJ ‚t          dddg¦  «        } |                      ¦   «         \  }}|j        sJ ‚|j        |j        cxk    r|                      ¦   «         k    sn J ‚||z  | k    sJ ‚t          ddg d¢¦  «        } |                      ¦   «         \  }}|j        sJ ‚|j        |j        cxk    r|                      ¦   «         k    sn J ‚||z  | k    sJ ‚t          g d¢g d¢g d¢g d	¢g¦  «        } |                      ¦   «         \  }}|j        sJ ‚|j        |j        cxk    r|                      ¦   «         k    sn J ‚||z  | k    sJ ‚d S )
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�Q”VÐ'Ð'Ò'Ð'˜qŸvšv™xœxÒ'Ð'Ð'Ð'Ð'Ð'Øˆq‰5�AŠ:ˆ:ˆ:ˆ:åˆq�!�a�SÑÔ€AØ×ÒÑ!Ô!�D€A€qØŒ<ÐÐˆ<ØŒ6�Q”VÐ'Ð'Ò'Ð'˜qŸvšv™xœxÒ'Ð'Ð'Ð'Ð'Ð'Øˆq‰5�AŠ:ˆ:ˆ:ˆ:åˆq�!Ð0Ð0Ð0Ñ1Ô1€AØ×ÒÑ!Ô!�D€A€qØŒ<ÐÐˆ<ØŒ6�Q”VÐ'Ð'Ò'Ð'˜qŸvšv™xœxÒ'Ð'Ð'Ð'Ð'Ð'Øˆq‰5�AŠ:ˆ:ˆ:ˆ:åØÐÐØÐÐØ!Ð!Ð!Ø Ð Ð ð	"ñ 	#ô 	#€Að
 ×ÒÑ!Ô!�D€A€qØŒ<ÐÐˆ<ØŒ6�Q”VÐ'Ð'Ò'Ð'˜qŸvšv™xœ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¦  «        } |                      ¦   «         \  }}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¦  «        }|                     ¦   «         \  }}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¦  «        }|                     ¦   «         \  }}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¦  «        }|                     ¦   «         \  }}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¦  «        }|                     ¦   «         \  }}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 ‚d S )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Ç   ž  s  € åØ	
ˆA�t�A‰wŒwˆÝ	ˆa‰Œ•(˜1˜a‘.”. !Ð$Ø	
�H�Q˜‰NŒN˜AÐðñ 	ô 	€Að
 ×+Ò+Ñ-Ô-�D€A€qÝ�A˜œ‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+ØÔ Ð Ð Ð Ý�Q˜‘U˜QœS‘[Ñ!Ô! aÒ'Ð'Ð'Ð'õ 	Øˆ
ˆ
Øˆ	ˆ	Øˆˆðñ 	ô 	€Að
 ×+Ò+Ñ-Ô-�D€A€qÝ�A˜œ‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+ØÔ Ð Ð Ð Ý�A˜‘E˜AœC‘KÑ Ô  AÒ%Ð%Ð%Ð%åØ	
�D�‰GŒG�Q˜ÐØˆˆØ	
ˆAˆq•$�q‘'”'ÐØˆˆð	ñ 	ô 	€Að ×+Ò+Ñ-Ô-�D€A€qÝ�A˜œ‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+ØÔ Ð Ð Ð Ý�A˜‘E˜AœC‘KÑ Ô  AÒ%Ð%Ð%Ð%åØˆ	ˆ	Øˆ
ˆ
Øˆ
ˆ
ðñ 	ô 	€Að
 ×+Ò+Ñ-Ô-�D€A€qÝ�A˜œ‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+ØÔ Ð Ð Ð Ý�A˜‘E˜AœC‘KÑ Ô  AÒ%Ð%Ð%Ð%åØˆˆØˆˆØˆˆØˆˆð	ñ 	ô 	€Að ×+Ò+Ñ-Ô-�D€A€qÝ�A˜œ‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+Ý�A”C˜!‘GÑÔ¥ A¤F¡¤Ò+Ð+Ð+Ð+ØÔ Ð Ð Ð Ý�A˜‘E˜Aœ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Ð 9Ð 9Ð 9Ð 9Ð 9Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø :Ð :Ð :Ð :Ð :Ð :Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø +Ð +Ð +Ð +Ð +Ð +ðSJð SJð SJðj&ð &ð &ðD 2ð  2ð  2ðF%ð %ð %ðNDð Dð DðN,ð ,ð ,ðð ð ðð ð ð):ð ):ð ):ðVð ð ð$ð ð ð< ð;&ð ;&ñ „ð;&ð ;&ð ;&r3   