
    wg<                     z    d dl Z d dl 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 Zd Zd Zd Zd Zd	 Zd
 Zd Zy)    N)*)SecantMuller	BisectionIllinoisPegasusAndersonRidderANewtonNewtonMNewtonMDNewtonc            	         dt         _        t        d t        d            j	                  d      sJ t        t
        t        d            j	                  t              sJ t        t
        t        d      t        d      f      j	                  t              sJ t        d t        d            j	                  d	      sJ d
 } t        t        t        t        t        fD ]*  }t        | d|      }t         | |            t        k  r*J  t        t        t        t         t"        t$        t&        fD ]*  }t        | d|      }t         | |            t        k  r*J  d } t)        t        | dd      t              sJ t)        t*        j                  | dd      t*        j                        sJ t)        t,        j                  | dd      t.              sJ t)        t,        j                  | dd      t0              sJ t3        j4                  t6              5  t9        d      5  t        d t        dd             d d d        d d d        t3        j4                  t6              5  t        d d       d d d        t3        j4                  t6              5  t        d d       d d d        y # 1 sw Y   pxY w# 1 sw Y   txY w# 1 sw Y   QxY w# 1 sw Y   y xY w)N   c                     d| z  dz
  S )N       xs    b/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_rootfinding.py<lambda>ztest_findroot.<locals>.<lambda>	       ac!e        g      ?r   gQ	@c                     | | z  dz   S N   r   r   s    r   r   ztest_findroot.<locals>.<lambda>   r   r   y       @       @y              ?c                     t        |       S N)cosr   s    r   r   ztest_findroot.<locals>.<lambda>   s
    #a& r          @solver)      ?r"   c                     | dz
  dz  S N   r   r   s    r   r   ztest_findroot.<locals>.<lambda>   s    1q51* r   r   g|=)tolr%   y      ?        r(   c                     | dz  d| z  z
  dz   S )Nr(   iC l   F[ r   r   s    r   r   ztest_findroot.<locals>.<lambda>"   s    q!tgai/.@ r   z	5.278e+13z
-5.278e+13)realimagc                      y)Nr   r   s    r   r   ztest_findroot.<locals>.<lambda>'       r   r   c                     d| z
  dz  dz
  S )Nr      r   )ps    r   r   ztest_findroot.<locals>.<lambda>+   s    AEB;? 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   s      r   test_findrootrG      sI   BFOSV,//555CQ ##B'''C#a&#d),-00444OSY/222666A67FG< Q6*1Q4y3 69h Q01Q4y3
 	Ahq!/555bkk!RUk3RVV<<<bkk!QEk2E:::bkk!Tuk5w??? 
z	" ?a[ 	?@k=?	?? 
z	" "q!" 
z	" 1*C01 1	? 	?? ?" "1 1s<   J:&J.?J:(KK.J7	3J::KKKc                  ,    t        d dd      dk(  sJ y )Nc                     | dz  dz
  S )Nr(   r   r   r   s    r   r   z test_bisection.<locals>.<lambda>/   s    ad1f r   )r   r(   bisectr#   r   r5   r   r   r   test_bisectionrL   -   s    $U(;q@@@r   c                  Z    d } t        | dd      }t         | |            t        k  sJ y )Nc                     t        g d|       S )N)r   r   r   r   )polyvalr   s    r   r   ztest_mnewton.<locals>.<lambda>2   s    ')A& r   gmnewtonr#   )r5   r;   r<   rF   r   s     r   test_mnewtonrR   1   s)    &AD+Aqt9s??r   c                  b    d } t        | dt              }t         | |            t        k  sJ y )Nc                     | dz
  dz  S )Nr(   d   r   r   s    r   r   ztest_anewton.<locals>.<lambda>7   s    1q53, r   r%   r#   )r5   r   r;   r<   rQ   s     r   test_anewtonrV   6   s)    ABw'Aqt9s??r   c                  b    d } t        | dt              }t         | |            t        k  sJ y )Nc                     d| z   dz  dz   S )Nr(   r   r   r   s    r   r   ztest_muller.<locals>.<lambda><   s    1q51*q. r   r%   r#   )r5   r   r;   r<   rQ   s     r   test_mullerrY   ;   s)     ABv&Aqt9s??r   c                  t     t        dd      D ]   t         fdd       k(  rJ  t        d d      dk(  sJ y )Nr   r   c                     | dz
  z  S r   r   )r   is    r   r   z#test_multiplicity.<locals>.<lambda>B   s    q1uqj r   c                     | dz  S r'   r   r   s    r   r   z#test_multiplicity.<locals>.<lambda>C   s
    !Q$ r   r   )rangemultiplicity)r\   s   @r   test_multiplicityr`   @   sC    1a[ :0!4999:*a///r   c                  `   d } t        t        | d      t        ddgddgg      z
  d      dk  sJ t        t        | ddd	 
      D ]  \  }} t         |  d      dk  sJ d d d fd} t        | d      }|D cg c]  }t        t        |             c}ddgk(  sJ y c c}w )Nc                      d| d   dz  z  d| d   dz  z  z
  dz
  | d   dz  d| d   z  z
  | d   dz  z   d| d   z  z   dz
  gS )Nr   r   r(   r      r   r   s    r   rF   z test_multidimensional.<locals>.fF   sb    !A$'	!AaD!G)#A%qtQwq1v~adAg'=a!f'DQ'FGGr   )r      rc   r   rd   r   gHz>c                 "    t        | t              S r    )norminfr   s    r   r   z'test_multidimensional.<locals>.<lambda>J   s    DCL r   )verboserg   r(   g+=c                     |  d|z  z   S r'   r   r   ys     r   r   z'test_multidimensional.<locals>.<lambda>O   s    qb1Q3h r   c                 <    | dz  | |dz  dz
  z  z   d|z  z
  | dz   z  S )Nr(   r   r   rk   s     r   r   z'test_multidimensional.<locals>.<lambda>P   s-    q!taAl*QqS0q1u= r   c                 *    t        | dz  |dz  z         S r'   )sqrtrk   s     r   r   z'test_multidimensional.<locals>.<lambda>Q   s    d1a4!Q$;' r   c                 F     | |      } | |      |z
   | |      |z
  fS r    r   )r   rl   f1xf1f2f3s      r   rF   z test_multidimensional.<locals>.fR   s-    Ah1a31a3//r   )
   ru   r   r   )	mnormjacobianmatrixr   r3   rg   r5   intround)rF   r   errorr\   rr   rs   rt   s       @@@r   test_multidimensionalr|   E   s    H!V$v!uaVn'==a@5HHHRFA"8: 5 1q>E!!! 
B	=B	'B0 	HA#$%aCaM%!Q///%s   B+c                  L    t        d d      dk(  sJ t        d d      dk(  sJ y )Nc                      y)Nr   r   r   s    r   r   ztest_trivial.<locals>.<lambda>Y   r/   r   r   c                     | S r    r   r   s    r   r   ztest_trivial.<locals>.<lambda>Z   s    a r   r   rK   r   r   r   test_trivialr   X   s,    K#q(((K#q(((r   )rB   mpmathmpmath.calculus.optimizationr   r   r   r   r   r	   r
   r   r   r   r   rG   rL   rR   rV   rY   r`   r|   r   r   r   r   <module>r      sM     B B B B%1NA


0
0&)r   