
    gJ"                         d dl mZ d dl mZ ej        j        ZddZddZddZddZd	 Z	ddZ
d Zd Zd Zd Zd Zd Zd Zd Zd ZddZdS )    )mp)libmpFc                    |rt          dt          |                      t          j        |           \  }}|t          j        |          z  |                                z  }| |z
  }||                                z  t          j        | j                  z
  }|r t          d|           t          d|           t          j        |          }t          j        |          }|r&t          d|d|d           t          d|d|d           t          j	        dt          j
        t          j                  z            }	||	k     sJ ||	k     sJ |S Noriginal matrix:
zeigenvalues:
zeigenvectors:
zdifference:
皙?)printstrr   eigsydiag	transposeeyerowsmnormexplogeps
AverboseDQBCENCNEr   s
             ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_eigen_symmetric.py	run_eigsyr    	   s/    ,"CFF+++8A;;DAq	BGAJJ&A	AA	AKKMMBF16NN*A $"""###	!B	!B 0mRq$///mRq$///
&#rv&
'
'C88888888I    c                    |rt          dt          |                      t          j        |           \  }}|t          j        |          z  |                                z  }| |z
  }||                                z  t          j        | j                  z
  }|r t          d|           t          d|           t          j        |          }t          j        |          }|r&t          d|d|d           t          d|d|d           t          j	        dt          j
        t          j                  z            }	||	k     sJ ||	k     sJ |S r   )r
   r   r   eigher   transpose_conjr   r   r   r   r   r   r   s
             r   	run_eigher%   $   s7    ,"CFF+++8A;;DAq	BGAJJ))+++A	AA	A/A $"""###	!B	!B 0mRq$///mRq$///
&#rv&
'
'C88888888Ir!   Tc                    | j         | j        }}t          j        dt          j        t          j                  z            }|r-t          dt          |                      t          d|           t          j        | |          \  }}}t          j	        |j        |j                   }	t          t          ||                    D ]}
||
         |	|
|
f<   |rWt          dt          |                     t          dt          |                     t          dt          |                     ||	z  |z  | z
  }t          j        |          }|rt          dt          |          d	|           ||k     sJ ||                                z  t          j        |j                   z
  }t          j        |          }|rt          d
t          |          d	|           ||k     sJ |                                |z  t          j        |j                  z
  }t          j        |          }|rt          dt          |          d	|           ||k     sJ 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   US0VSjr   errr   r   s                  r   	run_svd_rr8   ?   s   616qA
&rvbf~~%
&
&C %"CFF+++fm$$$x=999HAr1
  AC1II  A!A# fc!fffc"ggfc!ff	A	AA
(1++C (eSVVT3'''9999	AKKMMBF16NN*A
(1++C )fc!ffdC(((9999	BF16NN*A
(1++C )fc!ffdC(((999999r!   c                    | j         | j        }}t          j        dt          j        t          j                  z            }|r-t          dt          |                      t          d|           t          j        | |          \  }}}t          j	        |j        |j                   }	t          t          ||                    D ]}
||
         |	|
|
f<   |rWt          dt          |                     t          dt          |                     t          dt          |                     ||	z  |z  | z
  }t          j        |          }|rt          dt          |          d	|           ||k     sJ ||                                z  t          j        |j                   z
  }t          j        |          }|rt          d
t          |          d	|           ||k     sJ |                                |z  t          j        |j                  z
  }t          j        |          }|rt          dt          |          d	|           ||k     sJ d S r'   )r   r*   r   r   r   r   r
   r   svd_cr,   r-   r.   r   r$   r   r/   s                  r   	run_svd_cr;   f   s   616qA
&rvbf~~%
&
&C %"CFF+++fm$$$x=999HAr1
  AC1II  A!A# fc!fffc"ggfc!ff	A	AA
(1++C (eSVVT3'''#::::	A/A
(1++C )fc!ffdC(((9999	Q/A
(1++C )fc!ffdC(((999999r!   c                    d}t          j        t          |          |           \  }}|t          j        |          z  }|t          j        |          z  }t          j        |          |k     sJ t          j        |          |k     sJ d S )Nh㈵>)r   gauss_quadraturelenmatrixr   )qtypeabr   des         r   	run_gaussrF      s    
Cs1vvu--DAq1A1A8A;;8A;;r!   
   c                     t          j        | |           }t          |           D ]B}t          |           D ]0}t          dt          j                    z  dz
  |z            |||f<   1C|S )z,
    random matrix with integer entries
          )r   r@   r-   intrand)r1   ranger   ir6   s        r   irandmatrixrO      sr     		!QAAYY 5 5 	5 	5ARWYY*e344AacFF	5Hr!   c                     t          j        ddgddgg          } t          |            t          |            t          j        ddgddgg          } t          |            t          |            t          j        g dg dg d	g          } t          |            t          |            t          j        g d
g dg dg          } t          |            t          |            t          j        ddgddgg          } t          |            t          j        g dg dg dg          } t          |            t          j        g dg dg dg          } t          |            d S )NrI               )rI      rS   )rV   rQ   rU   )rS   rU   rR   )rI   r   rS   )r   rQ   rJ   )rS   rJ   rR   y      @      @y      @      )rI   y             &r   )y              &@rQ   y              =@)r   y             =rR   )rI   y      &@      1@y      @      3@)y      &@      1rQ   y      *      7@)y      @      3y      *      7rR   )r   r@   r    r%   )r   s    r   test_eighe_fixed_matrixrW      sf   
	Aq6Aq6"##AaLLLaLLL
	As8c2Y'((AaLLLaLLL
	:::{{{JJJ788AaLLLaLLL
	999iii344AaLLLaLLL 		At9tQi())AaLLL
	<<<>??AaLLL
	)))+C+C+CE\E\E\]^^AaLLLLLr!   c                      d} t          d          D ]d}dt          j        | |           z  dz
  }t          d|           D ]'}t          |dz   |           D ]}|||f         |||f<   (t          |           ed S )NrR   rG   rI   rJ   r   )r-   r   
randmatrixr    NrB   r   rN   r6   s        r   test_eigsy_randmatrixr\      s    	ABZZ  a###a'1 	  	 AAE1%%    1Q3!A#  	! r!   c                     d} t          d          D ]}dt          j        | |           z  dz
  ddt          j        | |           z  dz
  z  z   }t          d|           D ]Z}t          j        |||f                   |||f<   t          |dz   |           D ]#}t          j        |||f                   |||f<   $[t          |           d S )NrR   rG   rI   rJ                 ?r   )r-   r   rY   reconjr%   rZ   s        r   test_eighe_randmatrixra      s    	ABZZ  q!$$$q(B!bmAq6I6I2IA2M,NN1 	) 	)AU1QqS6]]AacFAE1%% ) )1Q3!A#) 	! r!   c                      d} d}t          d          D ]Y}t          | |          }t          d|           D ]'}t          |dz   |           D ]}|||f         |||f<   (t          |           Zd S )N   rG   r   rJ   )r-   rO   r    r[   RrB   r   rN   r6   s         r   test_eigsy_irandmatrixrf      s    	A	ABZZ  
a

1 	  	 AAE1%%    1Q3!A#  	! r!   c                  n   d} d}t          d          D ]}t          | |          dt          | |          z  z   }t          d|           D ]Z}t          j        |||f                   |||f<   t          |dz   |           D ]#}t          j        |||f                   |||f<   $[t          |           d S )Nrc   rG   r^   r   rJ   )r-   rO   r   r_   r`   r%   rd   s         r   test_eighe_irandmatrixrh      s    	A	ABZZ  
a

b;q!#4#44
41 	) 	)AU1QqS6]]AacFAE1%% ) )1Q3!A#) 	! r!   c                     t          d          D ]} t          j                    dk    }dt          t          j                    dz            z   }dt          t          j                    dz            z   }dt          j        ||          z  dz
  }t          j                    dk    rE|dz  }t          |          D ]0}t          |          D ]}t          |||f                   |||f<   1t          ||d           d S )NrR         ?rJ   rG   rI   Fr)   r   )r-   r   rL   rK   rY   r8   rN   r(   r0   r1   r   xys          r   test_svd_r_randro      s   AYY < <wyy3BGIIN###BGIIN###a###a'799s??GAAYY ' ' ' 'Aq1v;;AacFF' 	!TU;;;;;< <r!   c                     t          d          D ]M} t          j                    dk    }dt          t          j                    dz            z   }dt          t          j                    dz            z   }dt          j        ||          z  dz
  ddt          j        ||          z  dz
  z  z   }t          j                    dk    r|dz  }t          |          D ]o}t          |          D ]]}t          t          j        |||f                             dt          t          j        |||f                             z  z   |||f<   ^pt          ||d           Od S )	NrR   rj   rJ   rG   rI   r^   Frk   )r-   r   rL   rK   rY   r_   imr;   rl   s          r   test_svd_c_randrr     sR   AYY 8 8wyy3BGIIN###BGIIN###q!$$$q(B!bmAq6I6I2IA2M,NN799s??GAAYY H H H HAruQqsV}}--Sq1v5G5G0GGAacFFH 	!4777778 8r!   c            	         t          j        dt          j        t           j                  z            } g dg dg dg dg dg dg dg d	g}t          j        |          }t          j        t          j        d
          dt          j        d          ddg          }t          j        |d          }||z  }t          j        |          | k     sJ t          j        |d          }||z  }t          j        |          | k     sJ d S )Nr	   )   rG   rI   rQ   rS   )   rS   rG   r      )rU   rw   rT   rQ   )rU   ry   rc   )	   rv   rJ   ry   rc   )rz   rJ   irR   rw   )rI   i   rR   rJ   )rc   rR   r   ry   rI   i     i  r   F)
compute_uv)	r   r   r   r   r@   sqrtr+   r   r:   )r   rB   rC   r5   s       r   test_svd_test_caser     s    &rvbf~~%
&
&C																									 A 		!A
	274=="bgcllAq9::A
'''AFA8A;;
'''AFA8A;;r!   c                  2   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?rJ   legendre)g{[lg0#;r   g0#;?g{[l?)ΞS?$%ڡ?gr3yV4?r   r   )gHƱ?g?g
p?gü6?)>c@C?:Ά_?r   r   
legendre01g'eg'e?gE%[?hermite)g"U) g䬀)r   g䬀)?g"U) @)8Dn?R1?g??r   r   )g\m?gpPZ@g\(@)g F?g1m<?goF?laguerre)rF   )rB   rC   s     r   test_gauss_quadrature_staticr   *  s    	z"A
aAj!a   QQQAPPPAj!a   <<<A<<<AlA"""	z"A
z"AiQOOOAOOOAiQ///A///Aj!a     r!   c           
      6    dt          j        dz  d          fdd fd	} |dd d	dg            |d
d ddg            |dd t           j         t           j        g            |dd dt           j        g            |dd dt           j        gdt          j        d          z              |dd d	dg            |dd d	dg            |dd d	dgdt          j        d          z  dt          j        d          z             d S )NrR   rI   rJ   c                 p    d}t          t                    dz
  dd          D ]}|| z  |         z   }|S )Nr   rJ   rw   )r-   r?   )rm   rrN   r   s      r   Fz(test_gauss_quadrature_dynamic.<locals>.FH  sE    A
B++ 	 	AA!AAr!   r   c                 T   t          j        | ||          \  }}d}t          t          |                    D ]}|||          ||                   z  z  } t          j        fd|          }	t          j        ||	z
            }
rt          | |
||	           |
dk     sJ d S )Nalphabetar   c                 2     |            |           z  S N )rm   r   FWs    r   <lambda>z<test_gauss_quadrature_dynamic.<locals>.run.<locals>.<lambda>U  s    bbeeaaddl r!   r=   )r   r>   r-   r?   quadfabsr
   )rA   r   re   r   r   XWrB   rN   rC   cr   r1   r   s    `         r   runz*test_gauss_quadrature_dynamic.<locals>.runN  s    "1eU4HHH1A 	  	 A1!A$AAG*****A..GAENN 	"%Aq!!!4xxxxxxr!   r   c                     dS NrJ   r   rm   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>^  s    a r!   rw   r   c                     dS r   r   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>_  s     r!   r   c                 2    t          j        |  | z            S r   r   r   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>`  s    RVQBqD\\ r!   r   c                 ,    t          j        |            S r   r   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>a  s    bfaRjj r!   	glaguerrec                 V    t          j        |           t          j        |            z  S r   )r   r~   r   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>b  s    rwqzz"&!**4 r!   )r   
chebyshev1c                 <    dt          j        d| | z  z
            z  S r   r   r~   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>c  s    "'!AaC%.. 0 r!   
chebyshev2c                 6    t          j        d| | z  z
            S r   r   r   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>d  s    !A# r!   jacobic                 x    d| z
  dt          j        d          z  z  d| z   dt          j        d          z  z  z  S )NrJ   rQ   rR   )r   mpfr   s    r   r   z/test_gauss_quadrature_dynamic.<locals>.<lambda>e  s5    QqSAbfQiiK0AaC1RVAYY;3GG r!   rQ   r   )r   r   )r   rY   infr   )r   r   r   r   r1   s   ` @@@r   test_gauss_quadrature_dynamicr   C  s   	A
a!eQA             C
KK"a)))CkkAq6***C	))RVGRV+<===C
((1bf+666C44q"&k1rvVWyy=YYYYC002q':::C..Q888CGG"aZ[^`^def^g^gZgpqtvtz{|t}t}p}r!   N)F)FT)rG   )mpmathr   r   backendr-   r    r%   r8   r;   rF   rO   rW   r\   ra   rf   rh   ro   rr   r   r   r   r   r!   r   <module>r      sU              		   6   6% % % %N% % % %N       8
 
 
      < < <8 8 8  6! ! !2"@ "@ "@ "@ "@ "@r!   