o
    lh<                     @   s   d dl Z d dlT d dlmZmZmZmZmZmZm	Z	m
Z
mZmZm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)*)SecantMuller	BisectionIllinoisPegasusAndersonRidderANewtonNewtonMNewtonMDNewtonc               	   C   s>  dt _tdd tddsJ tttdtsJ tttdtdfts-J tdd td	d
s;J dd } tt	t
ttfD ]}t| d|d}t| |tk sYJ qFt	ttttttfD ]}t| d|d}t| |tk svJ qcdd } tt| dddtsJ ttj| dddtjsJ ttj| dddtsJ ttj| dddtsJ tt' td tdd tddd W d    n1 sw   Y  W d    n1 sw   Y  tt tdd d W d    n1 sw   Y  tt tdd d W d    d S 1 sw   Y  d S )N   c                 S   s   d|  d S )N       xr   r   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/mpmath/tests/test_rootfinding.py<lambda>	       ztest_findroot.<locals>.<lambda>   g      ?r   gQ	@c                 S   s   | |  d S N   r   r   r   r   r   r      r   y       @       @y              ?c                 S   s   t | S N)cosr   r   r   r   r                 @solver)      ?r   c                 S   s   | d d S N   r   r   r   r   r   r      r   r   g|=)tolr    y      ?        r"   c                 S   s   | d d|   d S )Nr"   iC l   F[ r   r   r   r   r   r   "       z	5.278e+13z
-5.278e+13)realimagc                 S      dS )Nr   r   r   r   r   r   '       r   c                 S   s   d|  d d S )Nr      r   )pr   r   r   r   +       g?)mpdpsfindrootmpfaesinpimpcr   r   r   r   r
   absepsr   r   r   r   r	   
isinstanceivfpfloatcomplexpytestraises
ValueErrorworkprec)fr   r   r   r   r   test_findroot   sB    

$rA   c                   C   s   t dd ddddksJ d S )Nc                 S   s   | d d S )Nr"   r   r   r   r   r   r   r   /   r   z test_bisection.<locals>.<lambda>)r   r"   bisectr   r   r/   r   r   r   r   test_bisection-   s   rD   c                  C   s.   dd } t | ddd}t| |tk sJ d S )Nc                 S   s   t g d| S )N)r   r   r   r   )polyvalr   r   r   r   r   2       ztest_mnewton.<locals>.<lambda>gmnewtonr   )r/   r5   r6   r@   r   r   r   r   test_mnewton1      rI   c                  C   .   dd } t | dtd}t| |tk sJ d S )Nc                 S   s   | d d S )Nr"   d   r   r   r   r   r   r   7   r   ztest_anewton.<locals>.<lambda>r    r   )r/   r
   r5   r6   rH   r   r   r   test_anewton6   rJ   rM   c                  C   rK   )Nc                 S   s   d|  d d S )Nr"   r   r   r   r   r   r   r   <   r,   ztest_muller.<locals>.<lambda>r    r   )r/   r   r5   r6   rH   r   r   r   test_muller;   rJ   rN   c                      sD   t ddD ] t fddd ksJ qtdd ddks J d S )Nr   r   c                    s   | d   S r   r   r   ir   r   r   B   r   z#test_multiplicity.<locals>.<lambda>c                 S   s   | d S r!   r   r   r   r   r   r   C   r   r   )rangemultiplicityr   r   rO   r   test_multiplicity@   s   rS   c                     s   dd } t t| dtddgddgg dd	k sJ tt| ddd
d dD ]\}}q%t| | ddk s5J dd  dd dd  fdd} t| d}dd |D ddgks[J d S )Nc                  W   sX   d| d d  d| d d   d | d d d| d   | d d  d| d   d gS )Nr   r   r"   r      r   r   r   r   r   r@   F   s   Xz test_multidimensional.<locals>.f)r      rT   r   rU   r   gHz>c                 S   s
   t | tS r   )norminfr   r   r   r   r   J   s   
 z'test_multidimensional.<locals>.<lambda>)verboserW   r"   g+=c                 S   s   |  d|  S r!   r   r   yr   r   r   r   O   rF   c                 S   s(   | d | |d d   d|  | d  S )Nr"   r   r   rZ   r   r   r   r   P   s   ( c                 S   s   t | d |d  S r!   )sqrtrZ   r   r   r   r   Q   r$   c                    s&    | |}| || | || fS r   r   )r   r[   f1xf1f2f3r   r   r@   R   s   
)
   rb   c                 S   s   g | ]}t t|qS r   )intround).0rP   r   r   r   
<listcomp>V   s    z)test_multidimensional.<locals>.<listcomp>r   r   )mnormjacobianmatrixr   r-   rW   r/   )r@   r   errorr   r^   r   test_multidimensionalE   s   ,

rk   c                   C   s0   t dd ddksJ t dd ddksJ d S )Nc                 S   r'   )Nr   r   r   r   r   r   r   Y   r)   ztest_trivial.<locals>.<lambda>r   c                 S   s   | S r   r   r   r   r   r   r   Z   r)   r   rC   r   r   r   r   test_trivialX   s   rl   )r<   mpmathmpmath.calculus.optimizationr   r   r   r   r   r   r	   r
   r   r   r   rA   rD   rI   rM   rN   rS   rk   rl   r   r   r   r   <module>   s    4'