o
    lh#                     @   sd   d dl Z d dlT 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S )    N)*c                  C   sn   dt _dd } t| ddgddd\}}|d	k sJ td
D ]}d|d  }tt||| | |k s4J qd S )N   c                 S   s   t dd|   |  S )N   )cosx r   n/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/test_calculus.py<lambda>       z$test_approximation.<locals>.<lambda>r         T)errorgh㈵>
   g      @)mpdpschebyfitrangeabspolyval)fperrir   r   r   r	   test_approximation   s    r   c                   C   sB   dt _tdd dtdd sJ tdd ttsJ d S )Nr   c                 S   s   | t |  | d  S )N   )sinr   r   r   r	   r
      r   ztest_limits.<locals>.<lambda>r         c                 S   s   dd|   |  S Nr   r   )nr   r   r	   r
          )r   r   limitaempfinfer   r   r   r	   test_limits   s    r'   c                  C   sn   t g ddks	J t dgddksJ t dgddksJ g d} t | ddks*J t | dddd	ks5J d S )
Nr   r      )r   r   r(   r      T)
derivative)r*      )r   r   r   r   r	   test_polyval   s   r.   c                  C   s   t ddg} | d dsJ t g d\} }| dtdt  s$J |dtdt  s1J t dgg ks:J ttdd	  d S )
Nr   r   r   )r   r   r   r   c                   S   s
   t dgS )Nr   )	polyrootsr   r   r   r	   r
   #   s   
 z test_polyroots.<locals>.<lambda>)r1   r#   sqrtjpytestraises
ValueError)r   qr   r   r	   test_polyroots   s   r8   c               	   C   s   d} g d}t dD tt j t|ddd| d d W d    n1 s(w   Y  t|d	dd| d d}d
d |D }|g dksGJ W d    d S 1 sRw   Y  d S )N@   Al	   #!yUMDQj~U4	 r   l`<	&&
 xXD`D r   l	   #~O6dIW6ob9r   l N$UVOF>`}Dr   l	   ha0r3(|Wo9Er   lcs9lMhPc;/,3 r   l
   p~	#]ls<m r   lW)4G`Y r   l
   <g?I"GX)p@/ r   lg24Kc89z r   l
    1_bm-9w:bYj r   l	@bmDu#pO2> r   l
   J={|L	m~;` r   l`|fl?'h_K r   l
   eo.!03a7# r   l / $+-kMsf]`:r   l	   ;bfLHQLRr   l /v\ QB8%r   l	   e]r+a ;M~DMLr   l`|]B`3*0Vwk_ r   l	   J5]c<OJg1 r   l	x,a6F~E8P r   l    V'6@h>)r   l~&-ME	A"r   l   <-AGn,a;0$S r   lW?n05%Zu r   l   pbz^.qr   lcd qTT r   l   h9N$$).lF4 r   l Ns,1j	r   l   #vsKn?b; r   l`<x!ur   l   #!Oer   r(   TFr   maxstepscleanupr   	extraprec2   c                 S   s   g | ]}t |qS r   )str).0rr   r   r	   
<listcomp>P   r   z+test_polyroots_legendre.<locals>.<listcomp>)@-0.999-0.996-0.991-0.983-0.973-0.961-0.946-0.93-0.911-0.889-0.866-0.841-0.813-0.784-0.753-0.72-0.685-0.649-0.611-0.572-0.531-0.489-0.446-0.402-0.357-0.311-0.265-0.217-0.17-0.121-0.073-0.02430.02430.0730.1210.170.2170.265z0.3110.3570.4020.4460.4890.5310.5720.6110.6490.6850.720.7530.7840.8130.8410.8660.8890.9110.930.9460.9610.9730.9830.9910.9960.999)r   workdpsr4   r5   NoConvergencer1   )r    coeffsrootsr   r   r	   test_polyroots_legendre%   s    "


"r   c               	   C   s  d} g d}t g d}tdtj  t|dddd|  d}W d    n1 s*w   Y  ttj t|d	dd| d W d    n1 sIw   Y  t|d	dd| |d
\}}tt |t |	t
 |k skJ t|ddd| |d d d
\}}tt |t |	t
 |k sJ d S )Nd   r:   )ArD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   z 0.311rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   z1.0r   r?   TFr;   r(   )r<   r=   r   r>   
roots_init   <   )matrixr   r   r   r1   r4   r5   r   maxapplyr   )
extra_precr   r   roots_exactr   r   roots1err1r   r   r	   test_polyroots_legendre_init]   s*   "



"

&r   c            	      C   s   t d} dt_d}| g}d}td|d D ]}||9 }|| |  qt||d |d \}}tdddD ] }t|d d d |t|d d d | }|t	|dsUJ q5d	t_d S )
Nr      r   r   r   g?r0   g|=r   )
r$   r   r   r   appendpadearanger   r#   exp)	oneNakr   r   r7   r   rB   r   r   r	   	test_pade   s   (
r   c                  C   s   dt _tdd ddgd\} }| d dsJ | d d	td
 dt  s)J | d d
td
 dt  s:J |d dksBJ |d d
dt  sOJ |d d
dt  s\J t| |fddgddskJ d S )Nr   c                 S   s   | d S r   r   r   r   r   r	   r
      s    ztest_fourier.<locals>.<lambda>r0   r   r   g      ?r   r   r   g?)r   r   fourierr#   r2   pi
fourierval)csr   r   r	   test_fourier   s   """r   c                   C   s4   dt _tdd dddtdt  d sJ d S )Nr   c                 S   s   | S Nr   tr   r   r	   r
      s    z test_differint.<locals>.<lambda>r   g      r   r   )r   r   	differintr#   r2   r   r   r   r   r	   test_differint   s   .r   c                  C   s  dt _d} dd }dd }|| }t|| dd|sJ t|| dd|s)J t|| d	d|s5J t|| d
d|sAJ d} || }t|| dd|sSJ t|| dd|s_J t|| d	d|skJ t|| d
d|swJ d} dd }dd }|| }t|| dd|sJ t|| dd|sJ t|| d	d|sJ t|| d
d|sJ d} || }t|| dd|sJ t|| dd|sJ t|| d	d|sJ t|| d
d|sJ d S )Nr   g{Gz?c                 S   s   d| d d  S )Nr   r   r   r-   r   r   r	   r
      r!   ztest_invlap.<locals>.<lambda>c                 S   s   | t |   S r   )r   r   r   r   r	   r
          talbot)methodstehfestdehoogcoheng      ?c                 S   s   t | |  S r   )logr-   r   r   r	   r
      s    c                 S   s   t  t|  S r   )eulerr   r   r   r   r	   r
      r   )r   r   invertlaplacer#   )r   fpftfttr   r   r	   test_invlap   s:   r   )r4   mpmathr   r'   r.   r8   r   r   r   r   r   r   r   r   r   r	   <module>   s    		
8>