
    [h                         S SK r S SKrS SK7  S rS rS rS rS rS rS	 r	S
 r
S rS rS rS r\ R                  R!                  5       S 5       rS rS rg)    N)*c                    ^
^^ [        S5      n [        S5       H	  nSXU4'   M     U [        S5      :X  d   eU [        U 5      :X  d   e[        SS5      m
T
R                  (       a   e[        / SQ/ SQ/ SQ/5      n[	        U5      [	        [        SS5      5      :X  d   eSUS	'   S	UR                  ;  d   e[        / SQ/ SQ/5      m[        S
S/SS/SS//5      nTU-  [        SS/SS//5      :X  d   eX-  X -  s=:X  a  U:X  d   e   e[
        R                  " [        U
4S j5        / SQ/ SQ/ SQ/n[        U5      nUR                  5       U:X  d   eU[        [        U5      5      :X  d   e[        R                  U5      nU[        [        U5      5      :X  d   eUS-  [        [        US-  5      5      :X  d   eUS-  SU-  s=:X  a  U:X  d   e   eT
R                  S:X  d   eT
R                  S:X  d   eSUl        SUl        [        UR                  5      S:X  d   eTT-   ST-  :X  d   e[
        R                  " [        U
U4S j5        [        X -
  5      S:X  d   e[        SS/SS/SS
/SS//5      m[        SS/5      nTU-  [        / SQ5      :X  d   e[!        S5      n[        US-   S[#        S5      -
  -
  5      S:X  d   eS[!        S5      -   S-  S-
  [#        S5      :X  d   e[        S5      S-  [        S5      :X  d   e[
        R                  " [        U4S j5        [%        S5      n[        U5      n	SUS'   X:w  d   e['        U5      (       d   eg ) N         r   r   r                  	   
   r   )r   r   r      i'   c                     > T T -  $ N )A2s   R/var/www/auris/envauris/lib/python3.13/site-packages/mpmath/tests/test_matrices.py<lambda>#test_matrix_basic.<locals>.<lambda>   s	    be    )r         )(   r   <   )F   P   Z   y              ?c                     > TT -   $ r   r   )r   A4s   r   r   r   $   s	    b2gr   r
   r   r   r   )r(   r(   r(   r(   c                     > T S-  $ )Nr   r   )A7s   r   r   r   -   s	    b!er   ir   r   )matrixrangeeye_matrix__datalistpytestraises
ValueErrortolistevalreprfprowscolslensumoneszeros
randmatrixnstr)A1iA3A5lA6xA8A9A10r   r'   r*   s             @@@r   test_matrix_basicrJ      s:   	B1XQ3 Q<<	1B	Iy1	2B8tE!RL))))BsG)))))	I&	'B	!R1a&1b'*	+B7fr2hS	233337bg######
MM*m,	{L1A	B99;!d2h	2Bd2hb5Dbe%%%%7b2g######77a<<77a<<BGBGr A%%%7ad??
MM*o.rw<1	!Q!Q!Q!Q0	1BCyAa46.////	aBQ1uQx<()Q...QK1q E!H,,,q62:Q
MM*m,	AB
*CBsG9988O8r   c                      [         R                  S:  a  [        R                  " S5        [	        / SQ/ SQ/5      n [	        SS/SS/S	S
//5      n[        S5        g)z
Test the PEP465 "@" matrix multiplication syntax.
To avoid syntax errors when importing this file in Python 3.5 and below, we have to use exec() - sorry for that.
i z9'@' (__matmul__) is only supported in Python 3.5 or newerr   r	   r   r   r   r   r   r   zassert A4 @ A5 == A4 * A5N)sys
hexversionr1   skipr,   exec)r'   rC   s     r   test_matmulrP   4   sR     ~~	!OP	I&	'B	!R1a&1b'*	+B	$%r   c                    ^ [        / SQ/ SQ/ SQ/5      m[        / SQ5      n TS S 2S S 24   T:X  d   eTS S 2S4   [        S/S/S//5      :X  d   eTSS S 24   [        / SQ/5      :X  d   eTSS	2SS	24   [        SS
/SS//5      :X  d   eU SS [        S	S/5      :X  d   e[        R                  " [        U4S j5        [        S	5      nTUS S 2S S 24'   US S 2S S 24   [        / SQ/ SQ/ SQ/5      :X  d   e[        / SQ/5      USS S 24'   U[        / SQ/ SQ/ SQ/5      :X  d   e[        S/S/S//5      US S 2S4'   U[        / SQ/ SQ/ SQ/5      :X  d   e[        SS/SS//5      US S2S S24'   U[        / SQ/ SQ/ SQ/5      :X  d   eSU SS	& U [        / SQ5      :X  d   e[        R                  " [        5         TS S 2S4   USS S 24'   S S S 5        [        R                  " [        5         TS S 2S S 24   USSS24'   S S S 5        SUS S 2S4'   U[        / SQ/ S Q/ S!Q/5      :X  d   eS"US S 2S S 24'   U H  nUS":X  a  M   e   g ! , (       d  f       N= f! , (       d  f       N_= f)#Nr   r	   r   )r   r   r   r
   r   r   r   r   r   r   r   r   r
   c                     > T S S 2SS24   $ )Nr   r   r   As   r   r   $test_matrix_slices.<locals>.<lambda>M   s    a!A#hr   )r      r   r            )r   rV   rW   )r
   r   rX   )r   r   rY               )rZ   r[   rW   )r\   r]   rX   r   )r   r   r   r
   r   r   )rZ   r[   r   )r\   r]   r   )r   r   r   r!   )r,   r1   r2   
IndexErrorr3   )Vr@   rF   rT   s      @r   test_matrix_slicesr`   A   s   I!!# 	$A 	{A QqS6Q;;QqS6VaS!aSM****QqS6VYK((((QqS1W:!A!u....Qq6VQqE]"""
MM*./ 
BBqsGac7fi(1(13 4 4 4 4 l^$BqsG,$-$-/ 0 0 0 0 rdRD2$'(BqsG,$.$.0 1 1 1 1 R2),-Brr"1"uI,$0$.0 1 1 1 1 AaF}%%%%	z	"AaC&1Q3 
# 
z	"qsV1QrT6
 
# BqsG,$0$.0 1 1 1 1 BqsGBww  
#	" 
#	"s   I5I!
I!
I/c                      [        SS/SS//5      n U S-  X -  :X  d   eU S-  X -  U -  :X  d   eU S-  [        U 5      :X  d   eU S-  [        X -  5      :X  d   eg )Nr   r   r   r
   r   )r,   inverserS   s    r   test_matrix_powerrd   s   so    AA Aa413;;a413q5==b5GAJb5GACL   r   c                     [        SS/SS/SS//5      n U R                  U R                  5       s=:X  a  [        / SQ/ SQ/5      :X  d   e   e[        U SS5        U [        SS/SS/SS//5      :X  d   eSS/n[        US	S5        USS/:X  d   e[	        [        S5      / S
Q5      [        / SQ/ SQ/ SQ/5      :X  d   eg )Nr   r   r   r
   r   r   )r   r   r   )r   r
   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r,   T	transposeswap_rowextendr.   )rT   rD   s     r   test_matrix_transformrj   z   s    AAA'(A33!++-A69i*@#AAAAAAQ1AAA/0000	
AAQ1A;;#a&'"fi	)-L&MMMMr   c            	      H   [        S[        -   S/S[        //5      n U R                  5       [        [        SS5      S/S[        SS5      //5      :X  d   eU R	                  5       U R
                  s=:X  a*  [        [        SS5      S/S[        SS5      //5      :X  d   e   eg )Nr   r   r   r   )r,   j	conjugatempctranspose_conjHrS   s    r   test_matrix_conjugaterq      s    Q
QF#$A;;=FSBZOaQ_#EFFFF BQQ12C2J0A )B B B B B Br   c            	         [        / SQ5      [        / SQ/ SQ/ SQ/5      :X  d   e[        SS5      n U R                  S:X  a  U R                  S:X  d   eU  H  nUS:X  a  M   e   [        SS5      nUR                  S:X  a  UR                  S:X  d   eU H  nUS:X  a  M   e   [        S	5      [        S	5      :w  d   e[        S5      n[        S5      [        X3S-  US-  /US-  US-  US
-  /US-  US
-  US-  //5      :X  d   eg )Nr   )r   r   r   )r   r   r   )r   r   r   r   r   r   r   r   r
   r   )	diagr,   r<   r8   r9   r=   r>   mpfhilbert)r@   ar   ones       r   test_matrix_creationrx      s   	?fiI%FGGGG	aB77a<BGGqL((Avv 	q!B77a<BGGqL((Avv b>Z^+++
a&C1:#1uc!e!4"%a%QA!6"%a%QA!6!8 9 9 9 9r   c                     [        SS/SS/SS//5      n [        U S5      S:X  d   e[        U [        5      S:X  d   e[        U S5      [        S	5      :X  d   e[	        S5      S
:X  d   e/ SQn[	        US5      S:X  d   e[        [	        US5      S5      S:X  d   e[        [	        US5      S5      S:X  d   e[	        U[        5      S:X  d   eg )Nr   rb   r   r   r   r   r
   Fr   r   )r   rb   r   r      r   gPz$,@g%^(@r   )r,   mnorminfsqrtnormround)rT   rF   s     r   
test_normsr      s    B"bAq6*+A1:??3<13<48###8q==A1:aR M111ab!]2223<2r   c                     [        / SQ5      n U [        S/S/S/S/S//5      :X  d   eU S   S:X  d   e[        U R                  5      S:X  d   e[        U 5      [        [	        S5      5      :X  d   eSU S'   SU S'   U S   S:X  d   e[        U 5      [        U R
                  5      s=:X  a  S:X  d   e   eU R
                  U -  [        S	//5      :X  d   eg )
N)r   r   r   r   r
   r   r   r   r   r
   r   r(   r   )r,   r:   r/   r0   r-   rf   )rF   s    r   test_vectorr      s    AaS1#sQC01111Q4199q1$$$7d58n$$$AaDAaDQ43;;q6SX""""""33q5FSE7O###r   c                      [        S5      n U R                  5       nU 7nX:X  d   eX:X  d   eSUS'   X:w  d   eSUS'   X:w  d   eg )Nr   r   r+   *   )r<   copy)rT   BCs      r   test_matrix_copyr      sS    QA	A	
A6M66M6AcF6M6AcF6M6r   c                       SS K n SS/SS/SS//nU R                  U5      n[        U5      [        U5      :X  d   eg ! [         a     g f = f)Nr   r   r   r   r
   r   r   )numpyImportErrorarrayr,   )r   rD   rv   s      r   test_matrix_numpyr      s[     Q!Q!Q AAA!9q	!!!	  s   = 
A
	A
c                  p   [        SS5      n X S-  -   n[        S5      nX"S-  -   nSn[        R                  U5      nXDS-  -   n[        R                  U5      n[        R                  S5      nXX#XEXg4 H?  n	X-  [        R                  U	/5      :X  d   eX-  [        R                  U	/5      :X  a  M?   e   g)z/Multiplication of iv.matrix and any scalar typer   r   y               @r   gX9v?y              @N)mpirt   r7   convertivr<   r,   )
rv   bcdefghMrF   s
             r    test_interval_matrix_scalar_multr      s    B
A	F
ABA	F
AA


1A	F
A


1A

AA!%u		1#&&&u		1#&&& &r   c                      [        S5      n [        R                  S5      n[        R                  S5      nXU4 HQ  nX2-  [        R                  U5      :X  d   eX2-  U:X  d   eX#-  [        R                  U5      :X  d   eX#-  U:X  a  MQ   e   g)z2Multiplication of iv.matrix and other matrix typesr   N)r<   r7   r   r,   )rT   r   r   Xs       r    test_interval_matrix_matrix_multr      s     	QA

A

AAYu		!$$$uzzu		!$$$uzz	 r   c                  V   [        S5      [        R                  S5      [        R                  S5      4 Hq  n [        R                  U 5      n[        R                  S5      n[	        US   5      [	        US   5      :X  d   eUR                  5       UR                  5       :X  a  Mq   e   g )Nr   r+   )r.   r7   r   r,   typer4   )other_type_eyerT   r   s      r   test_matrix_conversion_to_ivr      sz    q6266!9bffQi8IIn%FF1IAcF|tAcF|+++xxzQXXZ'''	 9r   c            	         [        S5      n [        U //5      n[        R                  U5      n[        R                  U //5      nX#:X  d   eX"-  nX3-  nX#:X  d   eUS   R                  S:  d   eUS   R                  S:  d   eUS   R                  S:  d   eUS   R                  S:  d   e[        R                  S5      US   ;   d   e[        R                  S5      US   ;   d   e[        R                  [        R                  S5      5      [        R                  S5      [        SS5      -   -  [        R                  [        SS5      [        SS5      /[        SS5      [        SS5      //5      :X  d   eg )	Nz1.00000000000001r+   gؗҜ<gMg<z:1.00000000000001998401444325291756783368705994138804689654r   r   r   )	r   r,   r   deltamprt   r.   r<   r   )rF   rT   r   r   s       r   test_interval_matrix_mult_bugr      se    	"#AuA
		!A
		A3%A6M6	A	A6M6T7==5   T7==5   T7==5   T7==5   66NOSTUYSZZZZ66NOSTUYSZZZZ99RVVAY2771:Aq	#9:bii#aQR)UXYZ\]U^I_befgijbkmpqrtumvawHx>yyyyr   )r1   rL   mpmathrJ   rP   r`   rd   rj   rq   rx   r   r   r   r   r   markxfailr   r   r   r   r   r   <module>r      sz     
 -^&/d!NB9 
$	"' 	 	(zr   