Ë
    täiA  ã                   ó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              úf/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/mpmath/tests/test_eigen.pyÚrun_hessenbergr   	   sN  € Ø�‚{ÜÐ/°Ô3à	�‰€Aä�=‰=˜Ó�D€A€qà�‚{Üˆf�QŒÜˆf�QŒà	ˆA‰�× Ñ Ó"Ñ"€Aä
�&‰&�”r—v‘vœbŸf™f“~Ñ%Ó
&€Cà€DÜ�AŽYˆÜ˜–ˆAØ”C˜˜!˜A˜#™  1 Q 3¡™Ó(Ñ(‰Dñ ð ð 	ˆA�‰E�M€Dà€DÜ�AŽYˆÜ˜˜A™˜qÖ!ˆAØ”C˜˜!˜A˜#™“KÑ‰Dñ "ð ð �‚{ÜÐ  tÔ,à�‚{Üˆf�aÔà�#Š:Ðˆ:Ø�1Š9Ð‰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ä�8‰8�A‹;�D€A€qà�‚{Üˆf�aÔÜˆf�aÔà	ˆA‰�× Ñ Ó"Ñ"€AØ	ˆA×ÑÓÑ€Aä
�&‰&�”r—v‘vœbŸf™f“~Ñ%Ó
&€Cà€DÜ�AŽYˆÜ˜–ˆAØ”C˜˜!˜A˜#™  1 Q 3¡™Ó(Ñ(‰Dñ ð ð 	ˆA�‰E�M€Dà€DÜ�AŽYˆÜ˜–ˆAØ�AŠvØ�!�A�#“˜!‘“Ø”C˜˜!˜A˜#™“KÑ‰Dñ ð ð
 	ˆA�‰E�M€Dà€DÜ�AŽYˆÜ˜˜A™˜qÖ!ˆAØ”C˜˜!˜A˜#™“KÑ‰Dñ "ð ð �‚{ÜÐ  t¨TÔ2à�‚{Üˆf�aÔà�#Š:Ðˆ:Ø�#Š:Ðˆ:Ø�1Š9Ð‰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   \   s-  € Ø�‚{ÜÐ(¨!Ô,à	�‰€Aä—‘�q ¨tÔ4�I€A€rˆ2à�‚{Üˆf�aÔÜˆg�rÔÜˆg�rÔä
�&‰&�”r—v‘vœbŸf™f“~Ñ%Ó
&€Cà€DÜ�AŽYˆØ�’1�Q�3‘‰K˜!˜A™$ ¢A a C¡™.Ñ(ˆÜ�4œŸ™ !›Ó%ˆàˆq’ˆs‰G�a‰K˜"˜Qšq˜S™' A a¡D™.Ñ(ˆÜ�4œŸ™ !›Ó%‰ð ð 	ˆA�‰E�M€Dà�‚{ÜÐ Ô&à�#Š:Ð‰: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<   Œ Œ) nÇd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<   |   so  € Ø	€AÜ�A�YˆØ””B—G‘G“I ‘MÓ"Ñ"ˆÜ�7‰7‹9�sŠ?à”B—M‘M ! QÓ'Ñ'¨!Ñ+ˆAÜ�w‰w‹y˜3‹Ø�R‘�Ü ž�AÜ# AžY˜Ü!$ Q q¨ s¡V£˜˜!˜A˜#šñ 'ñ #ð ”R—]‘] 1 aÓ(Ñ(¨1Ñ,°°a¼"¿-¹-ÈÈ1Ó:MÑ6MÐPQÑ6QÑ0RÑRˆAÜ�w‰w‹y˜3ŠØ�R‘�Ü ž�AÜ# AžY˜Ü!$¤R§U¡U¨1¨Q¨q¨S©6£]Ó!3°b¼3¼r¿u¹uÀQÀqÈÀsÁV»}Ó;MÑ6MÑ!M˜˜!˜A˜#šñ 'ð #ô 	�q AÕ&Ü�!˜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ð ‡I�Iˆa„LØ‡I�Iˆa�k‰k‹mÔä
�	‰	’9ÚÚðó 	€Að ‡I�Iˆa„LØ‡I�Iˆa�k‰k‹mÔä
�	‰	’9ÚÚðó 	€Að ‡I�Iˆa„LØ‡I�Iˆa�k‰k‹mÔä
�	‰	’9ÚÚðó 	€Að ‡I�Iˆa„LØ‡I�Iˆa�k‰k‹mÔãˆÜ�q AÕ&Ü�!˜qÕ!Ü�˜QÖñ r    N)r   )
Úmpmathr   r   Úbackendr   r   r&   r1   r<   rB   © r    r   Ú<module>rF      s8   ðõ Ý à	�‰×	Ñ	€ó"óJ,ó\ò@ ó0 r    