§
    OŠtj'W  ã                   ó  — d dl Z d dlmZ d dlmZmZ 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mZ d d	lmZmZmZmZ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#m$Z$ d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d „ Z5e j6         7                    d!d"d#g¦  «        e j6         7                    d$ eg d%¢g d&¢g d'¢g¦  «         ed(d)g d*¢¦  «        f eg d%¢g d&¢g d'¢g¦  «         ed)d+gd(d,gd-d.gg¦  «        f ed+d+ e
d/¦  «        ¦  «         ed+d) e
d0¦  «        ¦  «        fg¦  «        d1„ ¦   «         ¦   «         Z8e j6         7                    d2d"efeefg¦  «        d3„ ¦   «         Z9d4„ Z:dS )5é    N)Ú
expand_mul)ÚIÚRational)ÚS)ÚSymbolÚsymbols)Úsympify)Úsimplify)Ú
ShapeErrorÚNonSquareMatrixError)ÚImmutableMatrixÚMatrixÚeyeÚonesÚImmutableDenseMatrixÚdotprodsimp)Ú_det_laplace)Úraises)ÚNonInvertibleMatrixError)ÚDMShapeError)Úlinsolve)ÚxÚyc                  ó8  — t          t          d¦  «        ¦  «        } t          d¦  «        5  |                      t	          dd¦  «        ¦  «        t          t          d¦  «        ¦  «        t          ddg ¦  «        fk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Ná�  [
        [             -3/4,       45/32 - 37*I/16,                   0,                     0],
        [-149/64 + 49*I/32, -177/128 - 1369*I/128,                   0, -2063/256 + 541*I/128],
        [                0,         9/4 + 55*I/16, 2473/256 + 137*I/64,                     0],
        [                0,                     0,                   0, -177/128 - 1369*I/128]]Té   é   á¡  [
            [                          -32549314808672/3306971225785 - 17397006745216*I/3306971225785],
            [                               67439348256/3306971225785 - 9167503335872*I/3306971225785],
            [-15091965363354518272/21217636514687010905 + 16890163109293858304*I/21217636514687010905],
            [                                                          -11328/952745 + 87616*I/952745]]r   )r   r   r   Úgauss_jordan_solver   ©ÚMs    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/matrices/tests/test_solvers.pyÚ%test_issue_17247_expression_blowup_29r#      s$  € Ý�qð cñ dô dñ 	eô 	e€Aõ
 
�TÑ	Ô	ð @ð @Ø×#Ò#¥D¨¨A¡J¤JÑ/Ô/µF½1ð >kñ <lô <lñ 5mô 5mõ ouÐuvÐxyÐ{}Ñn~Ôn~ð	4@ò @ð @ð @ð @ð @ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s   ¬ABÂBÂBc                  ó  — t          t          d¦  «        ¦  «        } t          d¦  «        5  |                      t	          dd¦  «        ¦  «        t          t          d¦  «        ¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Tr   r   r   )r   r   r   Úcholesky_solver   r    s    r"   Ú%test_issue_17247_expression_blowup_30r&      s  € Ý�qð cñ dô dñ 	eô 	e€Aõ
 
�TÑ	Ô	ð mð mØ×Ò¥ Q¨¡
¤
Ñ+Ô+­vµað 9kñ 7lô 7lñ 0mô 0mò mð mð mð mð mðmð mð mñ mô mð mð mð mð mð mð mð møøøð mð mð mð mð mð ms   ¬AA>Á>BÂBc                  ó´  — t          t          dz   dz  t          dz  dt          z  z   dz   z
  t          gt          dgg¦  «        } t          ddg¦  «        }d„ }t          dt          z  dt          dz   dt          z  z
  t          dz   dz  z   dz
  t          z  z
  t          z  g¦  «        }||                      ||¬¦  «        z
  t          ddg¦  «        k    sJ ‚d S )Nr   é   r   c                 ó2   — |                       ¦   «         rdndS )NFT)Ú_random)Úes    r"   ú<lambda>z)test_LUsolve_iszerofunc.<locals>.<lambda>@   s   €  a§i¢i¡k¤kÐ;˜U˜U°t€ ó    )Ú
iszerofunc)r   r   ÚLUsolve)r!   ÚbÚis_zero_funcÚx_exps       r"   Útest_LUsolve_iszerofuncr3   ;   sÎ   € õ 	•!�a‘%˜!‘�q !™t a­¡c™z¨A™~Ñ.µÐ2µQ¸°FÐ;Ñ<Ô<€AÝ��1ˆv‰Œ€AØ;Ð;€Lå�A•a‘C˜!�a ™d˜U Q¥q¡S™[­A¨a©C°!©8Ñ3°aÑ7½Ñ:Ñ:½AÑ=Ð>Ñ?Ô?€Eà�A—I’I˜a¨L�IÑ9Ô9Ñ9½fÀaÈÀV¹n¼nÒLÐLÐLÐLÐLÐLr-   c            
      ó"  — t          t          dz   dt          z
  ddgdt          z
  t          dz   dt          dz   gddt          z
  t          dz   dgdddt          dz   gg¦  «        } t          d¦  «        5  |                      t	          dd¦  «        ¦  «        t          t          dz   dt          z  z  gt          dz
  dt          z  z  gt          dz   dt          z  z  gdt          dz   z  gg¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   Tr   )r   r   r   r/   r   r    s    r"   Ú%test_issue_17247_expression_blowup_32r5   G   s[  € ÝÝ	
ˆQ‰�•A‘˜1 !Ð$Ø	
�Q‰•�A‘˜1�a !™eÐ$Ø�•A‘•q˜1‘u !Ð$Ø�A˜1�a !™eÐ$ð	&ñ 	'ô 	'€Aõ
 
�TÑ	Ô	ð ð Ø�yŠy�˜a ™œÑ$Ô$­Ý�!‰e�a�‘c‰]ˆOÝ�!‰e�a�‘c‰]ˆOÝ�!‰e�a�‘c‰]ˆOØ•A˜‘E‘ˆOð	0ñ )ô )ò ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á3BDÄDÄDc            	      óè  ‡‡— t          g d¢g d¢g d¢g¦  «        Št          ddg d¢¦  «        } ‰| z  Š‰                     ‰¦  «        }|| k    sJ ‚t          g d¢g d¢g d	¢g¦  «        Št          ddg d
¢¦  «        } ‰| z  Š‰                     ‰¦  «        }|| k    sJ ‚t          ddgddgddgg¦  «        Št          g d¢¦  «        Š‰                     ‰¦  «        t          ddg¦  «        k    sJ ‚t          g d¢¦  «        Št          t          ˆˆfd„¦  «         t          g d¢g d¢g d	¢g d¢g d¢g d¢g¦  «        Št          g d¢¦  «        } ‰| z  Š‰                     ‰¦  «        }|| k    sJ ‚t          g d¢g d¢g¦  «        Št          g d¢¦  «        } ‰| z  Št          t          ˆˆfd„¦  «         t          ddd„ ¦  «        Št          j        dd¦  «        Št          t          ˆˆfd„¦  «         d S )N©r(   é   é   ©r8   é   r(   ©é   r8   r;   r8   r   ©r8   é   r9   ©r   éÿÿÿÿr(   ©r9   é
   r?   ©r=   r8   r   ©rA   r(   r9   r(   r   )r8   r   r   )r8   r   r(   c                  ó.   •— ‰                       ‰¦  «        S ©N©r/   ©ÚAr0   s   €€r"   r,   ztest_LUsolve.<locals>.<lambda>g   s   ø€ ˜qŸyšy¨™|œ|€ r-   )r(   r   éüÿÿÿ)rA   r(   r   c                  ó.   •— ‰                       ‰¦  «        S rG   rH   rI   s   €€r"   r,   ztest_LUsolve.<locals>.<lambda>u   s   ø€ ¨¯	ª	°!©¬€ r-   r   c                 ó(   — | dk    rd| |z   dz   z  ndS )Nr8   r   r   © )ÚiÚjs     r"   r,   ztest_LUsolve.<locals>.<lambda>w   s   € ¨q°Aªv¨v ! Q q¡S¨¡U¡) )¸1€ r-   c                  ó.   •— ‰                       ‰¦  «        S rG   rH   rI   s   €€r"   r,   ztest_LUsolve.<locals>.<lambda>y   s   ø€ ¨Q¯YªY°q©\¬\€ r-   )r   r/   r   Ú
ValueErrorÚNotImplementedErrorÚzerosr   ©r   ÚsolnrJ   r0   s     @@r"   Útest_LUsolverW   T   sa  øø€ Ý�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Aõ 	ˆq�!�Y�Y�YÑÔ€AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9Ý�
�
�
Ø�
�
Ø�
�
ðñ 	ô 	€Aõ 	ˆq�!�Z�Z�ZÑ Ô €AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9Ý��A�˜˜A˜  A Ð'Ñ(Ô(€AÝˆyˆyˆyÑÔ€AØ�9Š9�Q‰<Œ<�6 1 a &™>œ>Ò)Ð)Ð)Ð)ÝˆyˆyˆyÑÔ€AÝ
�:Ð+Ð+Ð+Ð+Ð+Ñ,Ô,Ð,Ý�
�
�
Ø�
�
Ø�
�
Ø�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Aõ 	ˆzˆzˆzÑÔ€AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9Ý�
�
�
˜J˜J˜JÐ'Ñ(Ô(€AÝˆzˆzˆzÑÔ€AØ	ˆ!‰€AÝ
ÕÐ 4Ð 4Ð 4Ð 4Ð 4Ñ5Ô5Ð5åˆq�!Ð<Ð<Ñ=Ô=€AÝŒ�Q˜ÑÔ€AÝ
Õ#Ð%9Ð%9Ð%9Ð%9Ð%9Ñ:Ô:Ð:Ð:Ð:r-   c                  óÚ  — t          dd¬¦  «        \  } }}}t          dd¬¦  «        \  }}t          | |g||gg¦  «        }||                     t          ||g¦  «        ¦  «        z  }|d                              ¦   «         |k    sJ ‚|d         || dz  z  | | | dz  z  |z  |z   dz  z  | | dz  z  |z  |z   z  |z   z  || | dz  z  |z  |z   dz  z  | | dz  z  |z  |z   z  z   k    sJ ‚d S )Núa:4F)Úcommutativeúb:2)r   r   )r   r   rA   )r   r   r/   Úexpand)Úa0Úa1Úa2Úa3Úb0Úb1rJ   Úchecks           r"   Útest_LUsolve_noncommutativerd   |   s@  € Ý˜U°Ð6Ñ6Ô6�N€BˆˆB�Ý�U¨Ð.Ñ.Ô.�F€BˆÝ��R�˜2˜r˜(Ð#Ñ$Ô$€AØ�—	’	�& " b Ñ*Ô*Ñ+Ô+Ñ+€EØ�Œ;×ÒÑÔ 2Ò%Ð%Ð%Ð%ð �Œ;Ø
ˆ2�‰8‰�b�S˜2˜#˜b 2™h™, r™/¨BÑ.°"Ñ5Ñ5¸°s¸2À¹8±|ÀB±ÈÑ7KÑLÈrÑQÑRØ
ˆrˆc�"�r‘(‰l˜2‰o Ñ" bÑ)Ñ
)¨B¨3¨r°B©x©<¸©?¸RÑ+?Ñ
@ñ	Aòð ð ð ð ð r-   c                  ó"  — t          g d¢g d¢g d¢g¦  «        } t          ddg d¢¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          ddgddgd	d
gg¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          g d¢g d¢g d¢g¦  «        } t          ddg d¢¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          ddgddgddgg¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚d S )Nr7   r:   r<   r8   r   r>   r(   r   r9   r;   r@   rB   rD   rE   r?   r=   é	   rC   é   é   )r   ÚQRsolve)rJ   r   r0   rV   s       r"   Útest_QRsolverj   Š   sX  € Ý�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Aõ 	ˆq�!�Y�Y�YÑÔ€AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9Ý��A�˜˜A˜  A Ð'Ñ(Ô(€AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9å�
�
�
Ø�
�
Ø�
�
ðñ 	ô 	€Aõ 	ˆq�!�Z�Z�ZÑ Ô €AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9Ý��A�˜˜B˜ " b Ð*Ñ+Ô+€AØ	ˆ!‰€AØ�9Š9�Q‰<Œ<€DØ�1Š9ˆ9ˆ9ˆ9ˆ9ˆ9r-   c                  ó2   — t          t          d„ ¦  «         d S )Nc                  ón   — t          dg¦  «                             t          ddgddgg¦  «        ¦  «        S )Nr   r(   r8   r   )r   r/   rN   r-   r"   r,   ztest_errors.<locals>.<lambda>¤   s1   € �v q c™{œ{×2Ò2µ6¸A¸q¸6ÀAÀqÀ6Ð:JÑ3KÔ3KÑLÔL€ r-   )r   r   rN   r-   r"   Útest_errorsrm   £   s   € Ý
�:ÐLÐLÑMÔMÐMÐMÐMr-   c                  ó0  — t          g d¢g d¢g d¢g¦  «        } t          ddg d¢¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          g d¢g d¢g d	¢g¦  «        } t          ddg d
¢¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          d¦  «        } t          d¦  «        }| |z  }|                      |¦  «        }||k    sJ ‚t          ddt          z  fdt          z  dff¦  «        } t          d¦  «        }| |z  }|                      |¦  «        }t          |¦  «        |k    sJ ‚t          dt          z  dfdt          z   dff¦  «        } t          ddt          z  z   df¦  «        }| |z  }|                      |¦  «        }t          |¦  «        |k    sJ ‚t	          d¦  «        \  }}}}}t          ||f||ff¦  «        } t          ||f¦  «        }|                      |¦  «        }t          | |z  ¦  «        |k    sJ ‚d S )Nr7   r:   r<   r8   r   r>   r@   rB   rD   rE   ))r   r9   )r9   r   )r   éýÿÿÿrf   ro   r9   ©éþÿÿÿr   r(   rA   za00, a01, a11, b0, b1)r   r%   r   r   r   r
   )	rJ   r   r0   rV   Úa00Úa01Úa11ra   rb   s	            r"   Útest_cholesky_solveru   ¦   s^  € Ý�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Aõ 	ˆq�!�Y�Y�YÑÔ€AØ	ˆ!‰€AØ×Ò˜AÑÔ€DØ�1Š9ˆ9ˆ9ˆ9Ý�
�
�
Ø�
�
Ø�
�
ðñ 	ô 	€Aõ 	ˆq�!�Z�Z�ZÑ Ô €AØ	ˆ!‰€AØ×Ò˜AÑÔ€DØ�1Š9ˆ9ˆ9ˆ9ÝÐÑ Ô €AÝˆw‰Œ€AØ	ˆ!‰€AØ×Ò˜AÑÔ€DØ�1Š9ˆ9ˆ9ˆ9Ý��A•a‘C�˜2�a™4 ˜)Ð$Ñ%Ô%€AÝˆw‰Œ€AØ	ˆ!‰€AØ×Ò˜AÑÔ€DÝ�dÑÔ˜qÒ Ð Ð Ð Ý�•1‘�a�˜2¥™6 1˜+Ð&Ñ'Ô'€AÝ��A•a‘C‘˜ˆ}ÑÔ€AØ	ˆ!‰€AØ×Ò˜AÑÔ€DÝ�dÑÔ˜qÒ Ð Ð Ð Ý#Ð$;Ñ<Ô<Ñ€Cˆˆc�2�rÝ��c�
˜S #˜JÐ'Ñ(Ô(€AÝ��BˆxÑÔ€AØ	×Ò˜ÑÔ€AÝ�A�a‘C‰=Œ=˜AÒÐÐÐÐÐr-   c                  ó  ‡‡— t          g d¢g d¢g d¢g¦  «        Št          ddg d¢¦  «        } ‰| z  Š‰                     ‰¦  «        }|| k    sJ ‚t          g d¢g d¢g d	¢g¦  «        Št          ddg d
¢¦  «        } ‰| z  Š‰                     ‰¦  «        }|| k    sJ ‚t          ddt          z  fdt          z  dff¦  «        Št          d¦  «        } ‰| z  Š‰                     ‰¦  «        }t          |¦  «        | k    sJ ‚t          dt          z  dfdt          z   dff¦  «        Št          ddt          z  z   df¦  «        } ‰| z  Š‰                     ‰¦  «        }t          |¦  «        | k    sJ ‚t          d¦  «        Št          d¦  «        } ‰| z  Š‰                     ‰¦  «        }t          |¦  «        | k    sJ ‚t          g d¢g d¢g¦  «        Št          dgdgdgg¦  «        } ‰| z  Št	          t
          ˆˆfd„¦  «         d S )Nr7   r:   r<   r8   r   r>   r@   rB   rD   rE   rf   ro   r9   rp   r(   rA   ))rf   r8   )r8   rf   )r   r   )éûÿÿÿro   rK   )ro   iùÿÿÿr?   r=   r?   rq   c                  ó.   •— ‰                       ‰¦  «        S rG   )ÚLDLsolverI   s   €€r"   r,   ztest_LDLsolve.<locals>.<lambda>ñ   s   ø€ ¨¯
ª
°1©¬€ r-   )r   ry   r   r   r   rS   rU   s     @@r"   Útest_LDLsolverz   Ë   sA  øø€ Ý�	�	�	Ø�	�	Ø�	�	ðñ 	ô 	€Aõ 	ˆq�!�Y�Y�YÑÔ€AØ	ˆ!‰€AØ�:Š:�a‰=Œ=€DØ�1Š9ˆ9ˆ9ˆ9å�
�
�
Ø�
�
Ø�
�
ðñ 	ô 	€Aõ 	ˆq�!�Z�Z�ZÑ Ô €AØ	ˆ!‰€AØ�:Š:�a‰=Œ=€DØ�1Š9ˆ9ˆ9ˆ9å��A•a‘C�˜2�a™4 ˜)Ð$Ñ%Ô%€AÝˆw‰Œ€AØ	ˆ!‰€AØ�:Š:�a‰=Œ=€DÝ�dÑÔ˜qÒ Ð Ð Ð å�•1‘�a�˜2¥™6 1˜+Ð&Ñ'Ô'€AÝ��A•a‘C‘˜ˆ}ÑÔ€AØ	ˆ!‰€AØ�:Š:�a‰=Œ=€DÝ�dÑÔ˜qÒ Ð Ð Ð åÐÑ Ô €AÝˆv‰Œ€AØ	ˆA‰€AØ�:Š:�a‰=Œ=€DÝ�dÑÔ˜qÒ Ð Ð Ð å���˜k˜k˜kÐ*Ñ+Ô+€AÝ���a�S˜2˜$ÐÑ Ô €AØ	ˆA‰€AÝ
ÕÐ 5Ð 5Ð 5Ð 5Ð 5Ñ6Ô6Ð6Ð6Ð6r-   c                  óœ  — t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t	          ddgddgg¦  «        } t	          t
          t          gt          t
          gg¦  «        }t	          ddgdd	gg¦  «        }|                      |¦  «        |k    sJ ‚|                      |¦  «        |k    sJ ‚d S )
Nc                  óh   — t          ddg¦  «                             t          ddg¦  «        ¦  «        S ©Nr   r   ©r   Úlower_triangular_solverN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>÷   ó(   € •˜˜1�v‘”×5Ò5µf¸aÀ¸V±n´nÑEÔE€ r-   c                  ón   — t          ddgddgg¦  «                             t          dg¦  «        ¦  «        S r}   r~   rN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>ù   ó1   € •˜˜A˜  A Ð'Ñ(Ô(×?Ò?ÅÈÀsÁÄÑLÔL€ r-   c                  óx   — t          ddgddgg¦  «                             t          ddgddgg¦  «        ¦  «        S ©Nr(   r   r   r~   rN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>û   óC   € •˜˜A˜  A Ð'Ñ(Ô(×?Ò?Ý�Q˜�F˜Q ˜FÐ#Ñ$Ô$ñ&ô &€ r-   r   r   r   r=   r(   rf   )r   r   r   rR   r   r   r   r   ©rJ   ÚBÚCs      r"   Útest_lower_triangular_solver‰   ô   sï   € å
ÕØEÐEñGô Gð Gå
�:ØLÐLñNô Nð Nå
�:ð	&ð 	&ñ'ô 'ð 'õ 	��A�˜˜A˜ÐÑ Ô €AÝ••A���A˜ÐÑ Ô €AÝ��A�˜˜A˜ÐÑ Ô €Aà×#Ò# AÑ&Ô&¨!Ò+Ð+Ð+Ð+Ø×#Ò# AÑ&Ô&¨!Ò+Ð+Ð+Ð+Ð+Ð+r-   c                  óœ  — t          t          d„ ¦  «         t          t          d„ ¦  «         t          t          d„ ¦  «         t	          ddgddgg¦  «        } t	          t
          t          gt          t
          gg¦  «        }t	          ddgdd	gg¦  «        }|                      |¦  «        |k    sJ ‚|                      |¦  «        |k    sJ ‚d S )
Nc                  óh   — t          ddg¦  «                             t          ddg¦  «        ¦  «        S r}   ©r   Úupper_triangular_solverN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>	  r€   r-   c                  ón   — t          ddgddgg¦  «                             t          dg¦  «        ¦  «        S r}   rŒ   rN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>  r‚   r-   c                  óx   — t          ddgddgg¦  «                             t          ddgddgg¦  «        ¦  «        S r„   rŒ   rN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>  r…   r-   r   r   r(   r   r8   r=   )r   r   r   Ú	TypeErrorr   r   r   r�   r†   s      r"   Útest_upper_triangular_solver‘     sï   € å
ÕØEÐEñGô Gð Gå
�:ØLÐLñNô Nð Nå
�9ð	&ð 	&ñ'ô 'ð 'õ 	��A�˜˜A˜ÐÑ Ô €AÝ••A���A˜ÐÑ Ô €AÝ��A�˜˜A˜ÐÑ Ô €Aà×#Ò# AÑ&Ô&¨!Ò+Ð+Ð+Ð+Ø×#Ò# AÑ&Ô&¨!Ò+Ð+Ð+Ð+Ð+Ð+r-   c                  óP  ‡ ‡— t          t          d„ ¦  «         t          ddgddgg¦  «        dz  Š t          t          t          gt          t          gg¦  «        Š‰                      ‰¦  «        ‰dz  k    sJ ‚t          ddgddgg¦  «        Š t          t          ˆ ˆfd„¦  «         d S )Nc                  óf   — t          ddg¦  «                             t          dg¦  «        ¦  «        S )Nr   )r   Údiagonal_solverN   r-   r"   r,   z%test_diagonal_solve.<locals>.<lambda>  s&   € �f a¨ V™nœn×;Ò;½FÀAÀ3¹K¼KÑHÔH€ r-   r   r   r(   c                  ó.   •— ‰                       ‰¦  «        S rG   )r”   ©rJ   r‡   s   €€r"   r,   z%test_diagonal_solve.<locals>.<lambda>  s   ø€ ˜a×.Ò.¨qÑ1Ô1€ r-   )r   r�   r   r   r   r”   r–   s   @@r"   Útest_diagonal_solver—     s±   øø€ Ý
�9ÐHÐHÑIÔIÐIÝ��A�˜˜A˜ÐÑ Ô  Ñ"€AÝ••A���A˜ÐÑ Ô €AØ×Ò˜AÑÔ ! A¡#Ò%Ð%Ð%Ð%å��A�˜˜A˜ÐÑ Ô €AÝ
�9Ð1Ð1Ð1Ð1Ð1Ñ2Ô2Ð2Ð2Ð2r-   c                  óT  — t          ddgddgg¦  «        } t          ddg¦  «        }|                      |¦  «        |                      |¦  «        k    sJ ‚|                      |¦  «        |                      |¦  «        k    sJ ‚|                      |¦  «        t          t	          d¦  «        t	          d¦  «        g¦  «        k    sJ ‚| |                      ¦   «         z  |z  |k    sJ ‚t          g d	¢g d
¢g¦  «        }|                      |¦  «        |                      |¦  «        k    sJ ‚|                      |¦  «        |                      |¦  «        k    sJ ‚|                      |¦  «        t          g d¢g d¢g¦  «        dz  k    sJ ‚| |                      ¦   «         z  |z  |k    sJ ‚t          g d¢g d¢g¦  «        } t          ddg¦  «        }|                      |¦  «        }i }|                     t          ¦  «        D ]}|||j        <   Œ|t          |d         dz  |d         dz  z   |d         dz  z
  dz   g|d         dz  |d         dz  z   |d         dz  z
  dz   g|d          dz  |d         dz  z
  |d         dz  z   dz   gg¦  «        k    sJ ‚| |                      ¦   «         z  |z  |k    sJ ‚t          ddgddgddgg¦  «        } t          g d¢¦  «        }|                      |¦  «        t          ddg¦  «        k    sJ ‚| |                      ¦   «         z  |z  |k    sJ ‚d S )Nr   r9   r?   rf   rh   é   z-43/26z71/26)rh   r™   é   )é   é   é   )ißÿÿÿiÛÿÿÿi×ÿÿÿ)éE   éK   éQ   é   )r   r   r   )r   r   r   Úw0_0r8   Úw1_0Úw2_0r   r   )r8   r(   r   )	r   Ú
pinv_solver%   ry   r	   ÚpinvÚatomsr   Úname)rJ   r‡   ÚsolutionÚwÚss        r"   Útest_pinv_solver¬   !  sR  € å��A�˜˜A˜ÐÑ Ô €AÝ��BˆxÑÔ€AØ�<Š<˜‰?Œ?˜a×.Ò.¨qÑ1Ô1Ò1Ð1Ð1Ð1Ø�<Š<˜‰?Œ?˜aŸjšj¨™mœmÒ+Ð+Ð+Ð+Ø�<Š<˜‰?Œ?�f¥g¨hÑ&7Ô&7½ÀÑ9IÔ9IÐ%JÑKÔKÒKÐKÐKÐKØˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð å���˜l˜l˜lÐ+Ñ,Ô,€AØ�<Š<˜‰?Œ?˜a×.Ò.¨qÑ1Ô1Ò1Ð1Ð1Ð1Ø�<Š<˜‰?Œ?˜aŸjšj¨™mœmÒ+Ð+Ð+Ð+Ø�<Š<˜‰?Œ?�f o o o°|°|°|Ð%DÑEÔEÈÑJÒJÐJÐJÐJØˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð å�	�	�	˜9˜9˜9Ð%Ñ&Ô&€AÝ��1ˆv‰Œ€AØ�|Š|˜A‰Œ€HØ
€AØ�^Š^�FÑ#Ô#ð ð ˆàˆˆ!Œ&‰	ˆ	Ø•v  &¤	¨!¡¨a°¬i¸©kÑ 9¸A¸f¼IÀa¹KÑ GÈ!Ñ KÐLØ ! &¤	¨!¡¨a°¬i¸©kÑ 9¸A¸f¼IÀa¹KÑ GÈ!Ñ KÐLØ!" 6¤ 
¨1¡¨q°¬y¸©{Ñ :¸Q¸v¼YÀq¹[Ñ HÈ1Ñ LÐMðOñ Pô Pò Pð Pð Pð Pð ˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð å��A�˜˜A˜  A Ð'Ñ(Ô(€AÝˆyˆyˆyÑÔ€AØ�<Š<˜‰?Œ?�f a¨ V™nœnÒ,Ð,Ð,Ð,àˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð Ð Ð r-   c                  óÆ  — t          g d¢g d¢g¦  «        t          ddgddgg¦  «        t          ddgddgddg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 ‚Œm| D ]l}|                     d¬
¦  «        }||z  }||z  }t          ||z  ¦  «        |k    sJ ‚t          ||z  ¦  «        |k    sJ ‚|j        |k    sJ ‚|j        |k    sJ ‚Œmt          ddgddgg¦  «        }t          ddg¦  «        }|                     |¦  «        }|                     t          ¦  «                             ¦   «         }|j        dk    sJ ‚|t          d|g¦  «        k    sJ ‚||                     ¦   «         z  |z  |k    sJ ‚t          ddg¦  «        }|                     |¦  «        }|                     t          ¦  «                             ¦   «         }|j        dk    sJ ‚|t          d|g¦  «        k    sJ ‚||                     ¦   «         z  |z  |k    sJ ‚d S )N©r   r   r   )r(   r(   r(   r   r   r(   r   r8   r;   ÚRD)ÚmethodÚEDr£   )	r   r¦   r
   ÚHr¥   r§   r   Úpopr¨   )ÚAsrJ   ÚA_pinvÚAApÚApAr‡   r©   Úw1s           r"   Útest_pinv_rank_deficientr¹   B  s­  € å
�)�)�)˜Y˜Y˜YÐ'Ñ
(Ô
(Ý
�1�a�&˜1˜a˜&Ð!Ñ
"Ô
"Ý
�1�a�&˜1˜a˜& 1 a &Ð)Ñ
*Ô
*ð
,€Bð ð ð ˆØ—’˜t�Ñ$Ô$ˆØ�&‰jˆØ�q‰jˆÝ˜˜a™Ñ Ô  AÒ%Ð%Ð%Ð%Ý˜˜f™Ñ%Ô%¨Ò/Ð/Ð/Ð/ØŒu˜Š|ˆ|ˆ|ˆ|ØŒu˜Š|ˆ|ˆ|ˆ|ˆ|àð ð ˆØ—’˜t�Ñ$Ô$ˆØ�&‰jˆØ�q‰jˆÝ˜˜a™Ñ Ô  AÒ%Ð%Ð%Ð%Ý˜˜f™Ñ%Ô%¨Ò/Ð/Ð/Ð/ØŒu˜Š|ˆ|ˆ|ˆ|ØŒu˜Š|ˆ|ˆ|ˆ|ˆ|õ 	��A�˜˜A˜ÐÑ Ô €Aå��1ˆv‰Œ€AØ�|Š|˜A‰Œ€HØ	�Š�Ñ	Ô	×	#Ò	#Ñ	%Ô	%€BØŒ7�fÒÐÐÐØ•v˜q "˜g‘”Ò&Ð&Ð&Ð&Øˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð å��1ˆv‰Œ€AØ�|Š|˜A‰Œ€HØ	�Š�Ñ	Ô	×	#Ò	#Ñ	%Ô	%€BØŒ7�fÒÐÐÐØ•v˜q "˜g‘”Ò&Ð&Ð&Ð&Øˆq�vŠv‰xŒx‰<˜!Ñ˜qÒ Ð Ð Ð Ð Ð r-   c            
      ó  ‡
‡‡— t          g d¢g d¢g d¢g¦  «        Š
t          g d¢¦  «        Š‰
                     ‰¦  «        \  } }| t          dgdgdgg¦  «        k    sJ ‚|t          ddg ¦  «        k    sJ ‚t          d	¦  «        Š
t          g d
¢g d¢g d¢g¦  «        Š‰
                     ‰¦  «        \  } }| ‰k    sJ ‚|t          ddg ¦  «        k    sJ ‚t          g d¢g d¢g d¢g¦  «        Š
t          g d¢¦  «        Š‰
                     ‰d¬¦  «        \  } }}i }|                      t          ¦  «        D ]}|||j        <   Œ| t          |d         dz
  gd|d         z  dz   g|d         gg¦  «        k    sJ ‚|t          |d         gg¦  «        k    sJ ‚|dgk    sJ ‚t          g d¢g d¢g d¢g¦  «        Š
t          d	dgddgddgg¦  «        Š‰
                     ‰d¬¦  «        \  } }}i }|                      t          ¦  «        D ]}|||j        <   Œ| t          |d         dz
  |d         t          dd	¦  «        z
  gd|d         z  dz   d|d         z  t          dd	¦  «        z   g|d         |d         gg¦  «        k    sJ ‚|t          |d         |d         gg¦  «        k    sJ ‚|dgk    sJ ‚t          g d¢g d¢g d¢g¦  «        Š
t          g d¢¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          d|d         z  d	|d         z  z
  g|d         g|d         gg¦  «        k    sJ ‚|t          |d         g|d         gg¦  «        k    sJ ‚t          g d¢g d¢g d¢g¦  «        Š
t          g d¢¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          |d         g|d         g|d         gg¦  «        k    sJ ‚|t          |d         g|d         g|d         gg¦  «        k    sJ ‚t          g d¢g d¢g d¢g¦  «        Š
t          g d¢¦  «        Št          t          ˆ
ˆfd„¦  «         t          g d¢g d¢g d¢g d ¢g¦  «        Š
t          g d!¢¦  «        Š‰
                     ‰¦  «        \  } }| t          t          dd¦  «        gdgt          dd¦  «        gg¦  «        k    sJ ‚|t          ddg ¦  «        k    sJ ‚t          g d¢g d¢g d¢g d ¢g¦  «        Š
t          ddgddgddgddgg¦  «        Š‰
                     ‰¦  «        \  } }| t          t          dd¦  «        t          dd¦  «        gddgt          dd¦  «        t          dd¦  «        gg¦  «        k    sJ ‚|t          ddg ¦  «        k    sJ ‚t          g d¢g d¢g d¢g d ¢g¦  «        Š
t          g d"¢¦  «        Št          t          ˆ
ˆfd#„¦  «         t          g d¢g d¢g d¢g d ¢g¦  «        Š
t          ddgddgddgddgg¦  «        Št          t          ˆ
ˆfd$„¦  «         t          g d¢g d¢g d¢g d ¢g¦  «        Š
t          ddgddgddgddgg¦  «        Št          t          ˆ
ˆfd%„¦  «         t          g d¢g d&¢g d'¢g d ¢g¦  «        Š
t          g d"¢¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          d(|d         z  d)z   gdg|d         gg¦  «        k    sJ ‚|t          |d         gg¦  «        k    sJ ‚t          g d¢g d&¢g d'¢g d ¢g¦  «        Š
t          g d*¢¦  «        Št          t          ˆ
ˆfd+„¦  «         t          g d
¢g d¢g d,¢g¦  «        Š
t          g d-¢¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          d|d         z  dz
  gd(|d         z  dz   gdg|d         gg¦  «        k    sJ ‚|t          |d         gg¦  «        k    sJ ‚t          g d
¢g d¢g d.¢g¦  «        Š
t          g d/¢¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          |d         d|d         z  z   t          j
        z   gd|d         z  d	|d         z  z
  t          dd¦  «        z
  g|d         g|d         gg¦  «        k    sJ ‚|t          |d         g|d         gg¦  «        k    sJ ‚t          d0¦  «        \  }}}}t          g d1¢ddddd|gg¦  «        }	|	d d …d d…f         Š
|	d d …dd …f         Š‰
                     ‰¦  «        \  } }|t          d	d|||g¦  «        k    sJ ‚| t          d)d|d|||g¦  «        k    sJ ‚t          g d
¢g d¢g d.¢g¦  «        Š
t          g d-¢¦  «        Št          t          ˆ
ˆfd2„¦  «         t          ddgddgg¦  «        Š
t          ddg¦  «        Š‰
                     ‰¦  «        \  } }| t          ddg¦  «        k    sJ ‚|t          ddg ¦  «        k    sJ ‚| j        t          k    sJ ‚|j        t          k    sJ ‚t          g d3¢g d"¢g¦  «        Š
t          ddg¦  «        Š‰
                     ‰¦  «        \  } }i }|                      t          ¦  «        D ]}|||j        <   Œ| t          dg|d         g|d         gdgg¦  «        k    sJ ‚|t          |d         g|d         gg¦  «        k    sJ ‚d S )4N)r   r(   r8   )r   r9   r;   )r?   r=   rC   )r8   r;   rf   rA   r(   r   r   r8   )r   r(   r8   r   )r9   r;   r?   r=   )rf   rC   rg   rh   r   )r?   r=   rf   T)ÚfreevarÚtau0rq   r;   r=   rf   rh   Útau1)r(   r   r;   )r   r   r   Útau2)r   r   r   c                  ó.   •— ‰                       ‰¦  «        S rG   ©r   rI   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>­  ó   ø€ ˜q×3Ò3°AÑ6Ô6€ r-   )r   r9   r8   )r(   r   r;   )r   r?   rf   )r   r   r8   )r   r   r   r   )r   r   r   r   c                  ó.   •— ‰                       ‰¦  «        S rG   rÀ   rI   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>À  rÁ   r-   c                  ó.   •— ‰                       ‰¦  «        S rG   rÀ   r–   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>Å  rÁ   r-   c                  ó.   •— ‰                       ‰¦  «        S rG   rÀ   r–   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>Ê  rÁ   r-   )r(   rC   r;   )r8   r›   rf   ro   r9   )r   r   r   r   c                  ó.   •— ‰                       ‰¦  «        S rG   rÀ   rI   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>Ù  rÁ   r-   )rf   rC   r   rh   r®   )r(   r   r;   r=   )r   r   r   z_tau0 _tau1 _tau2 tau1)r   r   r   r   r   r   c                  ó.   •— ‰                       ‰¦  «        S rG   rÀ   rI   s   €€r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>ý  rÁ   r-   )r   r   r   r   )r   r   r   r§   r   r¨   r   r   rR   r   ÚHalfr   r   Ú	__class__r   )ÚsolÚparamsr»   rª   r«   Úx0Úx1Úx2Ú_x0r!   rJ   r‡   r0   s             @@@r"   Útest_gauss_jordan_solverÏ   k  sÍ  øøø€ õ 	�	�	�	˜9˜9˜9 j j jÐ1Ñ2Ô2€AÝˆyˆyˆyÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ•&˜2˜$   a SÐ)Ñ*Ô*Ò*Ð*Ð*Ð*Ø•V˜A˜q "Ñ%Ô%Ò%Ð%Ð%Ð%õ 	ˆA‰Œ€AÝ���˜l˜l˜l¨O¨O¨OÐ<Ñ=Ô=€AØ×&Ò& qÑ)Ô)�K€CˆØ�!Š8ˆ8ˆ8ˆ8Ø•V˜A˜q "Ñ%Ô%Ò%Ð%Ð%Ð%õ 	�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AÝˆyˆyˆyÑÔ€AØ×/Ò/°¸4Ð/Ñ@Ô@Ñ€Cˆ�Ø
€AØ�YŠY•vÑÔð ð ˆàˆˆ!Œ&‰	ˆ	Ø•&˜1˜Vœ9 q™=˜/¨B¨q°¬y©L¸1Ñ,<Ð+=ÀÀ&Ä	¸{ÐKÑLÔLÒLÐLÐLÐLØ•V˜a œi˜[˜MÑ*Ô*Ò*Ð*Ð*Ð*Ø�q�cŠ>ˆ>ˆ>ˆ>õ 	�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AÝ��A�˜˜A˜  B Ð(Ñ)Ô)€AØ×/Ò/°¸4Ð/Ñ@Ô@Ñ€Cˆ�Ø
€AØ�YŠY•vÑÔð ð ˆàˆˆ!Œ&‰	ˆ	Ø•&˜1˜Vœ9 q™=¨!¨F¬)µh¸qÀ!±n´nÑ*DÐEØ˜a œi™<¨!Ñ+¨R°°&´	©\½HÀQÈ¹N¼NÑ-JÐKØ˜Vœ9 a¨¤iÐ0ð3ñ 4ô 4ò 4ð 4ð 4ð 4ð •V˜a œi¨¨6¬Ð3Ð4Ñ5Ô5Ò5Ð5Ð5Ð5Ø�q�cŠ>ˆ>ˆ>ˆ>õ 	�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AÝˆyˆyˆyÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜2˜a œi™<¨!¨A¨f¬I©+Ñ5Ð6Ø˜Fœ)˜ q¨¤y kð3ñ 4ô 4ò 4ð 4ð 4ð 4à•V˜a œi˜[¨1¨V¬9¨+Ð6Ñ7Ô7Ò7Ð7Ð7Ð7õ 	�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AÝˆyˆyˆyÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜1˜Vœ9˜+¨¨&¬	 {°Q°v´Y°KÐ@ÑAÔAÒAÐAÐAÐAØ•V˜a œi˜[¨1¨V¬9¨+¸¸&¼	°{ÐCÑDÔDÒDÐDÐDÐDõ 	�	�	�	˜9˜9˜9 i i iÐ0Ñ1Ô1€AÝˆyˆyˆyÑÔ€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AÝˆ|ˆ|ˆ|ÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ•&�8 B¨™?œ?Ð+¨a¨Sµ8¸A¸q±>´>Ð2BÐCÑDÔDÒDÐDÐDÐDØ•V˜A˜q "Ñ%Ô%Ò%Ð%Ð%Ð%õ 	�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AÝ��1�˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€AØ×&Ò& qÑ)Ô)�K€CˆØ•&�8 B¨™?œ?­H°R¸©O¬OÐ<¸qÀ!¸fÅxÐPQÐSTÁ~Ä~ÕW_Ð`aÐcdÑWeÔWeÐFfÐgÑhÔhÒhÐhÐhÐhØ•V˜A˜q "Ñ%Ô%Ò%Ð%Ð%Ð%õ 	�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AÝˆ|ˆ|ˆ|ÑÔ€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AÝ��1�˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	�	�	�	˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€AÝ��1�˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	�	�	�	˜:˜:˜: z z z°9°9°9Ð=Ñ>Ô>€AÝˆ|ˆ|ˆ|ÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜2˜a œi™<¨!Ñ+Ð,¨r¨d°Q°v´Y°KÐ@ÑAÔAÒAÐAÐAÐAØ•V˜a œi˜[˜MÑ*Ô*Ò*Ð*Ð*Ð*õ 	�	�	�	˜:˜:˜: z z z°9°9°9Ð=Ñ>Ô>€AÝˆ|ˆ|ˆ|ÑÔ€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	���˜l˜l˜l¨N¨N¨NÐ;Ñ<Ô<€AÝˆyˆyˆyÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜1˜Q˜vœY™;¨™?Ð+¨b°°6´©l¸QÑ.>Ð-?À!ÀØ˜Fœ)˜ð&ñ 'ô 'ò 'ð 'ð 'ð 'à•V˜a œi˜[˜MÑ*Ô*Ò*Ð*Ð*Ð*õ 	���˜l˜l˜l¨L¨L¨LÐ9Ñ:Ô:€AÝˆyˆyˆyÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜1˜Vœ9 q¨¨6¬¡{Ñ2µQ´VÑ;Ð<Ø˜Q˜vœY™,¨¨1¨V¬9©Ñ4µxÀÀ1±~´~ÑEÐFØ˜Fœ)˜ q¨¤y kð3ñ 4ô 4ò 4ð 4ð 4ð 4ð •V˜a œi˜[¨1¨V¬9¨+Ð6Ñ7Ô7Ò7Ð7Ð7Ð7åÐ6Ñ7Ô7�O€BˆˆB�ÝÐ"Ð"Ð" Q¨¨1¨a°°CÐ$8Ð9Ñ:Ô:€AØ	ˆ!ˆ!ˆ!ˆSˆbˆSˆ&Œ	€AØ	ˆ!ˆ!ˆ!ˆRˆSˆSˆ&Œ	€AØ×&Ò& qÑ)Ô)�K€CˆØ•V˜A˜q 2 r¨2 ,Ñ/Ô/Ò/Ð/Ð/Ð/Ø•&˜˜A  A r¨3°Ð3Ñ4Ô4Ò4Ð4Ð4Ð4õ 	���˜l˜l˜l¨L¨L¨LÐ9Ñ:Ô:€AÝˆyˆyˆyÑÔ€AÝ
�:Ð6Ð6Ð6Ð6Ð6Ñ7Ô7Ð7õ 	˜!˜Q˜ ! Q Ð(Ñ)Ô)€AÝ˜˜A˜ÑÔ€AØ×&Ò& qÑ)Ô)�K€CˆØ•/ 1 a &Ñ)Ô)Ò)Ð)Ð)Ð)Ø•_ Q¨¨2Ñ.Ô.Ò.Ð.Ð.Ð.ØŒ=Õ0Ò0Ð0Ð0Ð0ØÔÕ3Ò3Ð3Ð3Ð3õ 	���˜l˜l˜lÐ+Ñ,Ô,€AÝ��1ˆv‰Œ€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•&˜1˜#  &¤	˜{¨Q¨v¬Y¨K¸!¸Ð=Ñ>Ô>Ò>Ð>Ð>Ð>Ø•V˜a œi˜[¨1¨V¬9¨+Ð6Ñ7Ô7Ò7Ð7Ð7Ð7Ð7Ð7r-   c                  óð  — t          g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          g d	¢¦  «        }|                      |¦  «        \  }}i }|                     t          ¦  «        D ]}|||j        <   Œ|t          |d
         g|d         g|d         g|d         g|d         g|d         gg¦  «        k    sJ ‚|t          dd|d         z  z
  g|d         gdd|d
         z  z
  |d         z   g|d
         g|d         |d         z   gd|d         z  d|d         z  z
  d|d         z  z
  gdd|d         z  z
  g|d         g|d         g|d         g|d         gdd|d         z  z
  g|d         gdgg¦  «        k    sJ ‚ddlm}m} t          g d¢dddddddd| g	dddddddd|g	g¦  «        } t          t          t          | ¦  «        ¦  «        d         ¦  «        }t          d¦  «        \  }	}
}}}|t          | |z
  |	z
  |z   |z   dz   g||
z
  |z
  |z
  g|	g|
g||z
  |z
  |z
  g|g|g|gg¦  «        k    sJ ‚| d d …d d…f         |z  | d d …df         z
  }|t          dgdgdgg¦  «        k    sJ ‚d S )N)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   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   )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   r   r   r   r   r   r   r   )r   r(   r   r   r   r   r   r(   r¼   r½   r¾   Útau3Útau4Útau5r   rA   r   )rP   Úf)	r   r   r   r   r   r   r   r   r   ztau:5)r   r   r§   r   r¨   Ú	sympy.abcrP   rÔ   Úlistr   r   )rJ   r‡   rÉ   rÊ   rª   r«   rP   rÔ   Úsol_1r¼   r½   r¾   rÑ   rÒ   Úsol_2s                  r"   Ú4test_linsolve_underdetermined_AND_gauss_jordan_solverÙ     s‹  € åÐ:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:Ø:Ð:Ð:ð<ñ 	=ô 	=€Aõ 
Ð(Ð(Ð(Ñ	)Ô	)€AØ×&Ò& qÑ)Ô)�K€CˆØ
€AØ�YŠY•vÑÔð ð ˆØˆˆ!Œ&‰	ˆ	Ø•V˜a œi˜[¨1¨V¬9¨+¸¸&¼	°{Ø œi˜[¨1¨V¬9¨+¸¸&¼	°{ðDñ Eô Eò Eð Eð Eð Eà•&˜1˜q  6¤™{™?Ð+Ø˜Vœ9˜+Ø˜q  6¤™{™?¨Q¨v¬YÑ6Ð7Ø˜Vœ9˜+Ø˜Vœ9 q¨¤yÑ0Ð1Ø˜a œi™<¨!¨A¨f¬I©+Ñ5¸¸!¸F¼)¹ÑCÐDØ˜q  6¤™{™?Ð+Ø˜Vœ9˜+Ø˜Vœ9˜+Ø˜Vœ9˜+Ø˜Vœ9˜+Ø˜q  6¤™{™?Ð+Ø˜Vœ9˜+Ø˜#ðñ  ô  ò  ð  ð  ð  ð ÐÐÐÐÐÐÐåØ$Ð$Ð$ØˆˆAˆr�1�b˜!˜R ! Ð$ØˆˆA��1�q˜!˜a !Ð$ðñ 	ô 	€Aõ ••h˜q‘k”kÑ"Ô" 1Ô%Ñ
&Ô
&€Eå#*¨7Ñ#3Ô#3Ñ €Dˆ$��d˜Dà•F˜a˜R !™V d™]¨TÑ1°DÑ8¸1Ñ<Ð=Ø˜t™8 d™?¨TÑ1Ð2Ø˜&Ø˜&Ø˜t™8 d™?¨TÑ1Ð2Ø˜&Ø˜&Ø˜&ð"ñ #ô #ò #ð #ð #ð #ð ˆaˆaˆa��2�ˆgŒK˜%Ñ ! A A A r E¤)Ñ+€EØ•F˜Q˜C !  q c˜?Ñ+Ô+Ò+Ð+Ð+Ð+Ð+Ð+r-   Ú
det_methodÚbirdÚlaplacezM, rhsr7   r:   r<   r8   r   r>   r(   r   r9   r;   rY   r[   c                 óÀ   — t          |                     || ¬¦  «        |                     |¦  «        z
  ¦  «        t          j        |j        |j        ¦  «        k    sJ ‚d S ©N)rÚ   )r
   Úcramer_solver/   r   rT   ÚrowsÚcols)rÚ   r!   Úrhss      r"   Útest_cramer_solverã   M  sc   € õ �A—N’N 3°:�NÑ>Ô>ÀÇÂÈ3ÁÄÑOñ ô Ýœ a¤f¨c¬hÑ7Ô7ò8ð 8ð 8ð 8ð 8ð 8r-   zdet_method, errorc                 ó‚   ‡ ‡‡— t          g d¢g d¢g¦  «        Št          ddg¦  «        Št          |ˆˆˆ fd„¦  «         d S )Nr@   rB   rq   r›   c                  ó2   •— ‰                       ‰‰¬¦  «        S rÞ   )rß   )rJ   r0   rÚ   s   €€€r"   r,   z*test_cramer_solve_errors.<locals>.<lambda>_  s   ø€ ˜!Ÿ.š.¨°z˜.ÑBÔB€ r-   )r   r   )rÚ   ÚerrorrJ   r0   s   ` @@r"   Útest_cramer_solve_errorsrç   Y  sX   øøø€ õ 	�
�
�
˜J˜J˜JÐ'Ñ(Ô(€AÝ��BˆxÑÔ€AÝ
ˆ5ÐBÐBÐBÐBÐBÐBÑCÔCÐCÐCÐCr-   c                  óä   ‡ ‡— t          ddgddgg¦  «        Š t          dgdgg¦  «        Št          t          ˆ ˆfd„¦  «         t          dgdgg¦  «        Št          t          ˆ ˆfd„¦  «         d S )Nr   r(   r   r8   c                  ó.   •— ‰                       ‰¦  «        S rG   ©ÚsolverI   s   €€r"   r,   ztest_solve.<locals>.<lambda>e  ó   ø€ ˜qŸwšw q™zœz€ r-   r=   c                  ó.   •— ‰                       ‰¦  «        S rG   rê   rI   s   €€r"   r,   ztest_solve.<locals>.<lambda>g  rì   r-   )r   r   rR   rI   s   @@r"   Ú
test_solverî   b  s‡   øø€ Ý��1�˜˜!�uˆ~ÑÔ€AÝ���a�SˆzÑÔ€AÝ
�:Ð)Ð)Ð)Ð)Ð)Ñ*Ô*Ð*Ý�!��q�cˆ{ÑÔ€AÝ
�:Ð)Ð)Ð)Ð)Ð)Ñ*Ô*Ð*Ð*Ð*r-   );ÚpytestÚsympy.core.functionr   Úsympy.core.numbersr   r   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Úsympy.core.sympifyr	   Úsympy.simplify.simplifyr
   Úsympy.matrices.exceptionsr   r   Úsympy.matricesr   r   r   r   r   r   Úsympy.matrices.determinantr   Úsympy.testing.pytestr   r   Úsympy.polys.matrices.exceptionsr   Úsympy.solvers.solvesetr   rÕ   r   r   r#   r&   r3   r5   rW   rd   rj   rm   ru   rz   r‰   r‘   r—   r¬   r¹   rÏ   rÙ   ÚmarkÚparametrizerã   rç   rî   rN   r-   r"   ú<module>rþ      s÷  ðØ €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø "Ð "Ð "Ð "Ð "Ð "Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø &Ð &Ð &Ð &Ð &Ð &Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø HÐ HÐ HÐ HÐ HÐ HÐ HÐ HðKð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kð Kà 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø >Ð >Ð >Ð >Ð >Ð >Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ð Ð ð@ð @ð @ðmð mð mð8	Mð 	Mð 	Mðð ð ð%;ð %;ð %;ðPð ð ðð ð ð2Nð Nð Nð"ð "ð "ðJ&7ð &7ð &7ðR,ð ,ð ,ð$,ð ,ð ,ð$3ð 3ð 3ð!ð !ð !ðB'!ð '!ð '!ðRe8ð e8ð e8ðP7,ð 7,ð 7,ðt „×Ò˜¨°	Ð':Ñ;Ô;Ø„×Ò˜Ø€VˆYˆYˆY˜	˜	˜	 9 9 9Ð-Ñ.Ô.°°°q¸!¸Y¸Y¸YÑ0GÔ0GÐHØ€VˆYˆYˆY˜	˜	˜	 9 9 9Ð-Ñ.Ô.Ø€Vˆa�ˆV�a˜�V˜a ˜VÐ$Ñ%Ô%ð'à€VˆAˆq�'�'˜%‘.”.Ñ!Ô! 6 6¨!¨Q°°¸±´Ñ#?Ô#?Ð@ð	$ñ ô ð8ð 8ñô ñ <Ô;ð8ð
 „×ÒÐ,Øˆ\Ð˜\Ð+?Ð@ð/Bñ Cô CðDð DñCô CðDð+ð +ð +ð +ð +r-   