
    wgA                     l    d dl mZ d dl mZ ej                  j                  Zd	dZd	dZd	dZd Zd Z	y)
    )mp)libmpc           	         |dkD  rt        d|        | j                  }t        j                  |       \  }}|dkD  rt        d|       t        d|       ||z  |j	                         z  }t        j
                  dt        j                  t        j                        z        }d}t        |      D ]-  }t        |      D ]  }	|t        | |	|f   ||	|f   z
        z  } / |||z  z  }d}
t        |      D ])  }t        |dz   |      D ]  }	|
t        ||	|f         z  }
 + |dkD  rt        d||
       |dkD  rt        d	|       ||k  sJ |
dk(  sJ y )
N   zoriginal matrix (hessenberg):
Q:
zH:
皙?r      zdifference (H):B:
)
printrowsr   
hessenbergtranspose_conjexplogepsxrangeabs)AverbosenQHBr   err0xyerr1s              \/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_eigen.pyrun_hessenbergr   	   sb   {/3	A==DAq{fQfQ	A  ""A
&&rvvbff~%
&CDAY ) 	)AC!A#1Q3((D	)) 	AEMDDAY  Aq! 	 AC!A#KD	   {t,{fa#::199    c           	      |   |dkD  rt        d|        | j                  }t        j                  |       \  }}|dkD  rt        d|       t        d|       ||z  |j	                         z  }||j	                         z  }t        j
                  dt        j                  t        j                        z        }d}t        |      D ]-  }	t        |      D ]  }
|t        | |
|	f   ||
|	f   z
        z  } / |||z  z  }d}t        |      D ]9  }	t        |      D ])  }
|	|
k(  r||
|	fxx   dz  cc<   |t        ||
|	f         z  }+ ; |||z  z  }d}t        |      D ])  }	t        |	dz   |      D ]  }
|t        ||
|	f         z  } + |dkD  rt        d|||       |dkD  rt        d|       ||k  sJ ||k  sJ |dk(  sJ y )	Nr   zoriginal matrix (schur):
r   zR:
r   r   zdifference (S):r
   )
r   r   r   schurr   r   r   r   r   r   )r   r   r   r   Rr   Cr   r   r   r   r   err2s                r   	run_schurr&   .   s   {*A.	A88A;DAq{fafa	A  ""A	AA
&&rvvbff~%
&CDAY ) 	)AC!A#1Q3((D	)) 	AEMDDAY   	 AAv!A#!C!A#KD	  
 	AEMDDAY  Aq! 	 AC!A#KD	   {tT2{fa#::#::199r    c                    |dkD  rt        d|        | j                  }t        j                  | dd      \  }}}|dkD  r$t        d|       t        d|       t        d|       t        j                  dt        j
                  t        j                        z        }d	}t        |      D ]x  }| |d d |f   z  ||   |d d |f   z  z
  }	t        |t        j                  |	            }||d d f   | z  ||d d f   ||   z  z
  }	t        |t        j                  |	            }z |||z  z  }|d	kD  rt        d
|       ||k  sJ y )Nr   zoriginal matrix (eig):
T)leftrightzE:
zEL:
zER:
r   r   zdifference (E):)
r   r   r   eigr   r   r   r   maxmnorm)
r   r   r   EELERr   r   ir   s
             r   run_eigr1   \   s2   {(!,	Aqt4IAr2{fagrgr
&&rvvbff~%
&CDAY &1Q3K!A$AaC.(4!%qsGaK"QqS'AaD.(4!%& 	AEMD{&#::r    c                  Z   d} t        d      D ]  }dt        t        j                         dz        z   }t        j                         dkD  rodt        j                  ||      z  dz
  }t        j                         dkD  r|dz  }t        |      D ]'  }t        |      D ]  }t        |||f         |||f<    ) ndt        j                  ||      z  dz
  ddt        j                  ||      z  dz
  z  z   }t        j                         dkD  rt|dz  }t        |      D ]a  }t        |      D ]Q  }t        t        j
                  |||f               dt        t        j                  |||f               z  z   |||f<   S c t        ||        t        ||        t        ||         y )	Nr      r   g      ?r	   
   y              ?r   )
r   intr   rand
randmatrixreimr   r&   r1   )vr0   r   r   r   r   s         r   test_eig_dynr<   |   s   	AAY  BGGIM""779s?BMM!Q''!+Awwy3R -A#AY -!$QqsV!A#-- R]]1a((1,a"--1:M6MPQ6Q0RRAwwy3R NA#AY N!$RUU1QqS6]!3b3ruuQqsV};M6M!M!A#NN 	qA&!q!Q) r    c                     d} g }t        j                  g dg dg dg      }|j                  |       |j                  |j                                t        j                  g dg dg dg      }|j                  |       |j                  |j                                t        j                  g dg dg dg      }|j                  |       |j                  |j                                t        j                  g dg d	g d
g      }|j                  |       |j                  |j                                |D ])  }t	        ||        t        ||        t        ||        + y )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   r   r5   )r   matrixappend	transposer   r&   r1   )r;   ASr   s      r   test_eigrB      s!   	A	B
		9 	A IIaLIIakkm
		9 	A IIaLIIakkm
		9 	A IIaLIIakkm
		9 	A IIaLIIakkm  qA&!q!Q r    N)r   )
mpmathr   r   backendr   r   r&   r1   r<   rB    r    r   <module>rF      s8     			"J,\@ 0 r    