
    sgT                        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 Z4e jj                  jm                  d d!d"g      e jj                  jm                  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
d/            fg      d0               Z7e jj                  jm                  d1d!efeefg      d2        Z8d3 Z9y)4    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                      t        t        d            } t        d      5  | j                  t	        dd            t        t        d            t        ddg       fk(  sJ 	 d d d        y # 1 sw Y   y xY w)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    T/var/www/html/venv/lib/python3.12/site-packages/sympy/matrices/tests/test_solvers.py%test_issue_17247_expression_blowup_29r#      s    q c d 	eA
 
T	 @##DAJ/F1 >k <l 5m ouuvxy{}n~	4@ @ 	@ @@ @ @s   A A**A3c                      t        t        d            } t        d      5  | j                  t	        dd            t        t        d            k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   Tr   r   r   )r   r   r   cholesky_solver   r    s    r"   %test_issue_17247_expression_blowup_30r&      sz    q c d 	eA
 
T	 mQ
+va 9k 7l 0m m 	m mm m ms   3AA&c                  r   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      }|| j                  ||      z
  t        ddg      k(  sJ y )Nr      r   c                 *    | j                         rdS dS )NFT)_random)es    r"   <lambda>z)test_LUsolve_iszerofunc.<locals>.<lambda>@   s    aiikU t     )
iszerofunc)r   r   LUsolve)r!   bis_zero_funcx_exps       r"   test_LUsolve_iszerofuncr3   ;   s     	!a%!q!taczA~.2QF;<A1vA;LAaC!adUQqS[AaC!83a7::A=>?EAIIaLI99faVn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  | j                  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        y # 1 sw Y   y xY w)Nr   r   Tr   )r   r   r   r/   r   r    s    r"   %test_issue_17247_expression_blowup_32r5   G   s    	
QA1!$	
QA1a!e$Aq1u!$A1a!e$	& 	'A
 
T	 yya$!eac]O!eac]O!eac]OAEO	0 )  	   s   #A/CC%c            	      :   t        g dg dg dg      t        ddg d      } | z  j                        }|| k(  sJ t        g dg dg d	g      t        ddg d
      } | z  j                        }|| k(  sJ t        ddgddgddgg      t        g d      j                        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  j                        }|| 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       y )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                  &     j                        S Nr/   Ar0   s   r"   r,   ztest_LUsolve.<locals>.<lambda>g   s    qyy| r-   )r(   r   )rA   r(   r   c                  &     j                        S rG   rH   rI   s   r"   r,   ztest_LUsolve.<locals>.<lambda>u   s    		! r-   r   c                 &    | dk7  rd| |z   dz   z  S dS )Nr8   r   r    )ijs     r"   r,   ztest_LUsolve.<locals>.<lambda>w   s    qAv!QqSU) 1 r-   c                  &     j                        S rG   rH   rI   s   r"   r,   ztest_LUsolve.<locals>.<lambda>y   s    QYYq\ r-   )r   r/   r   
ValueErrorNotImplementedErrorzerosr   r   solnrJ   r0   s     @@r"   test_LUsolverW   T   s   	 	A 	q!YA	!A99Q<D199
 	A 	q!Z A	!A99Q<D199AAA'(AyA99Q<61a&>)))yA
:+,
 	A 	zA	!A99Q<D199
J'(AzA	!A
 45q!<=AQA
#%9:r-   c                     t        g dg dg dg      } t        ddg d      }| |z  }| j                  |      }||k(  sJ t        ddgddgd	d
gg      }| |z  }| j                  |      }||k(  sJ t        g dg dg dg      } t        ddg d      }| |z  }| j                  |      }||k(  sJ t        ddgddgddgg      }| |z  }| j                  |      }||k(  sJ y )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_QRsolver]   |   s   	 	A 	q!YA	!A99Q<D199AAA'(A	!A99Q<D199
 	A 	q!Z A	!A99Q<D199AB"b*+A	!A99Q<D199r-   c                  &    t        t        d        y )Nc                  V    t        dg      j                  t        ddgddgg            S )Nr   r(   r8   r   )r   r/   rN   r-   r"   r,   ztest_errors.<locals>.<lambda>   s)    vqc{226Aq6Aq6:J3KL r-   )r   r   rN   r-   r"   test_errorsr`      s    
:LMr-   c                  h   t        g dg dg dg      } t        ddg d      }| |z  }| j                  |      }||k(  sJ t        g dg dg d	g      } t        ddg d
      }| |z  }| j                  |      }||k(  sJ t        d      } t        d      }| |z  }| j                  |      }||k(  sJ t        ddt        z  fdt        z  dff      } t        d      }| |z  }| j                  |      }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  }| j                  |      }t        |      |k(  sJ t	        d      \  }}}}}t        ||f||ff      } t        ||f      }| j                  |      }t        | |z        |k(  sJ y )Nr7   r:   r<   r8   r   r>   r@   rB   rD   rE   ))r   r9   )r9   r   )r   rY   rb   r9   r   r(   rA   za00, a01, a11, b0, b1)r   r%   r   r   r   r
   )	rJ   r   r0   rV   a00a01a11b0b1s	            r"   test_cholesky_solverj      s   	 	A 	q!YA	!AAD199
 	A 	q!Z A	!AAD199 AwA	!AAD199AaC2a4)$%AwA	!AADdq   1a261+&'AAaC}A	!AADdq   #$;<Cc2rc
S#J'(ABxA	AAaC=Ar-   c                  N   t        g dg dg dg      t        ddg d      } | z  j                        }|| k(  sJ t        g dg dg d	g      t        ddg d
      } | z  j                        }|| k(  sJ t        ddt        z  fdt        z  dff      t        d      } | z  j                        }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  j                        }t        |      | k(  sJ t        d      t        d      } | z  j                        }t        |      | k(  sJ t        g dg dg      t        dgdgdgg      } | z  t	        t
        fd       y )Nr7   r:   r<   r8   r   r>   r@   rB   rD   rE   rY   rb   r9   rc   r(   rA   ))rY   r8   )r8   rY   )r   r   )rb   rK   )rb   ir?   r=   r?   rd   c                  &     j                        S rG   )LDLsolverI   s   r"   r,   ztest_LDLsolve.<locals>.<lambda>   s    

1 r-   )r   rn   r   r   r   rS   rU   s     @@r"   test_LDLsolvero      s   	 	A 	q!YA	!A::a=D199
 	A 	q!Z A	!A::a=D199AaC2a4)$%AwA	!A::a=Ddq   1a261+&'AAaC}A	!A::a=Ddq    AvA	AA::a=Ddq   k*+AaS2$ A	AA
 56r-   c                  H   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      }| j                  |      |k(  sJ | j                  |      |k(  sJ y )
Nc                  P    t        ddg      j                  t        ddg            S Nr   r   r   lower_triangular_solverN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>   !    1v55faVnE r-   c                  V    t        ddgddgg      j                  t        dg            S rr   rs   rN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>   )    AA'(??sL r-   c                  `    t        ddgddgg      j                  t        ddgddgg            S Nr(   r   r   rs   rN   r-   r"   r,   z-test_lower_triangular_solve.<locals>.<lambda>   8    AA'(??QFQF#$& r-   r   r   r   r=   r(   rY   )r   r   r   rR   r   r   r   rt   rJ   BCs      r"   test_lower_triangular_solver~      s    
EG
:LN
:	&' 	AA AAA AAA A##A&!+++##A&!+++r-   c                  H   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      }| j                  |      |k(  sJ | j                  |      |k(  sJ y )
Nc                  P    t        ddg      j                  t        ddg            S rr   r   upper_triangular_solverN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>   ru   r-   c                  V    t        ddgddgg      j                  t        dg            S rr   r   rN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>   rw   r-   c                  `    t        ddgddgg      j                  t        ddgddgg            S ry   r   rN   r-   r"   r,   z-test_upper_triangular_solve.<locals>.<lambda>   rz   r-   r   r   r(   r   r8   r=   )r   r   r   	TypeErrorr   r   r   r   r{   s      r"   test_upper_triangular_solver      s    
EG
:LN
9	&' 	AA AAA AAA A##A&!+++##A&!+++r-   c                      t        t        d        t        ddgddgg      dz   t        t        t        gt        t        gg       j                        dz  k(  sJ t        ddgddgg       t        t         fd       y )Nc                  N    t        ddg      j                  t        dg            S )Nr   )r   diagonal_solverN   r-   r"   r,   z%test_diagonal_solve.<locals>.<lambda>  s    faVn;;FA3KH r-   r   r   r(   c                  &     j                        S rG   )r   rJ   r|   s   r"   r,   z%test_diagonal_solve.<locals>.<lambda>  s    a..q1 r-   )r   r   r   r   r   r   r   s   @@r"   test_diagonal_solver   
  s    
9HIAA "AAA AA!A#%%%AA A
912r-   c                      t        ddgddgg      } t        ddg      }| j                  |      | j                  |      k(  sJ | j                  |      | j                  |      k(  sJ | j                  |      t        t	        d      t	        d      g      k(  sJ | | j                         z  |z  |k(  sJ t        g d	g d
g      }| j                  |      | j                  |      k(  sJ | j                  |      | j                  |      k(  sJ | j                  |      t        g dg dg      dz  k(  sJ | | j                         z  |z  |k(  sJ t        g dg dg      } t        ddg      }| j                  |      }i }|j                  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 | | j                         z  |z  |k(  sJ t        ddgddgddgg      } t        g d      }| j                  |      t        ddg      k(  sJ | | j                         z  |z  |k7  sJ y )Nr   r9   r?   rY   r[      z-43/26z71/26)r[   r      )         )iii)E   K   Q      )r   r   r   )r   r   r   w0_0r8   w1_0w2_0r   r   )r8   r(   r   )	r   
pinv_solver%   rn   r	   pinvatomsr   name)rJ   r|   solutionwss        r"   test_pinv_solver     s   AA ABxA<<?a..q1111<<?ajjm+++<<?fgh&79I%JKKKKqvvx<!q   l+,A<<?a..q1111<<?ajjm+++<<?fo|%DEJJJJqvvx<!q   	9%&A1vA||AH
A^^F# !&&	 v&	!aik 9AfIaK G! KL !&	!aik 9AfIaK G! KL!"6
1qy{ :QvYq[ H1 LMO P P P P qvvx<!q   AAA'(AyA<<?faVn,,,qvvx<!q   r-   c                  8   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 ]f  }|j                  d	
      }||z  }||z  }t        ||z        |k(  sJ t        ||z        |k(  sJ |j                  |k(  sJ |j                  |k(  rfJ  | D ]f  }|j                  d
      }||z  }||z  }t        ||z        |k(  sJ t        ||z        |k(  sJ |j                  |k(  sJ |j                  |k(  rfJ  t        ddgddgg      }t        ddg      }|j	                  |      }|j                  t              j                         }|j                  dk(  sJ |t        d|g      k(  sJ ||j                         z  |z  |k(  sJ t        ddg      }|j	                  |      }|j                  t              j                         }|j                  dk(  sJ |t        d|g      k(  sJ ||j                         z  |z  |k7  sJ y )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   4  sM   
)Y'
(
1a&1a&!
"
1a&1a&1a&)
*
,B  t$&jqja A%%%f%///uu||uu||  t$&jqja A%%%f%///uu||uu|| 	AA A1vA||AH			#	#	%B77fvq"g&&&qvvx<!q   1vA||AH			#	#	%B77fvq"g&&&qvvx<!q   r-   c            
        
 t        g dg dg dg      
t        g d      
j                        \  } }| 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      
j                        \  } }| k(  sJ |t        ddg       k(  sJ t        g dg dg dg      
t        g d      
j                  d      \  } }}i }| j                  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      
j                  d      \  } }}i }| j                  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      
j                        \  } }i }| j                  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      
j                        \  } }i }| j                  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!      
j                        \  } }| 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      
j                        \  } }| 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"      
j                        \  } }i }| j                  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-      
j                        \  } }i }| j                  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/      
j                        \  } }i }| j                  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   
j                        \  } }|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      
j                        \  } }| 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      
j                        \  } }i }| j                  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 y )4N)r   r(   r8   )r   r9   r;   )r?   r=   rC   )r8   r;   rY   rA   r(   r   r   r8   )r   r(   r8   r   )r9   r;   r?   r=   )rY   rC   rZ   r[   r   )r?   r=   rY   T)freevartau0rd   r;   r=   rY   r[   tau1)r(   r   r;   )r   r   r   tau2)r   r   r   c                  &     j                        S rG   r   rI   s   r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>      q33A6 r-   )r   r9   r8   )r(   r   r;   )r   r?   rY   )r   r   r8   )r   r   r   r   )r   r   r   r   c                  &     j                        S rG   r   rI   s   r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r-   c                  &     j                        S rG   r   r   s   r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r-   c                  &     j                        S rG   r   r   s   r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r-   )r(   rC   r;   )r8   r   rY   rb   r9   )r   r   r   r   c                  &     j                        S rG   r   rI   s   r"   r,   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r-   )rY   rC   r   r[   r   )r(   r   r;   r=   )r   r   r   z_tau0 _tau1 _tau2 tau1)r   r   r   r   r   r   c                  &     j                        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   ]  s
    		9j12AyA&&q)KC&2$aS)****VAq"%%%% 	AAlO<=A&&q)KC!8O8VAq"%%%% 		9i01AyA//4/@C
AYYv !&&	 &1V9q=/BqyL1,<+=&	{KLLLLVai[M****qc>> 		9i01AAAB()A//4/@C
AYYv !&&	 &1V9q=!F)hq!n*DEai<!+R&	\HQN-JKV9ai03 4 4 4 4 Vai6345555qc>> 		9i01AyA&&q)KC
AYYv !&&	&2ai<!AfI+56F)qyk3 4 4 4 4Vai[1V9+67777 		9i01AyA&&q)KC
AYYv !&&	&1V9+&	{QvYK@AAAAVai[1V9+&	{CDDDD 		9i01AyA
:67 		9i;<A|A&&q)KC&8B?+aS8Aq>2BCDDDDVAq"%%%% 		9i;<A11v1v1v./A&&q)KC&8B?HRO<q!fxPQST~W_`acdWeFfghhhhVAq"%%%% 		9i;<A|A
:67 		9i;<A11v1v1v./A
:67 		9i;<A11v1v1v./A
:67 		:z9=>A|A&&q)KC
AYYv !&&	&2ai<!+,rdQvYK@AAAAVai[M**** 		:z9=>A|A
:67 	lN;<AyA&&q)KC
AYYv !&&	&1QvY;?+b6lQ.>-?!F)& ' ' ' 'Vai[M**** 	lL9:AyA&&q)KC
AYYv !&&	&1V9q6{2QVV;<QvY,1V94x1~EFF)qyk3 4 4 4 4 Vai[1V9+6777767OBB"Q1aC$89:A	!SbS&	A	!RS&	A&&q)KCVAq2r2,////&AAr334444 	lL9:AyA
:67 	!Q!Q()AAA&&q)KC/1a&))))_Q2....==00003333 	l+,A1vA&&q)KC
AYYv !&&	&1#&	{QvYK!=>>>>Vai[1V9+6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	      }| j                  |      \  }}i }|j                  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 y )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)KC
AYYv !&&	Vai[1V9+&	{i[1V9+&	{D E E E E&1q6{?+V9+q6{?QvY67V9+V9qy01ai<!AfI+5!F)CDq6{?+V9+V9+V9+V9+q6{?+V9+#         $Ar1b!R!$A1q!a!$ 	A hqk"1%
&E#*7#3 D$dDFaR!Vd]T1D81<=t8d?T12&&t8d?T12&&&" # # # # a2gK%!ArE)+EFQC!qc?++++r-   
det_methodbirdlaplacezM, rhsr7   r:   r<   r8   r   r>   r(   r   r9   r;   za:4zb:2c                     t        |j                  ||       |j                  |      z
        t        j                  |j
                  |j                        k(  sJ y N)r   )r
   cramer_solver/   r   rT   rowscols)r   r!   rhss      r"   test_cramer_solver   ?  sM     ANN3:N>3O affchh78 8 8r-   zdet_method, errorc                 h     t        g dg dg      t        ddg      t        | fd       y )Nr@   rB   rd   r   c                  *     j                        S r   )r   )rJ   r0   r   s   r"   r,   z*test_cramer_solve_errors.<locals>.<lambda>Q  s    !..z.B r-   )r   r   )r   errorrJ   r0   s   ` @@r"   test_cramer_solve_errorsr   K  s-     	
J'(ABxA
5B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       y )Nr   r(   r   r8   c                  &     j                        S rG   solverI   s   r"   r,   ztest_solve.<locals>.<lambda>W      qwwqz r-   r=   c                  &     j                        S rG   r   rI   s   r"   r,   ztest_solve.<locals>.<lambda>Y  r   r-   )r   r   rR   rI   s   @@r"   
test_solver   T  sS    1!u~AaSzA
:)*!qc{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   r]   r`   rj   ro   r~   r   r   r   r   r   r   markparametrizer   r   r   rN   r-   r"   <module>r      s    * , " / & , HK K 3 ' > 8 + @m8	M%;P2N"J&7R,$,$3!B'!Re8P7,t 	':;Y	9-.q!Y0GHY	9-.aVaVaV$%'Aq'%.!6!Q#?@	$ 8 <8
 ,\\+?@/B CDCD+r-   