
    wgx                        d dl  d dl d dlZd dlZd dlZd dlZefdZdZdZ	dZ
dZdZd	Zd
ZdZdZdZdZdZdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2d/ Z3d0 Z4d1 Z5d2 Z6d3 Z7d4 Z8d5 Z9d6 Z:d7 Z;d8 Z<d9 Z=d: Z>d; Z?d< Z@d= ZAd> ZBd? ZCy)@    )*Nc                     d}|xr& | j                   j                  |j                   |      }|xr& | j                  j                  |j                  |      }|S )NT)realaeimag)abepsress       `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/mpmath/tests/test_functions.pympc_aer      sF    
C

(!&&))AFFC(C

(!&&))AFFC(CJ    zg3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798zg2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642743zi0.0174532925199432957692369076848861271344287188854172545609719144017100911460344944368224156963450948221zh0.577215664901532860606512090082402431042159335939923598805767234884867726777664670936947063291746749516zh0.693147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542zg2.30258509299404568401799145468436420760110148862877297603332790096757260967735248023599720508959829834zh0.915965594177219015054603514932384110774149374281672134266498119621763019776254769479356512926115106249zg2.68545200106530644530971483548179569382038229399446295305115234555721885953715200280114117493184769800zm1.28242712910062263687534256886979172776768892732500119206374002174040630885882646112973649195820237439420646zg1.20205690315959428539973816151144999076498629234049888179227155534183820578631309018645587360933525815zj1.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748475zh0.261497212847642783755426838608695859051566648261199206192064213924924510897368209714142631434246651052zh0.660161815846869573927812110014555778432623360284733413319448423335405642304495277143760031413839867912c                     dD ]5  } | t         _        t        t        t              k(  sJ t
        t        t              k(  sJ t        t        t              k(  sJ t        t        t              k(  sJ t        t        t              k(  sJ t        t        t              k(  sJ t        t        t               k(  sJ t"        t        t$              k(  sJ t&        t        t(              k(  sJ t*        t        t,              k(  sJ | dk  st.        t        t0              k(  sJ t2        t        t4              k(  r6J  dt         _        t        dk\  sJ t        dkD  sJ t        dkD  sJ t        dk  sJ y )N)	      
         %   P   d      2   r      r      )mpdpspimpftpietedegreetdegreeeulerteulerln2tln2ln10tln10catalantcatalankhinchin	tkhinchinglaisher	tglaisherphitphimertenstmertens	twinprime
ttwinprimeprecs    r   test_constantsr:   -   s(   3 0SX~~CG||W%%%F###c$is5z!!!#h-'''3y>)))3y>)))c$i"9c(m+++J///0 BF8O86M66M66M6r   c            	      H   t        d      D ]  } t        t        | | z              | k(  rJ  t        j                  d       dD ]a  }|t
        _        t        d      D ]F  } t        j                  d|dz  dz
  z  d|dz  dz
  z        }t        t        ||z              |k(  rFJ  c dt
        _        t        d      D ]b  } d	D ][  }t        t        ||z  d| z  f            t        || f      k(  sJ t        t        ||z  d
| z  f            t        ||  f      k(  r[J  d y )N N     r   ,    '  r   r   r   r   r   )r=         i )rangesqrtr    randomseedr   r   randint)ir9   Ar   s       r   test_exact_sqrtsrL   C   s)   5\ #C!H~"""#
KKN' 'r 	'ArD!GAIT1WQY@AAaC>Q&&&	''
 BF3Z :# 	:AQqS!A#J(CAK777QqS"Q$K()S!aR\999	::r   c            	         dD ]  } t        |       } dD ]  }|t        _        t        t	        | t        j
                  t              dt        j
                  t              }t        t	        | t        j
                  t              dt        j
                  t              }t        ||       sJ t        ||       rJ   t        j                  d       d}t        t        t        fD ];  }t        d      D ]+  } t        |      }t!        ||      }t	        |||      |k(  r+J  = dt        _        t#        d      dz   }t#        d      dz
  }dt        _        t%        |d	
      dk(  sJ t%        |d
      dk(  sJ t%        |d
      dkD  sJ t%        |d	
      dk  sJ t%        |d
      dk(  sJ t%        |d
      dk(  sJ t%        t#        d            t#        d      k(  sJ y )N)r   r         r   rB   r               r   )r   r   S   j   i  r     r   	   goK@-r   droundingr   nuz7.0503726185518891z2.655253776675949)from_intr   r   mpf_pow_intmpf_sqrtr9   
round_downround_upmpf_ltmpf_gtrG   rH   round_nearestround_ceilingrE   mpf_randmpf_mulr    rF   )rJ   r   r   r	   r9   rnds         r   test_sqrt_roundingri   R   s   7  QK) 	 CBFHQ<a*UAHQ:ArwwQA!Q<<!Q<<	   KKDM=9 /s 	/AA1AAtS)Q...	// BFAAAABFC A%%%C A%%%C 1$$$C 1$$$C A%%%C A%%%()*c2E.FFFFr   c                  4   dt         _        dD ]'  } t        t        |             t	        |       dz  k(  r'J  t        d      dk(  sJ t        d      j                  t        j                  d            sJ t        d      j                  t        j                  d            sJ t        d      j                  t        j                  d            sJ t        d      j                  t        j                  d            sJ t        d	      j                  t        j                  d	            sJ t        t        j                  t        j                  dz  z         j                  t        j                  t        j                  t        j                  dz  z               sJ t        t        j                  t        j                  dz  z
        j                  t        j                  t        j                  t        j                  dz  z
              sJ y )
Nr   )r   gHz>皙?      ?r=   r   r   r   rN   gZd;O?g\(S@rl   r                 ?rD   y             )
r   r   rF   r    floatr   cmathmathr   r"   xs    r   test_float_sqrtru   p   se   BF= -CF|uQx},,,-8r>>8;;uzz"~&&&8;;uzz"~&&&:==D)***8;;uzz"~&&&9<<

3((($&&)#$''

477TVVBY3F(GHHH$&&)#$''

477TVVBY3F(GHHHr   c                      t        dd      dk(  sJ t        dd      t        d      k(  sJ t        dd      t        d      k(  sJ t        dd      t        d      k(  sJ t        dd      t        d      k(  sJ y )Nr   gQ?gQտr   r   rN   )hypotr     r   r   
test_hypotry   ~   sv    A;!D>SY&&&q>SY&&&?c$i'''A;#a&   r   c                  X   t        ddd      D ]!  } t        t        | | z  | z              | k(  r!J  t        j                  d       dD ]T  }|t
        _        t        j                  d|dz  dz
  z  d|dz  dz
  z        }t        t        ||z  |z              |k(  rTJ  dt
        _        y )	Nr   r<      r=   r>   r   r   r   )rE   cbrtr    rG   rH   r   r   rI   )rJ   r9   rK   s      r   test_exact_cbrtr}      s    1eS! %C!AJ1$$$%
KKN' %NN2a	?BqO<C!AJ1$$$% BFr   c                  h   t        d      dk(  sJ t        d      j                  t        d            sJ t        d      j                  t        d            sJ t        t        d            } | j                  t	        | j
                        k(  sJ dt        _        t        t        d	            } | j                  t	        | j
                        k(  sJ d
t        _        t        t        dz        j                  d      sJ t        d      j                  t        j                   d            sJ y )Nr   r=   rA   z8.8068182256629215873e4342iz1.1354838653147360985e-4343)r=   l   V= i5   C   )r=   l   G{QE i=   r   r             @       @)
expr   r    bcbitcountmanr   r9   r(   rq   )r   s    r   test_expr      s    q6Q;;u:==9:;;;v;>>#;<===C./0A448AEE?"#"BGC123A448AEE?"#"BGsRx=D!!!t9<<		$(((r   c                      dt         _        t        d      } t        d      }dt         _        | j                  d      sJ |j                  d      sJ y )Ni   r   r=   r   g8,6V?giW
@)r   r   r   r   )r   r	   s     r   test_issue_73r      sL    BFBAAABFB77&'''B77%&&&r   c                  	   dt         _        t        d      dk(  sJ dddddd	d
z  dfD ]B  } t        |       j                  t	        j                  |             sJ t        | |       dk(  rBJ  t        dd      d	k(  sJ t        d	dz  d	      dk(  sJ t        d      j                  t        j                  d            sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  dz  j                  d      sJ t        d      j                  d	dz  z  j                  d      sJ t        d       j                  d	dz  z  j                  d      sJ t        t        d!d"            j                  t        d      d#z        sJ t        t        d!d	d$z              j                  t        d      d%z        sJ t        t        dd            t        t         d      k(  sJ t        t        t        t        d            j                        sJ t        t        t        t        d            j                        sJ t        t        t        dt                    j                        sJ t        t        t        dt                    j                        sJ t        t        t        t        d            j                        sJ t        t        t        t        d            j                        sJ t        t        t        dt                    j                        sJ t        t        t        dt                    j                        sJ y )&Nr   r=   r   rl         ?       @g      @r   r   r   Jz5r   r   rV   r   y333333??l     ;g 7y@y333333?y?333333y      ?:0yE>l     _y      ?:0yEy      :0yE>y      :0yEy:0yE>      ?y:0yE      ?y:0yE>      y:0yE      y      ?Ww'&l7r   yWw'&l7      ?gX9v?      Fx:^V g@xDr{   gZbti)r   r   logr   rr   rq   r   ldexpmpcinfisnannanr   rs   s    r   test_logr      s   BFq6Q;;3S#r2vu5 1vyy!%%%1ayA~~ tQ<2r4x$$$t9<<		$(((Mv%))*<===Mv%))*<===Mv%))*<===Lf$((---Lf$((---Mv%))#...Mv%))#...Lf$((---Lf$((---Mv%))#...Mv%))#...Mr2v%))#...Mr2v%))#...uU6"#&&s1vd{333uU2s7#$''Au555s1Qx=CQK'''SQZ%%&&&SQZ%%&&&S3Z%%&&&S3Z%%&&&SQZ%%&&&SQZ%%&&&S3Z%%&&&S3Z%%&&&r   c                     t        t        d            t        t        dd            z   D ]X  } | dz  }t        t        |            j	                  t        j                  |            sJ t        t        |            j	                  t        j                  |            sJ t        t        |            j	                  t        j                  |            sJ t        t        |            j	                  t        j                  |            sJ t        t        |            j	                  t        j                  |            sJ t        t        |            j	                  t        j                  |            rYJ  t        d      j	                  t        j                  d            sJ t        d      j	                  t        j                  d            sJ t        d      j	                  t        j                  d            sJ t        d      j	                  t        j                  d            sJ y )Nr   ro   r   gffffff@y      ?      ?y      )listrE   cosr    r   rr   sintancoshsinhtanhrq   )rt   ts     r   test_trig_hyperb_basicr      s{   5:eDm!44 -G3q6{~~dhhqk***3q6{~~dhhqk***3q6{~~dhhqk***CF|tyy|,,,CF|tyy|,,,CF|tyy|,,,- t9<<		$(((w<??599W-...t9<<		$(((w<??599W-...r   c                     t        dt        z        dk(  sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ t        dt        z        dk(  sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ t        dt        z        j                  d      sJ y )Nr   r=   Z      r   i  ih  )r   r$   r   r   rx   r   r   test_degreesr      s   qx=Ar&y>Qs6z?b!!!s6z?a   s6z?a   qx=Ar&y>Qs6z?a   s6z?b!!!s6z?a   r   c                 Z   t        j                  d       g }t        |       D ]  }t        j                  dd      }t        j                  dd      }t        j                  dd      }t        j                  dd      }t	        ||      }t	        ||      }|j                  ||f        |S )Nr=   r   )rG   rH   rE   uniformcomplexappend)	Nr   rJ   x1y1x2y2z1z2s	            r   random_complexesr      s    
KKN
A1X ^^C$^^C$^^C$^^C$R_R_	"b Hr   c                     dD ]N  } | t         _        t        d      dz  }|j                  |j                  cxk(  rt        d      dz  dz  k(  rKJ  J  dt         _        t        j                  d       t        d      D ]1  \  }}t        |      t        |      z  j                  ||z  d      r1J  t        t         dz  z  j                  d	      sJ d
t         _        t        t         dz  z  j                  d	      sJ dt         _        y )N)r      r   rm   rl   r   r   r=   r   -q=r   r   )r   r   r   r   r   r    rG   rH   r   r   r"   r   )r   r   r   r   s       r   test_complex_powersr      s     3GSLvv23q63;?22222	3
 BF
KKN$S) 4RBR $$RVU3334BKBBFBKBBFr   c            
         d } t        j                  d       d}dt        _        t        j                  } | t	        |      D cg c].  }t        j
                  dd      t        j
                  dd      f0 c}        | t	        |      D cg c]  }|dz   |dz   d|z  z  f c}       dt        _        y c c}w c c}w )	Nc                    | D ]  \  }}t        |t        |z  z         }t        t        ||z        |      sJ t        | t        |z  z         }t        t        ||z        |       sJ t        |t        |z  z
        }t        t        ||z        |      sJ t        | t        |z  z
        }t        t        ||z        |       rJ  y )N)r   jr   rF   )lstr   r	   zs       r   test_mpc_sqrtz1test_complex_sqrt_accuracy.<locals>.test_mpc_sqrt   s     	)DAqA!GA$qs)Q'''QB1HA$qs)aR(((A!GA$qs)Q'''QB1HA$qs)aR(((	)r   r   r   r   r   rk   皙?r   )rG   rH   r   r   rE   r   )r   r   r   rJ   s       r   test_complex_sqrt_accuracyr      s    	) KKN
ABF
&&C%PQ(SQFNN1b)&..B*?@STuQx@!AGa#gr1u_-@ABF T@s   3B8B=c                  ,   dt         _        t        d      j                  t	        j                  d            sJ t        d      dk(  sJ t        d      j                  t
        dz        sJ t        d      dk(  sJ t        d      j                  t
         dz        sJ t        dd	z        j                  t
        dz        sJ d
D ]0  } | t         _        dt        d      z  j                  t
              r0J  dt         _        t
        dz  }t        t        t        d            j                  |      sJ t        t        t        d            j                  |      sJ t        t        t        d            j                  |      sJ t        t        dt                    j                  |      sJ t        t        dt                    j                  |      sJ t        t        dt                    j                  |       sJ t        t        t         d            j                  |       sJ t        t        t         d            j                  |       sJ t        t        t         d            j                  |       sJ t        t        dt                     j                  |       sJ t        t        dt                     j                  |       sJ t        t        dt                     j                  |      sJ y )Nr   gffffffr   gd~QJr   Jzgd~Qr   r@   )rC   F   r   r?   r@   r   r=   r   r   )r   r   atanr   rr   r   r   r   )r   pi2s     r   	test_atanr     so   BF:==4)));%:==A<6!!!;>>2#a%   D>RT"""' "$q'	~~b!!!" BF
Q$CC$$$C
s###C
s###Ac
s###Ac
s###Bs%%%SD%%%SD%%%SD  #&&&Bt  #&&&Asd%%%Asd$$$r   c                     dt         _        t        dd      j                  t        dz        sJ t        dd      j                  dt        z  dz        sJ t        dd      j                  dt        z  dz        sJ t        dd      j                  t         dz        sJ t        dd      j                  t         dz        sJ t        dd      j                  t        dz        sJ t        dd      dk(  sJ t        t
        d      j                  t        dz        sJ t        t
         d      j                  t         dz        sJ t        t        t
        t
                    sJ t        t        t
         t
                    sJ t        t        t
        t
                     sJ t        t        dt                    sJ t        t        t        d            sJ t        t        dt                    sJ t        t        t        d            sJ t        dt
              dk(  sJ t        dt
               j                  t              sJ t        d	t
              dk(  sJ t        d
t
              dk(  sJ t        d
t
               j                  t               sJ t        d	t
               j                  t              sJ t        t
        d	      j                  t        dz        sJ t        t
        d
      j                  t        dz        sJ t        t
         d	      j                  t         dz        sJ t        t
         d
      j                  t         dz        sJ y )Nr   r=   r   r   r   rn   r   r   r   r   )r   r   atan2r   r   r   r   r   rx   r   r   
test_atan2r   ,  s   BF1:==A2;>>!B$q&!!!B<??2b57###A;>>2#a%   A;>>2#a%   1:==A1:??Q<??2a4   #a=RCE"""s3   tC!!!sC4!!!qs1qs13<1C4=BC=AS>QcT?rc"""SD>R   R=BqD!!!S>RT"""#b>bSU####c?rc!e$$$r   c                  &   t        t        d            dk(  sJ t        t        d            dk(  sJ t        t        d            dk(  sJ t	        t        t        d            t              sJ t	        t        t        d            t
              sJ t	        t        t        d            t              sJ t	        t        t        d            t
              sJ t	        t        t        d            t              sJ t	        t        t        d            t
              sJ t        j                  d       t        d      D ]7  } t        j                  dd      }t        t        |            j                  t        j                   |            sJ t        t        |            j                  t        j                  |            sJ t        j                  dd	      }t        t        |            j                  t        j                  |      j                        sJ t	        t        t        |            t              sJ t        j                  dd	      }t        t        |            j                  t        j                  |      j                        sJ t	        t        t        |            t              sJ t        j                  dd
      }t	        t        t        |            t
              sJ t        j                  dd      }t        t        |            j                  t        j                  |      j                        sJ t	        t        t        |            t              r8J  t         j"                  }dt         _        t	        t        d      t              sJ dt         _        t        d      j                  t$        dz        sJ t        d      j                  t$         dz        sJ |t         _        y )Nr   r=   rl   r   rk   g?r   r   r   +?r   r?   r@   r   )asinr    asinhacosh
isinstancer   acosatanhrG   rH   rE   r   r   rr   rq   r   r   r   r   )rJ   rt   r   s      r   test_areal_inversesr   I  s   A<1Q=AQ=Ad3s8nc***d3s8nc***d3s8nc***d3s8nc***eCHos+++eCHos+++
KKN2Y .NN1a CF|tyy|,,,CF|tyy|,,,NN3#SV}A 3 3444%A----NN1b!SV}A 3 3444%A----NN3&%A----NN2q!SV}A 3 3444%A----!.$ &&CBFd3i%%%BF7::bd8;;s1uBFr   c                     dt         _        t        d      dz  j                  d      sJ t        d      dz  j                  d      sJ t        d      d	d
z  z  j                  d      sJ t        d      dz  j                  d      sJ t        d      dz  j                  d      sJ t        d      d	d
z  z  j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t	        d      dz  j                  d      sJ t	        d      dz  j                  d      sJ t        d      dz  j                  d      sJ t        d      dz  j                  d      sJ y )Nr   gh㈵>i g?绽|=    d(	 r=   r   r   r   gh㈵gg|۽r   r   r   gC6W_G@l   Fx:^V gC6W_G)r   r   r   r   r   r   rx   r   r   test_invhyperb_inaccuracyr   o  sg   BF$K!!"5666%L##A&&&%LR##A&&&%L""#7888&M& $$R(((&M"b& $$R(((=.///>0111K""1%%%L##B'''%L##A&&&&M& $$R(((r   c                  l   t        t        d            t        t        dd            z   D ]  } t        t        d            t        t        dd            z   D ]  }t        | |      dz  dz   }t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            sJ t        t	        |            j                  t        j                  |            rJ  	 y )Nr   r   r   g333333@y        {Gz?)r   rE   r   r   r   r   rq   r   r   r   r   r   r   r   )rt   yr   s      r   test_complex_functionsr   ~  su   59oU3q\ 22 
2uRy/Ds1$66 		2A1c!E)As1v;>>%))A,///s1v;>>%))A,///s1v;>>%))A,///s1v;>>%))A,///s1v;>>%))A,///A<??5::a=111A<??5::a=111A<??5::a=111		2
2r   c                     dt         _        dt        _        t        d      D ]%  \  } }t	        t        |             j                  |       sJ t        |       j                  t        j                  |             sJ t        |       j                  t        j                  |             sJ t        |       j                  t        j                  |             sJ t        |       j                  t        j                  |       d      sJ t        |       j                  t        j                  |       d      sJ t        d      }( t        ddd      D ]}  }t        ddd      D ]k  }d	t        z  d|z  z  d
z  d|z  z  z   }t!        t        |            }|j                  |      sJ t#        t        |            }|j                  |      rkJ   t        d      }d}t        ddd      D ]  }t        ddd      D ]m  }dd|z  z  t        d
z  |z  d|z  z  z   }t%        t        |            }|j                  ||      sJ t	        t        |            }|j                  ||      rmJ   y )Nr   r   r   )rel_epsr=   r   r   g?皙?gV瞯<rW   g)r   r   ivr   r   r   r   r   rq   r   r   r   r   r    rE   r   r   r   r   )r   r   onerJ   kr   r	   errs           r   test_complex_inverse_functionsr     s   BFBF$R( R E"I!!"%%%Ry||EKKO,,,Ry||EKKO,,,Bx{{5::b>*** Bx{{5::b>5{999Bx{{5::b>5{999!f 2r1 r2q! 	AAb!ec#gb!em+ADGA447N7DGA447N7	 a&C
C2q!_  r1a 	 ARU
QsU3Yr1u_,AU1XA443<<U1XA443<<	  r   c                     t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t	        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d	      sJ t        d      j                  d
      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      j                  d      sJ y )Nr   gEWg)gٰ
D<X@g^f]gm?g)	荹?gL<[?g肀?gO?g&?rl   g5qB?gHy?g9B.?r   g-DT!?y        -DT!?)secr   csccotsechcschcothasecacscacotasechacschacothrx   r   r   test_reciprocal_functionsr     sD   q699)***q699()))q699)***7::+,,,7::+,,,7::)***7::)***7::*+++7::*+++:==,---8;;+,,,8;;+,,,7::+,,,8;;-...r   c                      dt         _        t        t        d      d      dk(  sJ t        t        d      d      dk(  sJ t        t        d      d      dk(  sJ t        t        d      d	      t        d      k(  sJ y )
Nr         @r   r   g      ?r   r   r   r   )r   r   r   r    rx   r   r   
test_ldexpr     sq    BFS1$$$S2$&&&S1###UQ3u:---r   c                      dt         _        t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      d	k(  sJ t        d
      dk(  sJ y )Nr   r   )g        r   rW   )g      ?r   r=   )rl   r=   r   )r   rD   r@   )g     @?r   )r   r   frexprx   r   r   
test_frexpr     sc    BF8x8{"""8x:""";/)))r   c                  F   t        d      t        d      k(  sJ t        d      t        dd      k(  sJ t        d      dt        z  k(  sJ t        d      dt        z  k(  sJ t        dd      t        k(  sJ t        dd      dk(  rt        t        dd      t              sJ y )	Nr   g      @r   gffffff@r   rl   rC   g      @)lnr   log10degreesr$   radianspowerr   fmodr   r    rx   r   r   test_aliasesr     s    a5CF??;#d2,&&&3<3<'''3<3<'''C=A1:DAJ!<<<!<r   c                     t        d      dk(  sJ t        d      j                  t              sJ t        t              j                  t        dz        sJ t        t               j                  t         dz        sJ t        d      dk(  sJ t	        t        dt                    sJ t	        t        t        d            sJ t	        t        dt                    sJ t	        t        t        d            sJ t	        t        t        t                    sJ t        t              dk(  sJ t        t               j                  t              sJ t	        t        t                    sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        t              dk(  sJ t        t               dk(  sJ t	        t        t                    sJ t        t              t        k(  sJ t        dt        z        t         k(  sJ t        dt        z         j                  dt        z   t        d      z        sJ y )Nr   r   rn   r   r=   r   )
argr   r   r   r   r   r   r   signrF   rx   r   r   test_arg_signr     s   q6Q;;r7::b>>q699RT??r7::rc!eq6Q;;qs1qs1s3   s8q==t9<<S??7a<<7a<<8r>>9>>:c7a<<1:!!9<<1d1g&&&r   c                  F    dt         _        t        d       dt         _        y )Nr@   i  r   )r   r   r   rx   r   r   test_misc_bugsr    s    BFIBFr   c                  8   t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d	      t        d
      t        d      g
k(  sJ t        dd      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      g
k(  sJ t        ddd      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      t        d      g
k(  sJ t        dd d!      t        d"      t        d#      t        d$      t        d
      t        d      t        d      t        d      t        d      t        d%      g	k(  sJ t        d&dd'      t        d      gk(  sJ t        d      g k(  sJ t        d(d)      g k(  sJ t        d*d+d,      g k(  sJ y )-Nr   z0.0z1.02.03.04.05.06.07.08.09.0rN   z-5.0z-4.0z-3.0z-2.0z-1.0r   r=   rk   z0.10000000000000001z0.20000000000000001z0.30000000000000004z0.40000000000000002z0.5z0.60000000000000009z0.70000000000000007z0.80000000000000004z0.90000000000000002   r   rn   z17.0z14.0z11.0z-7.0r   gr@   r   gGzgGz	@gHz)aranger    rx   r   r   test_aranger    s   ":#e*c%j#e*c%je*c%j#e*c%je*c%j2 2 2 2 "a=S[#f+s6{ [#f+s5z ZUSZUM M M M !QUS1F-G!$%:!;!$%:!;!$%:!;!$US1F-G!$%:!;!$%:!;!$%:!;!= = = = "b"#f+s6{CK"%e*c%j#e*"%f+s6{CK"I I I I #sD!c*?&@%AAAA!9??$r!!!%z*b000r   c            
         t        ddd      t        d      t        d      t        d      t        d      t        d      t        d	      t        d
      gk(  sJ t        dddd      t        d      t        d      t        d      t        d      t        d      t        d      t        d      gk(  sJ t        ddd      t        d      gk(  sJ y )Nr   rW   r   r  z3.166666666666667z4.3333333333333339z5.5z6.666666666666667z7.8333333333333339r
  r   )endpointr  r  r  r  r  r	  r=   )linspacer    rx   r   r   test_linspacer  	  s    Aq!US1D-E !3u:s3F/G !3u:!/ / / / Aq!a(SZUSZE
CJE
CJ-8 8 8 8Aq!Q(((r   c                     dt         _        t        ddd      D ])  } t        | | z  | z        j	                  | t
              r)J  t        d      j	                  dt        t        d      z  dz  z         sJ t        d	      dz  }t        ddd
      dgz   D ]q  } t        | dz         } t        |       }t         xj                  dz  c_        t        | |      }t         xj                  dz  c_        |j	                  |t
              rqJ  dt         _        t        ddd      D ]7  }d|z  t        dz  z   }||z  |z  }t        |      }t        ||t
              r7J  dt         _        y )Nr   r   r   rk   r   rl   r   r   r=   g@gj@y        ?r   i-  gMbP?r   )r   r   r  r|   r   r
   r   rF   r    r   powrE   r   )r   	one_thirdr1r2r[   wr   rs           r   test_float_cbrtr    sF   BFAb &AaCE{~~a%%%&8;;sQtAwYq[()))AqIAb- DM!W
"I
"uuR~~ BF3S! !EAfHaCEGaC   	!
 BFr   c            
      D   dt         _        t        j                  d       t        j                  dd      } | | z  | z  }t        t        |      d      }|| k(  sJ t        dd      D ]!  }|| z  }t        t        |      |      | k(  r!J  dt         _        t        dd	d
      D ]  }t        j                         dz  t        j                         dd
z  z  fD ]r  } t        | |      }t        | t        d      |z        }|j                  |      sJ t        | |       }t        | t        d       |z        }|j                  |      rrJ   dD ]l  }|t         _
        dD ]Z  }d}t        d      D ]H  }|t         _        t               } d|z  t         _        | |z  }|t         _        t        ||      }|| k(  rHJ  \ n dt         _        t        dd      D ]  }t        j                         t        t        j                         z  z   } t        | |      j                  t        | t        d      |z              sJ t        t        | |      t        | t        d      |z              sJ t        j                         dd
z  z  t        t        j                         z  z   } t        | |      }t         xj                  dz  c_        t        | t        d      |z        }t         xj                  dz  c_        |j                  |      sJ t        ||t              sJ t        | |       }t         xj                  dz  c_        t        | t        d       |z        }t         xj                  dz  c_        |j                  |      sJ t        ||t              rJ  dt         _        t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        t         d      t         k(  sJ t        t         d      t         k(  sJ t        t         d      t         k(  sJ t        t         d      dk(  sJ t        t         d      dk(  sJ t        t         d      dk(  sJ t        t        d      t        k(  sJ t        t        d      dk(  sJ t        t        d      t         k(  sJ t#        t        t$        d            sJ t#        t        t$        d            sJ t#        t        t$        d            sJ t#        t        t         d            sJ t'        dd      t        dd      k(  sJ t'        ddd      dk(  sJ t'        ddd      dk(  sJ t'        ddd      dk(  sJ t'        ddd      dk(  sJ t'        ddd      dk(  sJ t'        ddd      dk(  sJ y )Nr   r=   r   rA   r   r   r   (   i  r   )nearestupdown)r  rn   r   rN   r   r      r   r   g      ?rD   rn      y               @y              ir  )r   r   rG   rH   rI   nthrootr    rE   r  r   rZ   r9   randr   r   r
   r   r   r   root)	r   pr  r[   r  rh   r9   rJ   r	   s	            r   	test_rootr&  &  s    BF
KKNq% A	!AAAA6M61b\ 'aCs1vq!Q&&&' BF2tS! --/%'S)@A 	A1AQAq!B448O8A2AQQ	"B448O8	 )  		AD2Y FD&qDAqMAvv		 BF1b\ "]]_q00q!}As1vax 0111gamSCF1H%5666]]_RW$q'88AqM
!CF1H
!ttBxxaS!!!ArN
!SVGAI
!ttBxxaS!!!!"" BF1a=A1a=A1b>T!!!3?c!!!3?c!!!3?c!!!3q   3q   3q   1a=A1a=A1b>aRa!!!a!!!b!"""a!!!!9!$$$1Q<11Q<21Q<21Q<31Q<1Qq>Rr   c                  `   dD ]Z  } | t         _        t        t        d      d      }|j	                  t        d      dz  dt
        z   z  t        d      dz  z        rZJ  d	t         _        t        d
d      j	                  t        d      dz  dt
        z   z  t        d      z        sJ t        dd      j	                  dt
        z   dt        d      z  z        sJ dt         _        t        dd      j	                  dt
        z   t        d      z  t        d      z        sJ dt         _        y )N)r   r   z-1e-20r   r   r  r=   r         r   z-1e-3g      z-1e-6r   z-1e100000000
1e25000000r   )r   r   r"  r    r   r   rF   )r   r  s     r   test_issue_136r*  r  s    >CM1%ttCGbMQU+c!ftn<===> BF7A!!#b'E"2a!e"<T!W"DEEE7A!!1q52R="9:::BF>1%((!A#s</@)@a)HIIIBFr   c            	         dt         _        t        d      } t        d      }t        t	        | d            t        |       k(  sJ t        t	        d|            t	        t        |      t        |            k(  sJ t        t	        | d            t        |       k(  sJ t        t	        | d            t        |       k(  sJ t        t	        d|            t        |      k(  sJ t        t	        d|            t	        dt        |            k(  sJ t        t	        | d            t        |       k(  sJ t        t	        | d            t        |       k(  sJ t        t	        d|            j                  t        t        |z              sJ t        t	        d|            j                  t	        dt        t        |z                    sJ t        t	        | d            \  }}|t        |       k(  sJ |t        |       k(  sJ t        t	        d|            \  }}|j                  t        t        |z              sJ |j                  t	        dt        t        |z                    sJ t        t	        | d            \  }}|t        |       k(  sJ |t        |       k(  sJ t        t	        d|            \  }}|t        |      k(  sJ |t	        dt        |            k(  sJ y )Nr   g333333?g?r   )r   r   r    r   r   r   r   r   r   cospisinpir   r   cospi_sinpicos_sin)rt   r   css       r   test_mpcfun_real_imagr2    sR   BFCACAs1Qx=CF"""s1Qx=CAs1v....s1Qx=CF"""s1Qx=CF"""s1Qx=DG###s1Qx=C$q'N***Qq?eAh&&&Qq?eAh&&&Qq?d2a4j)))Qq?c!DAJ/000s1Qx DAqa==a==s1Qx DAq44RT
44Ad2a4j!"""3q8DAqA;;A;;3q8DAqQ<<Ad1gr   c                  F   dt         _        t        ddz  z  } t         ddz  z  }d| z   }d|z   }dt         _        t        |       dk(  sJ t        | d      dkD  sJ t        |d      dk(  sJ t        | d      dk(  sJ t        |d      dk  sJ t	        |       dk(  sJ t	        | d      dk(  sJ t	        |d      dk(  sJ t	        | d      dk  sJ t	        |d      dk  sJ t
        t        t        t        fD ]Z  } ||       | k(  sJ  || d      | kD  sJ  || d      | k  sJ  ||      |k(  sJ  ||d      |kD  sJ  ||d      |k  rZJ  t        t        t        t        fD ]Z  } ||       | k(  sJ  ||      |k(  sJ  || d      | kD  sJ  ||d      |kD  sJ  || d      | k  sJ  ||d      |k  rZJ  t        |      | k(  sJ t        |      |k(  sJ t        |d      | kD  sJ t        |d      | k  sJ t        |d      |kD  sJ t        |d      |k  sJ t        |       dk(  sJ t        |      dk(  sJ t        | d      dkD  sJ t        |d      dkD  sJ t        | d      dk(  sJ t        |d      dk(  sJ y )	Nr   r   r   r=   r   r0  rY   f)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r	   r0  rX   r4  s        r   test_perturbation_roundingr5    s   BF
2r6	A	BF
A	AA	AABFq6Q;;q3!###q31$$$q31$$$q3!###q6Q;;q31$$$q31$$$q3!###q3!###4% &trzzS!A%%%S!A%%%trzzS!A%%%S!A%%%& Cu% &trzztrzzS!A%%%S!A%%%S!A%%%S!A%%%& a5QB;;a5QB;;a#"""a#"""a#"""a#"""7a<<7a<<C 1$$$C 1$$$C A%%%C A%%%r   c                      t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ y )Ng	@r   r   y	@      @y      @      @y      @      @)floorceilrx   r   r   test_integer_partsr9    sF    :??9>>=D   <4r   c                  @   t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      d	k(  sJ t	        d      j                         dk(  sJ y )
N3r         @      @rN   y      ?      @r=   r   r   y      @      )fabsreimconjr    	conjugaterx   r   r   test_complex_partsrB    s    9>>:??a5A::d8q==a5A::d8q==7a<<:q6"""r   c                  	   t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d      dk(  sJ t        d	      j                  t        d      dz        sJ t        d
      } | j                  j                  t        d
t        z        j                        sJ | j                  dk(  sJ t        d
      }|j                  j                  t        d
t        z        j                        sJ |j                  dk(  sJ dt        _
        t        d      t        d      z
  }t        d      t        d      z   }t        d      t        d      z
  }t        d      t        d      z   }t        d      t        d      z
  }t        d      t        d      z   }t        d      t        d      z
  }t        d      t        d      z   }	dt        _
        d}
t        |      |
z  j                  t               sJ t        |      |
z  j                  t              sJ t        |      |
z  j                  t              sJ t        |      |
z  j                  t               sJ t        |      |
z  j                  t              sJ t        |      |
z  j                  t               sJ t        |      |
z  j                  t               sJ t        |	      |
z  j                  t              sJ dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |d      cxk  rdk  sJ  J dt        |	d      cxk  rdk  sJ  J t        d      |
z  j                  t              sJ t        d      |
z  j                  t               sJ t        d      dk(  sJ t        dd      dk  sJ y )Nr   rl   r=   r   r   r   r   r(  g @ vH7B       @      @#   rA   z1e-15g    @@i'  g    @r   l     I5 r   rX   rY   g+gV瞯<gV瞯Ҽ)r-  r,  r   rF   r   r   r   r   r   r   r   r    )r   r	   r   r   x3x4x5x6x7x8Ms              r   test_cospi_sinpirM    so   8q==:??8q==:8q==:??;"8q==:??8r>>:??8q==:??;!!$$T!WQY///dA6699S$^(()))66Q;;dA6699S$^(()))66Q;;BF	Uc'l	"B	Uc'l	"B	WG	$B	WG	$B	Uc'l	"B	Uc'l	"B	WG	$B	WG	$BBFA"IaKRC   "IaKB"IaKB"IaKRC   "IaKB"IaKRC   "IaKRC   "IaKB5c*.Q.....5c*.Q.....5c*.Q.....5c*.Q.....b3'0&00000b3'0&00000b3'0&00000b3'0&00000%LNr"""&M!O$$$<1%)))r   c                     t        d      dk(  sJ t        d      j                  t        t                    sJ t        t              j                  t        d            sJ t        dt        z         j                  t        t        dt        z   z              sJ t	        d      dk(  sJ t	        d      j                  t        t        t
        z              sJ t	        t              j                  t        t
                     sJ t	        dt        z         j                  t        t        t
        z  dt        z   z              sJ t	        dt        z        j                  d      sJ y )Nr   r=   r   l  I5 z%2.22579818340535731e+1364376353841841)expjr   r   r   expjpir   rx   r   r   	test_expjrQ    s    7a<<7::c!f7::c"g!9<<AqsG%%%!9>>!9<<AbD	"""!9<<RC!!!!A#;>>#adAaCj/***'A+!!"IJJJr   c                     t        d      t        d      cxk(  rdk(  sJ  J t        t              t        t              cxk(  rdk(  sJ  J t        t               t        t               cxk(  rdk(  sJ  J t        d      j                  d      sJ t        d      j                  d      sJ t        d      dk(  sJ t        d      j                  d      sJ y )	Nr   r=   r   gF?rD  y?\ar   g)˿)sincsincpir   r   rx   r   r   	test_sincrU    s    7fQi$1$$$$$9s(q(((((:******7::,---:==EFFF!9>>#;>>/000r   c                     dt         _        t        dd      D  cg c]  } t        |        c} g dk(  sJ t	        d      j                  d      sJ t	        d      j                  d      sJ t	        d	      j                  d
      sJ t        t	        ddz              dk(  sJ dt         _        t	        d      }|dz  dk(  sJ dt         _        t        t              t        k(  sJ t	        d      dk(  sJ y c c} w )Nr   r  r   )rN   rn   r   r   r=   r   r=   r=   r   r   rN   rB   rR   r   "   r   g 3?r<  yɽ傀C,r@   gaڃe@kr   zv6.24499112864607e+2089876402499787337692720892375554168224592399182109535392875613974104853496745963277658556235103534i4  rA   r   l   E!	 y      @        r   )r   r   rE   	fibonaccifibr   strr   )r[   r   s     r   test_fibonaccir[  !  s    BF"'B-0QIaL0:; ; ;s8;;)***t9<<<===t9<</000s2s7|  !Y  Y  Y  YBFE
Av:###BFS>S   t9>> 1s   C:c                  j    dt         _        t        t        dd      t	        d      z
        dk  sJ y )Nr   r=   r   )r   rE  gG^Z9)r   r   absr   r"   rx   r   r   test_call_with_dpsr^  0  s+    BFs1"~aBi'(5000r   c                      dt         _        t        d      dk(  sJ t        t              dk(  sJ t        t               dk(  sJ t	        t        t
                    sJ t        t        dd            dk(  sJ y )Nr   r   r=   r   r   0)r   r   r   r   r   r   r   rx   r   r   	test_tanhra  4  sh    BF7a<<9>>:cE3 A%%%r   c                  H   dt         _        t        d      dk(  sJ t        d      j                  d      sJ t        d      j                  d      sJ t        d      t        k(  sJ t        d      t         k(  sJ t        t        t                    sJ t        t        d      t              sJ t        t        d      t              sJ t        t        z  d	z  } t        t              j                  |        sJ t        t               j                  |       sJ t        t        t        d            j                  |        sJ t        t        t        d            j                  |        sJ t        t        t        d            j                  |       sJ t        t        dt                    j                  |       sJ t        t        dt                    j                  |       sJ t        t        dt                    j                  |       sJ t        t        t         d            j                  |       sJ t        t        t         d            j                  |       sJ t        t        t         d            j                  |        sJ t        t        dt                     j                  |        sJ t        t        dt                     j                  |        sJ t        t        dt                     j                  |        sJ y )
Nr   r   rl   gz?r(  gzr=   r   r   )r   r   r   r   r   r   r   r   r    r   r   r   )jpi2s    r   
test_atanhrd  <  sn   BF8q==:==/000;>>12228s??9seAh$$$eBi%%%R46D:==$#;>>$S  $'''S&&&S%%%Qs%%%Qs%%%R  &&&cT!  &&&cT!  &&&cT"!!4%(((R!!4%(((Qt  $'''Qt  $'''r   c                  0   dt         _        t        d      dk(  sJ t        d      j                  t	        d      dz
        sJ t        t
              t
        k(  sJ t        d      j                  d      sJ t        d      dz  j                  d      sJ y )	Nr   r   r   r=   r   r       _Bgo   ?)r   r   expm1r   r   r   rx   r   r   
test_expm1rh  W  s|    BF8q==8;;s1vax   :<??5!!!%L!!-000r   c                  *   dt         _        t        d      dk(  sJ t        d      j                  t	        d            sJ t        t
              t
        k(  sJ t        d      j                  d      sJ t        d      dz  j                  d      sJ y )	Nr   r   r   r   r   r   rf  g ?)r   r   log1pr   r   r   rx   r   r   
test_log1prk  _  sx    BF8q==8;;s3x   :<??5!!!%L!!-000r   c                     dt         _        t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd	      dk(  sJ t        dd      dk(  sJ t        d	d      dk(  sJ t        d	d      dk(  sJ t        d	d      dk(  sJ t        d	d
      dk(  sJ t        t        d      dk(  sJ t        t         d      dk(  sJ t        dd      dz  j	                  t
              sJ t        dd      dk7  sJ t        t        d	dd      d
      dz  j	                  d
      sJ y )Nr   r   r   r   r   r   rD   r<  r=   rN   r   g0.++g}Ô%ITz1e-100000000000T)exact)r   r   powm1r   r   r(   faddrx   r   r   
test_powm1rp  g  sa   BF1:??A;!A;!A;!a=A1:1:??1:??1:??4=A1:??1:??!A;!!FOE!%%c***$%***$qd+Q/599!<<<r   c                     t        d      dgk(  sJ t        d      ddgk(  sJ t        d      \  } }}| dk(  sJ |j                  d      sJ |j                  d      sJ t        dd      dgk(  sJ t        dd      dgk(  sJ t        dd      t        d      dd  k(  sJ t        d	d      t        t         gk(  sJ t        t        d
d            dk(  sJ t        t        dd            dk(  sJ y )Nr=   r   r   r   y      ࿪LXz?y      ࿪LXzT)	primitiver   r  r!  rB   )	unitrootsr   r   len)r   r	   r0  s      r   test_unitrootsru  z  s	   Q<A3Q<Ar7"""lGAq!6M644.///44.///Q$'A3...Q$'B4///Q$'9Q<+;;;;Q$'Ar7222yt,-333yt,-222r   c                     dt         _        t        d      D  cg c]  } t        | d       c} g dk(  sJ t        d      D  cg c]  } t        | d       c} g dk(  sJ t        d      D  cg c]  } t        | t               c} ddt        z   dt        z   t        ddt         t        d	t         dt        d
dt         dd	dt        t        dgk(  sJ t        d      D  cg c]  } t        | t                c} ddt        z
  dt        z
  t         ddt        t         d	t        dt         d
dt        dd	dt         t         dgk(  sJ t        dt              dk(  sJ t        dt              dk(  sJ t        t        d      }t        d|      j                  d      sJ t        d|      j                  d      sJ t        d|      j                  d      sJ t        dd      dk(  sJ t        dd      dk(  sJ t        d	d      dk(  sJ t        d
d      dk(  sJ t        dd      dk(  sJ y c c} w c c} w c c} w c c} w )Nr      r=   )r=   r   r   r   r   rN   r=   r   r   r   r=   rP   r=   rR   r=   r=   r   r  r=      r=   r=   r=      r=   rN   r=   r   r=   r   r=   r   )r=   rD   r   r=   r   r=   r   r=   r   r=   rN   r=   r=   r=   r   r=   r   r=   r   r=   r=   r=   rP   r=   r=   r=   rR   r=   r=   r=   r=   r   r   r   r   rN   iX  i@  i  r8   rB   r   g?3OP@i  r   r   g      @g     #@r   g    cy@)r   r   rE   
cyclotomicr   rF   r   )r[   r\   s     r   test_cyclotomicr{    s*   BF%*2Y/JqO/3xxxx&+Bi0Jq04vvvv%*2Y/JqO/Abd1Q3q1aR!QBqQRSTUVXYWYZ[\]^_`abcde3ffff&+Bi0Jq!0Qr!tAaC1Qq!AaPQSTRTUVWXYZ[\]^_`bcacefdfgh4iiiid1"""eA!###QSAaq!!!b! 5666dA!!!$$$a!!!a%%%a%%%a 0000a
*** 00/0s   H/H4-H9H>)Dmpmath.libmpmpmathrG   timerr   rq   r
   r   r!   r#   r%   r'   r)   r+   r-   r/   r1   taperyr3   r5   r7   r:   rL   ri   ru   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r&  r*  r2  r5  r9  rB  rM  rQ  rU  r[  r^  ra  rd  rh  rk  rp  ru  r{  rx   r   r   <module>r     so         $#*
(&	&**	0	
'(*,
,:G<I!)'#'J/
!&%4%:$L)2 B/ .*='21.)*J X6*&X 	#4*l	K11&(611=&3+r   