
    RieO                        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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 Z,d Z-d Z.d Z/d Z0dS )    )
expand_mul)IRational)S)Symbolsymbols)sympify)simplify)
ShapeErrorNonSquareMatrixError)ImmutableMatrixMatrixeyeonesImmutableDenseMatrixdotprodsimp)raises)NonInvertibleMatrixError)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    Alib/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AJJ//F1 >k <l <l 5m 5m ouuvxy{}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

++va 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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   LUsolver   r   s    r    %test_issue_17247_expression_blowup_32r'   7   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   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+      r*      r+   r.   r+   r   r+      r,   r   r*   r,   
   r2   r0   r+   r   r4   r*   r,   r*   r   )r+   r   r   )r+   r   r*   c                  .                                    S Nr&   Abs   r    <lambda>ztest_LUsolve.<locals>.<lambda>W   s    qyy||     )r*   r   )r4   r*   r   c                  .                                    S r:   r;   r<   s   r    r?   ztest_LUsolve.<locals>.<lambda>e   s    		! r@   r   c                 (    | dk    rd| |z   dz   z  ndS )Nr+   r   r    )ijs     r    r?   ztest_LUsolve.<locals>.<lambda>g   s    qAvv!QqSU))1 r@   c                  .                                    S r:   r;   r<   s   r    r?   ztest_LUsolve.<locals>.<lambda>i   s    QYYq\\ r@   )r   r&   r   
ValueErrorNotImplementedErrorzerosr   r   solnr=   r>   s     @@r    test_LUsolverM   D   sa   							 	 	A 	q!YYYA	!A99Q<<D19999






 	 	A 	q!ZZZ  A	!A99Q<<D19999AAA'((AyyyA99Q<<61a&>>))))yyyA
:+++++,,,






						 	 	A 	zzzA	!A99Q<<D19999


JJJ'((AzzzA	!A
 4 4 4 4 4555q!<<==AQA
#%9%9%9%9%9:::::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 )Nr)   r-   r/   r+   r   r1   r*   r   r,   r.   r3   r5   r7   r8   r2   r0   	   r6         )r   QRsolve)r=   r   r>   rL   s       r    test_QRsolverS   l   sX   							 	 	A 	q!YYYA	!A99Q<<D19999AAA'((A	!A99Q<<D19999






 	 	A 	q!ZZZ  A	!A99Q<<D19999AB"b*++A	!A99Q<<D1999999r@   c                  2    t          t          d            d S )Nc                  n    t          dg                              t          ddgddgg                    S )Nr   r*   r+   r   )r   r&   rD   r@   r    r?   ztest_errors.<locals>.<lambda>   s1    vqc{{226Aq6Aq6:J3K3KLL r@   )r   r   rD   r@   r    test_errorsrV      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 )Nr)   r-   r/   r+   r   r1   r3   r5   r7   r8   ))r   r,   )r,   r   )r   rO   rX   r,   r   r*   r4   za00, a01, a11, b0, b1)r   r#   r   r   r   r
   )	r=   r   r>   rL   a00a01a11b0b1s	            r    test_cholesky_solver`      s^   							 	 	A 	q!YYYA	!AAD19999






 	 	A 	q!ZZZ  A	!AAD19999  AwA	!AAD19999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                     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 )Nr)   r-   r/   r+   r   r1   r3   r5   r7   r8   rO   rX   r,   rY   r*   r4   ))rO   r+   )r+   rO   )r   r   )rX   rA   )rX   ir2   r0   r2   rZ   c                  .                                    S r:   )LDLsolver<   s   r    r?   ztest_LDLsolve.<locals>.<lambda>   s    

1 r@   )r   rd   r   r   r   rI   rK   s     @@r    test_LDLsolvere      sA   							 	 	A 	q!YYYA	!A::a==D19999






 	 	A 	q!ZZZ  A	!A::a==D19999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    kkk*++AaS2$  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_solverD   r@   r    r?   z-test_lower_triangular_solve.<locals>.<lambda>   (    1v55faVnnEE r@   c                  n    t          ddgddgg                              t          dg                    S rh   ri   rD   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   ri   rD   r@   r    r?   z-test_lower_triangular_solve.<locals>.<lambda>   C    AA'((??QFQF#$$& & r@   r   r   r   r0   r*   rO   )r   r   r   rH   r   r   r   rj   r=   BCs      r    test_lower_triangular_solvert      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 rh   r   upper_triangular_solverD   r@   r    r?   z-test_upper_triangular_solve.<locals>.<lambda>   rk   r@   c                  n    t          ddgddgg                              t          dg                    S rh   rw   rD   r@   r    r?   z-test_upper_triangular_solve.<locals>.<lambda>   rm   r@   c                  x    t          ddgddgg                              t          ddgddgg                    S ro   rw   rD   r@   r    r?   z-test_upper_triangular_solve.<locals>.<lambda>   rp   r@   r   r   r*   r   r+   r0   )r   r   r   	TypeErrorr   r   r   rx   rq   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_solverD   r@   r    r?   z%test_diagonal_solve.<locals>.<lambda>   s&    faVnn;;FA3KKHH r@   r   r   r*   c                  .                                    S r:   )r   r=   rr   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   r,   r2   rO   rQ      z-43/26z71/26)rQ   r      )         )iii)E   K   Q      )r   r   r   )r   r   r   w0_0r+   w1_0w2_0r   r   )r+   r*   r   )	r   
pinv_solver#   rd   r	   pinvatomsr   name)r=   rr   solutionwss        r    test_pinv_solver     sR   AA  ABxA<<??a..q111111<<??ajjmm++++<<??fgh&7&79I9I%JKKKKKKqvvxx<!q    lll+,,A<<??a..q111111<<??ajjmm++++<<??fooo|||%DEEJJJJJqvvxx<!q    			999%&&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 P P qvvxx<!q    AAA'((AyyyA<<??faVnn,,,,qvvxx<!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   r+   r.   RD)methodEDr   )	r   r   r
   Hr   r   r   popr   )Asr=   A_pinvAApApArr   r   w1s           r    test_pinv_rank_deficientr   $  s   
)))YYY'
(
(
1a&1a&!
"
"
1a&1a&1a&)
*
*
,B   t$$&jqja  A%%%%f%%////u||||u|||||  t$$&jqja  A%%%%f%%////u||||u||||| 	AA  A1vA||AH				#	#	%	%B7fvq"g&&&&qvvxx<!q    1vA||AH				#	#	%	%B7fvq"g&&&&qvvxx<!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*   r+   )r   r,   r.   )r2   r0   r6   )r+   r.   rO   r4   r*   r   r   r+   )r   r*   r+   r   )r,   r.   r2   r0   )rO   r6   rP   rQ   r   )r2   r0   rO   T)freevartau0rZ   r.   r0   rO   rQ   tau1)r*   r   r.   )r   r   r   tau2)r   r   r   c                  .                                    S r:   r   r<   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>      q33A66 r@   )r   r,   r+   )r*   r   r.   )r   r2   rO   )r   r   r+   )r   r   r   r   )r   r   r   r   c                  .                                    S r:   r   r<   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r@   c                  .                                    S r:   r   r   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r@   c                  .                                    S r:   r   r   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r@   )r*   r6   r.   )r+   r   rO   rX   r,   )r   r   r   r   c                  .                                    S r:   r   r<   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r@   )rO   r6   r   rQ   r   )r*   r   r.   r0   )r   r   r   z_tau0 _tau1 _tau2 tau1)r   r   r   r   r   r   c                  .                                    S r:   r   r<   s   r    r?   z)test_gauss_jordan_solve.<locals>.<lambda>  r   r@   )r   r   r   r   )r   r   r   r   r   r   r   r   rH   r   Halfr   r   	__class__r   )solparamsr   r   r   x0x1x2_x0r   r=   rr   r>   s             @@@r    test_gauss_jordan_solver   M  s    				999jjj122AyyyA&&q))KC&2$aS)******VAq"%%%%%% 	AAlllOOO<==A&&q))KC!8888VAq"%%%%%% 				999iii011AyyyA//4/@@C
AYYv  !&		&1V9q=/BqyL1,<+=&	{KLLLLLLVai[M******qc>>>> 				999iii011AAAB())A//4/@@C
AYYv  !&		&1V9q=!F)hq!nn*DEai<!+R&	\HQNN-JKV9ai03 4 4 4 4 4 4 Vai634555555qc>>>> 				999iii011AyyyA&&q))KC
AYYv  !&		&2ai<!AfI+56F)qyk3 4 4 4 4 4 4Vai[1V9+6777777 				999iii011AyyyA&&q))KC
AYYv  !&		&1V9+&	{QvYK@AAAAAAVai[1V9+&	{CDDDDDD 				999iii011AyyyA
:66666777 				999iii;<<A|||A&&q))KC&8B??+aS8Aq>>2BCDDDDDDVAq"%%%%%% 				999iii;<<A11v1v1v.//A&&q))KC&8B??HROO<q!fxPQST~~W_`acdWeWeFfghhhhhhVAq"%%%%%% 				999iii;<<A|||A
:66666777 				999iii;<<A11v1v1v.//A
:66666777 				999iii;<<A11v1v1v.//A
:66666777 				:::zzz999=>>A|||A&&q))KC
AYYv  !&		&2ai<!+,rdQvYK@AAAAAAVai[M****** 				:::zzz999=>>A|||A
:66666777 	lllNNN;<<AyyyA&&q))KC
AYYv  !&		&1QvY;?+b6lQ.>-?!F)& ' ' ' ' ' 'Vai[M****** 	lllLLL9::AyyyA&&q))KC
AYYv  !&		&1V9q6{2QV;<QvY,1V94x1~~EFF)qyk3 4 4 4 4 4 4 Vai[1V9+6777777677OBB"""Q1aC$89::A	!!!SbS&	A	!!!RSS&	A&&q))KCVAq2r2,//////&AAr33444444 	lllLLL9::AyyyA
:66666777 	!Q!Q())AAA&&q))KC/1a&))))))_Q2......=0000033333 	lll+,,A1vA&&q))KC
AYYv  !&		&1#&	{QvYK!=>>>>>>Vai[1V9+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   r4   r   )rF   f)	r   r   r   r   r   r   r   r   r   ztau:5)r   r   r   r   r   	sympy.abcrF   r   listr   r   )r=   rr   r   r   r   r   rF   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 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 hqkk""1%
&
&E#*7#3#3 D$dDFaR!Vd]T1D81<=t8d?T12&&t8d?T12&&&" # # # # # # aaa2gK%!AAArE)+EFQC!qc?++++++++r@   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   r+   c                  .                                    S r:   solver<   s   r    r?   ztest_solve.<locals>.<lambda>2      qwwqzz r@   r0   c                  .                                    S r:   r   r<   s   r    r?   ztest_solve.<locals>.<lambda>4  r   r@   )r   r   rH   r<   s   @@r    
test_solver   /  s    1!u~AaSzA
:)))))***!qc{A
:)))))*****r@   N)1sympy.core.functionr   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr	   sympy.simplify.simplifyr
   sympy.matrices.matricesr   r   sympy.matricesr   r   r   r   r   r   sympy.testing.pytestr   sympy.matrices.commonr   sympy.solvers.solvesetr   r   r   r   r!   r$   r'   rM   rS   rV   r`   re   rt   r|   r   r   r   r   r   r   rD   r@   r    <module>r      sP   * * * * * * , , , , , , , , " " " " " " / / / / / / / / & & & & & & , , , , , , F F F F F F F FK K K K K K K K K K K K K K K K ' ' ' ' ' ' : : : : : : + + + + + +        @ @ @m m m6  %; %; %;P  2N N N" " "J&7 &7 &7R, , ,$, , ,$3 3 3! ! !B'! '! '!Re8 e8 e8P7, 7, 7,t+ + + + +r@   