a
    ghJ"                     @   s   d dl mZ d dl mZ ejjZd'ddZd(ddZd)d	d
Zd*ddZdd Z	d+ddZ
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd,d$d%Zd&S )-    )mp)libmpFc           
      C   s   |rt dt|  t| \}}|t| |  }| | }||  t| j }|rnt d| t d| t|}t|}|rt d|d|d t d|d|d t	dt
tj }	||	k sJ ||	k sJ |S Noriginal matrix:
zeigenvalues:
zeigenvectors:
zdifference:
皙?)printstrr   Zeigsydiag	transposeeyerowsmnormexplogeps
AverboseDQBCEZNCZNEr    r   O/var/www/auris/lib/python3.9/site-packages/mpmath/tests/test_eigen_symmetric.py	run_eigsy	   s$    



r   c           
      C   s   |rt dt|  t| \}}|t| |  }| | }||  t| j }|rnt d| t d| t|}t|}|rt d|d|d t d|d|d t	dt
tj }	||	k sJ ||	k sJ |S r   )r   r	   r   Zeigher
   transpose_conjr   r   r   r   r   r   r   r   r   r   	run_eighe$   s$    



r   Tc                 C   s  | j | j }}tdttj }|r@tdt|  td| tj| |d\}}}t	|j|j }	t
t||D ]}
||
 |	|
|
f< qr|rtdt| tdt| tdt| ||	 | |  }t|}|rtdt|d	| ||k sJ ||  t|j  }t|}|r,td
t|d	| ||k s:J | | t|j }t|}|rttdt|d	| ||k sJ d S Nr   r   full)full_matriceszU:
zS:
zV:
zC
r   zD:
zE:
)r   colsr   r   r   r   r   r	   svd_rzerosxrangeminr   r   r   r   r!   r   mnr   UZS0VSjr   errr   r   r   r   r   	run_svd_r?   s8    



r/   c                 C   s  | j | j }}tdttj }|r@tdt|  td| tj| |d\}}}t	|j|j }	t
t||D ]}
||
 |	|
|
f< qr|rtdt| tdt| tdt| ||	 | |  }t|}|rtdt|d	| ||k sJ ||  t|j  }t|}|r,td
t|d	| ||k s:J | | t|j }t|}|rttdt|d	| ||k sJ d S r   )r   r"   r   r   r   r   r   r	   svd_cr$   r%   r&   r   r   r   r'   r   r   r   	run_svd_cf   s8    



r1   c                 C   s\   d}t t|| \}}|t |8 }|t |8 }t ||k sFJ t ||k sXJ d S )Nh㈵>)r   gauss_quadraturelenmatrixr   )qtypeabr   der   r   r   	run_gauss   s    r;   
   c                 C   sL   t | | }t| D ]2}t| D ]$}tdt   d | |||f< q q|S )z,
    random matrix with integer entries
          )r   r5   r%   intrand)r)   ranger   ir-   r   r   r   irandmatrix   s
    $rC   c                  C   s  t ddgddgg} t|  t|  t ddgddgg} t|  t|  t g dg dg d	g} t|  t|  t g d
g dg dg} t|  t|  t ddgddgg} t|  t g dg dg dg} t|  t g dg dg dg} t|  d S )Nr=               )r=      rF   )rI   rD   rH   )rF   rH   rE   )r=   r   rF   )r   rD   r>   )rF   r>   rE   y      @      @y      @      )r=   y             &r   )y              &@rD   y              =@)r   y             =rE   )r=   y      &@      1@y      @      3@)y      &@      1rD   y      *      7@)y      @      3y      *      7rE   )r   r5   r   r   r   r   r   r   test_eighe_fixed_matrix   s$    rK   c                  C   sj   d} t dD ]X}dt| |  d }t d| D ],}t |d | D ]}|||f |||f< q@q.t| qd S )NrE   r<   r=   r>   r   )r%   r   
randmatrixr   Nr7   r   rB   r-   r   r   r   test_eigsy_randmatrix   s    rO   c                  C   s   d} t dD ]}dt| |  d ddt| |  d   }t d| D ]L}t|||f |||f< t |d | D ]}t|||f |||f< qrqFt| qd S )NrE   r<   r=   r>                 ?r   )r%   r   rL   reconjr   rM   r   r   r   test_eighe_randmatrix   s    ,rS   c                  C   sd   d} d}t dD ]N}t| |}t d| D ],}t |d | D ]}|||f |||f< q:q(t| qd S )N   r<   r   r>   )r%   rC   r   rN   Rr7   r   rB   r-   r   r   r   test_eigsy_irandmatrix   s    
rW   c                  C   s   d} d}t dD ]|}t| |dt| |  }t d| D ]L}t|||f |||f< t |d | D ]}t|||f |||f< qbq6t| qd S )NrT   r<   rP   r   r>   )r%   rC   r   rQ   rR   r   rU   r   r   r   test_eighe_irandmatrix   s    rX   c                  C   s   t dD ]} t dk}dtt d  }dtt d  }dt|| d }t dkr|d9 }t |D ]*}t |D ]}t|||f |||f< q|qpt||dd qd S )NrE         ?r>   r<   r=   Fr!   r   )r%   r   r@   r?   rL   r/   rB   r    r(   r)   r   xyr   r   r   test_svd_r_rand   s    r^   c                  C   s   t dD ]} t dk}dtt d  }dtt d  }dt|| d ddt|| d   }t dkr|d9 }t |D ]J}t |D ]<}tt|||f dtt|||f   |||f< qqt||dd qd S )	NrE   rY   r>   r<   r=   rP   FrZ   )r%   r   r@   r?   rL   rQ   Zimr1   r[   r   r   r   test_svd_c_rand  s    ,<r_   c               	   C   s   t dt t j } g dg dg dg dg dg dg dg d	g}t |}t t d
dt dddg}t j|dd}||8 }t || k sJ t j|dd}||8 }t || k sJ d S )Nr   )   r<   r=   rD   rF   )   rF   r<   r      )rH   rc   rG   rD   )rH   re   rT   )	   rb   r>   re   rT   )rf   r>   irE   rc   )r=   i   rE   r>   )rT   rE   r   re   r=   i     i  r   F)Z
compute_uv)	r   r   r   r   r5   sqrtr#   r   r0   )r   r7   r8   r,   r   r   r   test_svd_test_case  s$    	
 rj   c                  C   s   ddg} ddg}t d| | g d} g d}t d| | g d} g d}t d	| | d
dg} ddg}t d| | g d} g d}t d| | g d} g d}t d| | d S )NgEygEy?r>   legendre)g{[lg0#;r   g0#;?g{[l?)ΞS?$%ڡ?gr3yV4?rm   rl   )gHƱ?g?g
p?gü6?)>c@C?:Ά_?ro   rn   
legendre01g'eg'e?gE%[?hermite)g"U) g䬀)r   g䬀)?g"U) @)8Dn?R1?g??rs   rr   )g\m?gpPZ@g\(@)g F?g1m<?goF?laguerre)r;   )r7   r8   r   r   r   test_gauss_quadrature_static*  s$    ru   c              	      s  dt d d  fdddfdd	}|d	d
d ddg |ddd ddg |ddd t j t jg |ddd dt jg |ddd dt jgdt d d |ddd ddg |ddd ddg |ddd ddgdt d dt d d d S )NrE   r=   r>   c                    s2   d}t t d ddD ]}||   |  }q|S )Nr   r>   rc   )r%   r4   )r\   rrB   rJ   r   r   FH  s    z(test_gauss_quadrature_dynamic.<locals>.Fr   c                    s   t j| ||d\}}d}tt|D ]}||| ||  7 }q&t  fdd|}	t ||	 }
rzt| |
||	 |
dk sJ d S )Nalphabetar   c                    s   |  |  S Nr   r\   )rw   FWr   r   <lambda>U      z<test_gauss_quadrature_dynamic.<locals>.run.<locals>.<lambda>r2   )r   r3   r%   r4   Zquadfabsr   )r6   r}   rV   ry   rz   XWr7   rB   r8   c)rw   r)   r   )r}   r   runN  s    z*test_gauss_quadrature_dynamic.<locals>.runrk   c                 S   s   dS Nr>   r   r|   r   r   r   r~   ^  r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>rc   rp   c                 S   s   dS r   r   r|   r   r   r   r~   _  r   rq   c                 S   s   t |  |  S r{   r   r   r|   r   r   r   r~   `  r   rt   c                 S   s   t |  S r{   r   r|   r   r   r   r~   a  r   Z	glaguerrec                 S   s   t | t |   S r{   )r   ri   r   r|   r   r   r   r~   b  r   )ry   Z
chebyshev1c                 S   s   dt d| |    S r   r   ri   r|   r   r   r   r~   c  r   Z
chebyshev2c                 S   s   t d| |   S r   r   r|   r   r   r   r~   d  r   Zjacobic                 S   s,   d|  dt d  d|  dt d   S )Nr>   rD   rE   )r   mpfr|   r   r   r   r~   e  r   rD   rx   )r   r   )r   rL   infr   )r   r   r   )r   rw   r)   r   r   test_gauss_quadrature_dynamicC  s    $r   N)F)F)FT)FT)r<   )F)Zmpmathr   r   backendr%   r   r   r/   r1   r;   rC   rK   rO   rS   rW   rX   r^   r_   rj   ru   r   r   r   r   r   <module>   s$   


'
'

