
    gx                        d dl T d dlT 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? ZCdS )@    )*Nc                     d}|o| j                             |j         |          }|o| j                            |j        |          }|S )NT)realaeimag)abepsress       W/var/www/html/ai-engine/env/lib/python3.11/site-packages/mpmath/tests/test_functions.pympc_aer      sD    
C

(!&))AFC((C

(!&))AFC((CJ    zg3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798zg2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642743zi0.0174532925199432957692369076848861271344287188854172545609719144017100911460344944368224156963450948221zh0.577215664901532860606512090082402431042159335939923598805767234884867726777664670936947063291746749516zh0.693147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542zg2.30258509299404568401799145468436420760110148862877297603332790096757260967735248023599720508959829834zh0.915965594177219015054603514932384110774149374281672134266498119621763019776254769479356512926115106249zg2.68545200106530644530971483548179569382038229399446295305115234555721885953715200280114117493184769800zm1.28242712910062263687534256886979172776768892732500119206374002174040630885882646112973649195820237439420646zg1.20205690315959428539973816151144999076498629234049888179227155534183820578631309018645587360933525815zj1.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748475zh0.261497212847642783755426838608695859051566648261199206192064213924924510897368209714142631434246651052zh0.660161815846869573927812110014555778432623360284733413319448423335405642304495277143760031413839867912c                     dD ]} | 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     r>t.          t          t0                    k    sJ t2          t          t4                    k    sJ dt           _        t          dk    sJ t          dk    sJ t          dk    sJ t          dk     sJ d S )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:   -   sm   3 0 0SXX~~~~CGG||||W%%%%F####c$iis5zz!!!!#h--''''3y>>))))3y>>))))c$ii"99c(mm++++J////BF888866666666666666r   c            	         t          d          D ]'} t          t          | | z                      | k    sJ (t          j        d           dD ]l}|t
          _        t          d          D ]N} t          j        d|dz  dz
  z  d|dz  dz
  z            }t          t          ||z                      |k    sJ Omdt
          _        t          d          D ]z} d	D ]u}t          t          ||z  d| z  f                    t          || f          k    sJ t          t          ||z  d
| z  f                    t          ||  f          k    sJ v{d S )N N     r   ,    '  r   r   r   r   r   )r=         i )rangesqrtr    randomseedr   r   randint)ir9   Ar   s       r   test_exact_sqrtsrL   C   sr   5\\ # #C!HH~~"""""
KNNN' ' 'r 	' 	'ArD!GAIT1WQY@@AAaC>>Q&&&&&	' BF3ZZ : :# 	: 	:AQqS!A#J((CAKK7777QqS"Q$K(())S!aR\\99999	:: :r   c            	      h   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          ||           sJ t          j        d           d}t          t          t          fD ]J}t          d          D ]8} t          |          }t!          ||          }t	          |||          |k    sJ 9Kd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k    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 d S )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    QKK) 	  	 CBFHQ<<a*UUAHQ::ArwQQA!Q<<!Q<<	  K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FFFFFr   c                  z   dt           _        dD ]4} t          t          |                     t	          |           dz  k    sJ 5t          d          dk    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ t          d	                              t          j        d	                    sJ t          t          j        t          j	        dz  z                                 t          j        t          j        t          j	        dz  z                       sJ t          t          j        t          j	        dz  z
                                t          j        t          j        t          j	        dz  z
                      sJ d S )
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   s   BF= - -CFF||uQxx},,,,,88r>>>>88;;uz"~~&&&&&88;;uz"~~&&&&&::==D))*****88;;uz"~~&&&&&99<<
3((((($&)#$$''
47TVBY3F(G(GHHHHH$&)#$$''
47TVBY3F(G(GHHHHHHHr   c                  J   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 d S )Nr   gQ?gQտr   r   rN   )hypotr     r   r   
test_hypotry   ~   s    A;;!D>>SYY&&&&q>>SYY&&&&??c$ii''''A;;#a&&      r   c                  ~   t          ddd          D ]*} t          t          | | z  | z                      | k    sJ +t          j        d           dD ]]}|t
          _        t          j        d|dz  dz
  z  d|dz  dz
  z            }t          t          ||z  |z                      |k    sJ ^dt
          _        d S )	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JJ1$$$$$
KNNN' % %N2a	?BqO<<C!AJJ1$$$$$BFFFr   c                     t          d          dk    sJ t          d                              t          d                    sJ t          d                              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                                d          sJ t          d                              t          j         d                    sJ d S )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#   q66Q;;;;u::==9::;;;;;v;;>>#;<<=====C.//00A48AE??""""BGC12233A48AE??""""BGsRx==D!!!!!t99<<	$(((((((r   c                      dt           _        t          d          } t          d          }dt           _        | 
                     d          sJ |
                     d          sJ d S )Ni   r   r=   r   g8,6V?giW
@)r   r   r   r   )r   r	   s     r   test_issue_73r      sb    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 ]N} t          |                               t	          j        |                     sJ t          | |           dk    sJ Ot          dd          d	k    sJ t          d	dz  d	          dk    sJ t          d                              t          j        d                    sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        dz                      d          sJ t          d          j        d	dz  z                      d          sJ t          d           j        d	dz  z                      d          sJ t          t          d!d"                                        t          d          d#z            sJ t          t          d!d	d$z                                          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 d S )&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q66Q;;;;3S#r2vu5  1vvyy!%%%%%1ayyA~~~~~tQ<<2r4x$$$$t99<<	$(((((MMv%))*<=====MMv%))*<=====MMv%))*<=====LLf$((-----LLf$((-----MMv%))#.....MMv%))#.....LLf$((-----LLf$((-----MMv%))#.....MMv%))#.....MMr2v%))#.....MMr2v%))#.....uU6""##&&s1vvd{33333uU2s7##$$''Au55555s1Qxx==CQKK''''SQZZ%&&&&&SQZZ%&&&&&S3ZZ%&&&&&S3ZZ%&&&&&SQZZ%&&&&&SQZZ%&&&&&S3ZZ%&&&&&S3ZZ%&&&&&&&r   c                  b   t          t          d                    t          t          dd                    z   D ]} | dz  }t          t          |                                        t          j        |                    sJ t          t          |                                        t          j        |                    sJ t          t          |                                        t          j        |                    sJ t          t          |                                        t          j        |                    sJ t          t          |                                        t          j	        |                    sJ t          t          |                                        t          j
        |                    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ t          d                              t          j        d                    sJ d S )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mm!4!44 - -G3q66{{~~dhqkk*****3q66{{~~dhqkk*****3q66{{~~dhqkk*****CFF||ty||,,,,,CFF||ty||,,,,,CFF||ty||,,,,,,t99<<	$(((((w<<??59W--.....t99<<	$(((((w<<??59W--.......r   c                  :   t          dt          z            dk    sJ t          dt          z                                d          sJ t          dt          z                                d          sJ t          dt          z                                d          sJ t          dt          z                                d          sJ t          dt          z            dk    sJ t          dt          z                                d          sJ t          dt          z                                d          sJ t          dt          z                                d          sJ t          dt          z                                d          sJ d S )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                 l   t          j        d           g }t          |           D ]}t          j        dd          }t          j        dd          }t          j        dd          }t          j        dd          }t	          ||          }t	          ||          }|                    ||f           |S )Nr=   r   )rG   rH   rE   uniformcomplexappend)	Nr   rJ   x1y1x2y2z1z2s	            r   random_complexesr      s    
KNNN
A1XX  ^C$$^C$$^C$$^C$$R__R__	"bHr   c                  R   dD ]N} | t           _        t          d          dz  }|j        |j        cxk    rt          d          dz  dz  k    sn J Odt           _        t          j        d           t          d          D ]=\  }}t          |          t          |          z  	                    ||z  d          sJ >t          t           dz  z  	                    d	          sJ d
t           _        t          t           dz  z  	                    d	          sJ dt           _        d S )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 3GGSLv22223q663;?2222222BF
KNNN$S)) 4 4RBR $$RVU333333BKBBFBKBBFFFr   c                     d } t          j        d           d}dt          _        t          j        } | d t	          |          D                         | d t	          |          D                        dt          _        d S )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            |           sJ d S )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   c                 b    g | ],}t          j        d d          t          j        d d          f-S )r   r   )rG   r   .0rJ   s     r   
<listcomp>z.test_complex_sqrt_accuracy.<locals>.<listcomp>  s5    SSSQFN1b))&.B*?*?@SSSr   c                 .    g | ]}|d z   |dz   d|z  z  fS )rk   皙?r   rx   r   s     r   r   z.test_complex_sqrt_accuracy.<locals>.<listcomp>  s-    @@@!AGa#gr1u_-@@@r   r   )rG   rH   r   r   rE   )r   r   r   s      r   test_complex_sqrt_accuracyr      s    	) 	) 	) KNNN
ABF
&CMSS%PQ((SSSTTTM@@uQxx@@@AAABFFFr   c                     dt           _        t          d                              t	          j        d                    sJ t          d          dk    sJ t          d                              t
          dz            sJ t          d          dk    sJ t          d                              t
           dz            sJ t          dd	z                                t
          dz            sJ d
D ]:} | t           _        dt          d          z                      t
                    sJ ;dt           _        t
          dz  }t          t          t          d                                        |          sJ t          t          t          d                                        |          sJ t          t          t          d                                        |          sJ t          t          dt                                                  |          sJ t          t          dt                                                  |          sJ t          t          dt                                                  |           sJ t          t          t           d                                        |           sJ t          t          t           d                                        |           sJ t          t          t           d                                        |           sJ t          t          dt                                                   |           sJ t          t          dt                                                   |           sJ t          t          dt                                                   |          sJ d S )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     s,   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                              t          dz            sJ t          dd                              dt          z  dz            sJ t          dd                              dt          z  dz            sJ t          dd                              t           dz            sJ t          dd                              t           dz            sJ t          dd                              t          dz            sJ t          dd          dk    sJ t          t
          d                              t          dz            sJ t          t
           d                              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
                                         t                    sJ t          d	t
                    dk    sJ t          d
t
                    dk    sJ t          d
t
                                         t                     sJ t          d	t
                                         t                    sJ t          t
          d	                              t          dz            sJ t          t
          d
                              t          dz            sJ t          t
           d	                              t           dz            sJ t          t
           d
                              t           dz            sJ d S )Nr   r=   r   r   r   rn   r   r   r   r   )r   r   atan2r   r   r   r   r   rx   r   r   
test_atan2r   ,  sw   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 ]} t          j        dd          }t          t          |                                        t          j         |                    sJ t          t          |                                        t          j        |                    sJ t          j        dd	          }t          t          |                                        t          j        |          j                  sJ t	          t          t          |                    t                    sJ t          j        dd	          }t          t          |                                        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          |                                        t          j        |          j                  sJ t	          t          t          |                    t                    sJ t           j        }dt           _        t	          t          d          t                    sJ dt           _        t          d                              t$          dz            sJ t          d                              t$           dz            sJ |t           _        d S )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d3s88nnc*****d3s88nnc*****d3s88nnc*****d3s88nnc*****eCHHoos+++++eCHHoos+++++
KNNN2YY . .N1a  CFF||ty||,,,,,CFF||ty||,,,,,N3##SVV}}A 344444%A-------N1b!!SVV}}A 344444%A-------N3&&%A-------N2q!!SVV}}A 344444%A--------
&CBFd3ii%%%%%BF77::bd88;;s1uBFFFr   c                     dt           _        t          d          dz                      d          sJ t          d          dz                      d          sJ t          d          d	d
z  z                      d          sJ t          d          dz                      d          sJ t          d          dz                      d          sJ t          d          d	d
z  z                      d          sJ t          d                              d          sJ t          d                              d          sJ t	          d          dz                      d          sJ t	          d          dz                      d          sJ t          d          dz                      d          sJ t          d          dz                      d          sJ d S )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  s   BF$KK!!"566666%LL##A&&&&&%LLR##A&&&&&%LL""#788888&MM& $$R(((((&MM"b& $$R(((((==./////>>011111KK""1%%%%%LL##B'''''%LL##A&&&&&&MM& $$R(((((((r   c                  ^   t          t          d                    t          t          dd                    z   D ]p} t          t          d                    t          t          dd                    z   D ]1}t          | |          dz  dz   }t          t	          |                                        t          j        |                    sJ t          t	          |                                        t          j        |                    sJ t          t	          |                                        t          j        |                    sJ t          t	          |                                        t          j	        |                    sJ t          t	          |                                        t          j
        |                    sJ t          t	          |                                        t          j        |                    sJ t          t	          |                                        t          j        |                    sJ t          t	          |                                        t          j        |                    sJ 3rd S )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   ~  s   599ooU3q\\ 2 22 
2 
2uRyy//Ds1$6$66 		2 		2A1c!E)As1vv;;>>%)A,,/////s1vv;;>>%)A,,/////s1vv;;>>%)A,,/////s1vv;;>>%)A,,/////s1vv;;>>%)A,,/////A<<??5:a==11111A<<??5:a==11111A<<??5:a==111111		2
2 
2r   c                     dt           _        dt          _        t          d          D ]X\  } }t	          t          |                                         |           sJ t          |                               t          j        |                     sJ t          |                               t          j	        |                     sJ t          |                               t          j
        |                     sJ t          |                               t          j        |           d          sJ t          |                               t          j        |           d          sJ t          d          }Zt          ddd          D ]}t          ddd          D ]}d	t          z  d|z  z  d
|z  d|z  z  z   }t!          t          |                    }|                    |          sJ t#          t          |                    }|                    |          sJ t          d          }d}t          ddd          D ]}t          ddd          D ]}dd|z  z  t          d
z  |z  d|z  z  z   }t%          t          |                    }|                    ||          sJ t	          t          |                    }|                    ||          sJ d S )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"II!!"%%%%%Ryy||EKOO,,,,,Ryy||EKOO,,,,,Bxx{{5:b>>***** Bxx{{5:b>>5{99999Bxx{{5:b>>5{99999!ff2r1  r2q!! 	 	AAb!ec#gb!em+ADGGA4477NNNDGGA4477NNNN	 a&&C
C2q!__    r1a 	  	 ARU
QsU3Yr1u_,AU1XXA443<<U1XXA443<<	    r   c                     t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t	          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d	          sJ t          d                              d
          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ t          d                              d          sJ d S )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     s   q6699)*****q6699()))))q6699)*****77::+,,,,,77::+,,,,,77::)*****77::)*****77::*+++++77::*+++++::==,-----88;;+,,,,,88;;+,,,,,77::+,,,,,88;;-.......r   c                  P   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 d S )
Nr         @r   r   g      ?r   r   r   r   )r   r   r   r    rx   r   r   
test_ldexpr     s    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 d S )Nr   r   )g        r   rW   )g      ?r   r=   )rl   r=   r   )r   rD   r@   )g     @?r   )r   r   frexprx   r   r   
test_frexpr     s    BF88x88{""""88x::"""";;/))))))r   c                     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 d S )	Nr   g      @r   gffffff@r   rl   rC   g      @)lnr   log10degreesr$   radianspowerr   fmodr   r    rx   r   r   test_aliasesr    s    a55CFF????;;#d2,,&&&&3<<3<''''3<<3<''''C==A1::DAJJ!<!<r   c                     t          d          dk    sJ t          d                              t                    sJ t          t                                        t          dz            sJ t          t                                         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                                         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                                 dt          z   t          d          z            sJ d S )Nr   r   rn   r   r=   r   )
argr   r   r   r   r   r   r   signrF   rx   r   r   test_arg_signr    sF   q66Q;;;;r77::b>>q6699RT??r77::rc!eq66Q;;;;qs1qs1s3     s88q====t99<<S??77a<<<<77a<<<<88r>>>>99>>>>::c77a<<<<1::!!99<<1d1gg&&&&&&&r   c                  T    dt           _        t          d           dt           _        d S )Nr@   i  r   )r   r   r   rx   r   r   test_misc_bugsr    s    BFIIIBFFFr   c                     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 d S )-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%jj#e**c%jje**c%jj#e**c%jje**c%jj2 2 2 2 2 "a==S[[#f++s6{{ [[#f++s5zz ZZUSZZUM M M M M !QUS1F-G-G!$%:!;!;!$%:!;!;!$%:!;!;!$US1F-G-G!$%:!;!;!$%:!;!;!$%:!;!;!= = = = = "b"#f++s6{{CKK"%e**c%jj#e**"%f++s6{{CKK"I I I I I #sD!!c*?&@&@%AAAAA!99????$r!!!!%z**b000000r   c            
      8   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 d S )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-E !!3u::s3F/G/G !!3u::!/ / / / / Aq!a(((SZZUSZZE

CJJE

CJJ-8 8 8 8 8Aq!Q((((((r   c                  >   dt           _        t          ddd          D ]2} t          | | z  | z                                | t
                    sJ 3t          d                              dt          t          d          z  dz  z             sJ t          d	          dz  }t          ddd
          dgz   D ]z} t          | dz             } t          |           }t           xj        dz  c_        t          | |          }t           xj        dz  c_        |                    |t
                    sJ {dt           _        t          ddd          D ]A}d|z  t          dz  z   }||z  |z  }t          |          }t          ||t
                    sJ Bdt           _        d S )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     s   BFAb & &AaCE{{~~a%%%%%%88;;sQtAwwYq[()))))AqIAb-  DMM!WW
"I
"uuR~~BF3S!! ! !EAfHaCEGGaC      BFFFr   c            
      b   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    sJ +dt           _        t          dd	d
          D ]}t          j                    dz  t          j                    dd
z  z  fD ]} t          | |          }t          | t          d          |z            }|	                    |          sJ t          | |           }t          | t          d           |z            }|	                    |          sJ dD ]y}|t           _
        dD ]h}d}t          d          D ]T}|t           _        t                      } d|z  t           _        | |z  }|t           _        t          ||          }|| k    sJ Uizdt           _        t          dd          D ]}t          j                    t          t          j                    z  z   } t          | |          	                    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_        |	                    |          sJ t          ||t                    sJ t          | |           }t           xj        dz  c_        t          | t          d           |z            }t           xj        dz  c_        |	                    |          sJ t          ||t                    s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 d S )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
KNNNq%  A	!AAAA66661b\\ ' 'aCs1vvq!!Q&&&&&BF2tS!!  -//%'S)@A 	 	A1AQAq!!B4488OOOA2AQQ	""B4488OOOO	 )   		 		AD2YY  FFD&qDAqMMAvvvvv		 BF1b\\ " "]__q00q!}}As1vvax 0 011111gammSCFF1H%5%566666]__RW$q'88AqMM
!CFF1H
!ttBxxaS!!!!!ArNN
!SVVGAI
!ttBxx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!!!!!!99!$$$$1Q<<11Q<<21Q<<21Q<<31Q<<1Qq>>Rr   c                     dD ]p} | t           _        t          t          d          d          }|                    t          d          dz  dt
          z   z  t          d          dz  z            sJ qd	t           _        t          d
d                              t          d          dz  dt
          z   z  t          d          z            sJ t          dd                              dt
          z   dt          d          z  z            sJ dt           _        t          dd                              dt
          z   t          d          z  t          d          z            sJ dt           _        d S )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_136r0  r  s=    > >CMM1%%ttCGGbMQU+c!fftn<======BF7A!!#b''E"2a!e"<T!WW"DEEEEE7A!!1q52R="9:::::BF>1%%((!A#s</@/@)@a)HIIIIIBFFFr   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|                                        t          t          |z                      sJ t          t	          d|                                        t	          dt          t          |z                                sJ t          t	          | d                    \  }}|t          |           k    sJ |t          |           k    sJ t          t	          d|                    \  }}|                    t          t          |z                      s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 d S )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_imagr8    s   BFCACAs1Qxx==CFF""""s1Qxx==CAs1vv......s1Qxx==CFF""""s1Qxx==CFF""""s1Qxx==DGG####s1Qxx==C$q''NN****Qq??eAhh&&&&Qq??eAhh&&&&Qq??d2a4jj)))))Qq??c!DAJJ//00000s1Qxx  DAqa====a====s1Qxx  DAq44RT

44Ad2a4jj!!"""""3q88DAqA;;;;A;;;;3q88DAqQ<<<<Ad1ggr   c                     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k    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 ]r} ||           | 
 k    sJ  || d          | k    sJ  || d          | k     sJ  ||          |
 k    sJ  ||d          |k    sJ  ||d          |k     sJ st          t          t          t          fD ]r} ||           | 
 k    sJ  ||          |
 k    sJ  || d          | k    sJ  ||d          |k    sJ  || d          | k     sJ  ||d          |k     sJ st          |          | 
 k    sJ t          |          |
 k    sJ t          |d          | k    sJ t          |d          | k     sJ t          |d          |k    sJ t          |d          |k     sJ t          |           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 d S )	Nr   r   r   r=   r   r6  rY   f)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r	   r6  rX   r:  s        r   test_perturbation_roundingr;    s,   BF
2r6	A	BF
A	AA	AABFq66Q;;;;q3!####q31$$$$q31$$$$q3!####q66Q;;;;q31$$$$q31$$$$q3!####q3!####4% & &qttrzzzzqS!!!A%%%%qS!!!A%%%%qttrzzzzqS!!!A%%%%qS!!!A%%%%%Cu% & &qttrzzzzqttrzzzzqS!!!A%%%%qS!!!A%%%%qS!!!A%%%%qS!!!A%%%%%a55QB;;;;a55QB;;;;a#""""a#""""a#""""a#""""77a<<<<77a<<<<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 d S )Ng	@r   r   y	@      @y      @      @y      @      @)floorceilrx   r   r   test_integer_partsr?    s\    ::????99>>>>==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                                          dk    sJ d S )
N3r         @      @rN   y      ?      @r=   r   r   y      @      )fabsreimconjr    	conjugaterx   r   r   test_complex_partsrH    s    99>>>>::????a55A::::d88q====a55A::::d88q====77a<<<<::q66""""""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	                              t          d          dz            sJ t          d
          } | j                            t          d
t          z            j                  sJ | j        dk    sJ t          d
          }|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                      t                     sJ t          |          |
z                      t                    sJ t          |          |
z                      t                    sJ t          |          |
z                      t                     sJ t          |          |
z                      t                    sJ t          |          |
z                      t                     sJ t          |          |
z                      t                     sJ t          |	          |
z                      t                    sJ dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |d          cxk     rdk     sn J dt          |	d          cxk     rdk     sn J t          d          |
z                      t                    sJ t          d          |
z                      t                     sJ t          d          dk    sJ t          dd          dk     sJ d S )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瞯Ҽ)r3  r2  r   rF   r   r   r   r   r   r   r   r    )r   r	   r   r   x3x4x5x6x7x8Ms              r   test_cospi_sinpirS    s   88q====::????88q====::88q====::????;;"88q====::????88r>>>>::????88q====::????;;!!!$$T!WWQY/////dA699S$^^()))))6Q;;;;dA699S$^^()))))6Q;;;;BF	Uc'll	"B	Uc'll	"B	WG	$B	WG	$B	Uc'll	"B	Uc'll	"B	WG	$B	WG	$BBFA"IIaKRC     "IIaKB"IIaKB"IIaKRC     "IIaKB"IIaKRC     "IIaKRC     "IIaKB5c***....Q......5c***....Q......5c***....Q......5c***....Q......b3'''0000&000000b3'''0000&000000b3'''0000&000000b3'''0000&000000%LLNr"""""&MM!O$$$$$<<1%%%))))))r   c                     t          d          dk    sJ t          d                              t          t                              sJ t          t                                        t          d                    sJ t          dt          z                                 t          t          dt          z   z                      sJ t	          d          dk    sJ t	          d                              t          t          t
          z                      sJ t	          t                                        t          t
                               sJ t	          dt          z                                 t          t          t
          z  dt          z   z                      sJ t	          dt          z                                d          sJ d S )Nr   r=   r   l  I5 z%2.22579818340535731e+1364376353841841)expjr   r   r   expjpir   rx   r   r   	test_expjrW    sO   77a<<<<77::c!ff77::c"gg!99<<AqsG%%%%%!99>>>>!99<<AbD		"""""!99<<RC!!!!!!A#;;>>#adAaCj//*****'A+!!"IJJJJJJJr   c                  6   t          d          t          d          cxk    rdk    sn J t          t                    t          t                    cxk    rdk    sn J t          t                     t          t                     cxk    rdk    sn J t          d                              d          sJ t          d                              d          sJ t          d          dk    sJ t          d                              d          sJ d S )	Nr   r=   r   gF?rJ  y?\ar   g)˿)sincsincpir   r   rx   r   r   	test_sincr[    s   77fQii$$$$1$$$$$$99s((((q((((((::**********77::,-----::==EFFFFF!99>>>>#;;>>/0000000r   c                  P   dt           _        d t          dd          D             g dk    sJ t          d                              d          sJ t          d                              d	          sJ t          d
                              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 d S )Nr   c                 ,    g | ]}t          |          S rx   )	fibonaccir   r[   s     r   r   z"test_fibonacci.<locals>.<listcomp>#  s    000QIaLL000r   r  r   )rN   rn   r   r   r=   r   r=   r=   r   r   rN   rB   rR   r&  "   r   g 3?rB  yɽ傀C,r@   gaڃe@kr   zv6.24499112864607e+2089876402499787337692720892375554168224592399182109535392875613974104853496745963277658556235103534i4  rA   r   l   E!	 y      @        r   )r   r   rE   fibr   strr^  r   r   s    r   test_fibonaccirc  !  s+   BF00%B--000:::; ; ; ;s88;;)*****t99<<<=====t99<</00000s2s7||  !Y  Y  Y  Y  YBFE

Av:####BFS>>S    t99>>>>>>r   c                      dt           _        t          t          dd          t	          d          z
            dk     sJ d S )Nr   r=   r   )r   rK  gG^Z9)r   r   absr   r"   rx   r   r   test_call_with_dpsrf  0  s?    BFs1"~~~aBiii'((5000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 d S )Nr   r   r=   r   r   0)r   r   r   r   r   r   r   rx   r   r   	test_tanhri  4  s    BF77a<<<<99>>>>::cE3  A%%%%%%r   c                  $   dt           _        t          d          dk    sJ t          d                              d          sJ t          d                              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                                        |            sJ t          t                                         |           sJ t          t          t          d                                        |            sJ t          t          t          d                                        |            sJ t          t          t          d                                        |           sJ t          t          dt                                                  |           sJ t          t          dt                                                  |           sJ t          t          dt                                                  |           sJ t          t          t           d                                        |           sJ t          t          t           d                                        |           sJ t          t          t           d                                        |            sJ t          t          dt                                                   |            sJ t          t          dt                                                   |            sJ t          t          dt                                                   |            sJ d S )
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_atanhrl  <  s;   BF88q====::==/00000;;>>12222288s????99seAhh$$$$$eBii%%%%%R46D::==$#;;>>$S  $'''''S&&&&&S%%%%%Qs%%%%%Qs%%%%%R  &&&&&cT!  &&&&&cT!  &&&&&cT"!!4%(((((R!!4%(((((Qt  $'''''Qt  $'''''''r   c                     dt           _        t          d          dk    sJ t          d                              t	          d          dz
            sJ t          t
                    t
          k    sJ t          d                              d          sJ t          d          dz                      d          sJ d S )	Nr   r   r   r=   r   r       _Bgo   ?)r   r   expm1r   r   r   rx   r   r   
test_expm1rp  W  s    BF88q====88;;s1vvax     ::<<??5!!!!!%LL!!-0000000r   c                  ~   dt           _        t          d          dk    sJ t          d                              t	          d                    sJ t          t
                    t
          k    sJ t          d                              d          sJ t          d          dz                      d          sJ d S )	Nr   r   r   r   r   r   rn  g ?)r   r   log1pr   r   r   rx   r   r   
test_log1prs  _  s    BF88q====88;;s3xx     ::<<??5!!!!!%LL!!-0000000r   c                  f   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                      t
                    sJ t          dd          dk    sJ t          t          d	dd          d
          dz                      d
          sJ d S )Nr   r   r   r   r   r   rD   rB  r=   rN   r   g0.++g}Ô%ITz1e-100000000000T)exact)r   r   powm1r   r   r(   faddrx   r   r   
test_powm1rx  g  s   BF1::????A;;!A;;!A;;!a==A1::1::????1::????1::????4==A1::????1::????!A;;!!FOOE!%%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 |                    d          s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 d S )Nr=   r   r   r   y      ࿪LXz?y      ࿪LXzT)	primitiver   r  r'  rB   )	unitrootsr   r   len)r   r	   r6  s      r   test_unitrootsr}  z  si   Q<<A3Q<<Ar7""""llGAq!666644./////44./////Q$'''A3....Q$'''B4////Q$'''9Q<<+;;;;;Q$'''Ar72222yt,,,--3333yt,,,--222222r   c                     dt           _        d t          d          D             g dk    sJ d t          d          D             g dk    sJ d t          d          D             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 d t          d          D             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|                               d          sJ t	          d|                               d          sJ t	          d|                               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 d S )Nr   c                 .    g | ]}t          |d           S )r=   
cyclotomicr_  s     r   r   z#test_cyclotomic.<locals>.<listcomp>  s     ///JqOO///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=   c                 .    g | ]}t          |d           S )r   r  r_  s     r   r   z#test_cyclotomic.<locals>.<listcomp>  s"    000Jq000r   )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=   c                 8    g | ]}t          |t                    S rx   r  r   r_  s     r   r   z#test_cyclotomic.<locals>.<listcomp>  s     ///JqOO///r   r&  r=   r   r   r   r   rN   c                 :    g | ]}t          |t                     S rx   r  r_  s     r   r   z#test_cyclotomic.<locals>.<listcomp>  s$    000Jq!000r   iX  i@  i  r8   rB   r   g?3OP@i  r   r   g      @g     #@r   g    cy@)r   r   rE   r   r  rF   r   )r\   s    r   test_cyclotomicr    s}   BF//U2YY///3x3x3xxxxx00eBii0004v4v4vvvvv//U2YY///Abd1Q3q1aR!QBqQRSTUVXYWYZ[\]^_`abcde3fffff00eBii000Qr!tAaC1Qq!AaPQSTRTUVWXYZ[\]^_`bcacefdfgh4iiiiid1""""eA!####QSAaq!!!!!b! 566666dA!!!$$$$$a!!!!a%%%%a%%%%a 00000a
******r   )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,  r0  r8  r;  r?  rH  rS  rW  r[  rc  rf  ri  rl  rp  rs  rx  r}  r  rx   r   r   <module>r     s                  $#*
(&	&**	0	
'(*,
  ,: : :G G G<I I I! ! !  ) ) )' ' '#' #' #'J/ / /
! 
! 
!      &% % %4% % %:$ $ $L) ) )2 2 2     B/ / / . . .* * *= = =' ' '2  1 1 1.) ) )  *J  J  J X    6*& *& *&X     	# 	# 	#4* 4* 4*l	K 	K 	K1 1 1  1 1 1& & &( ( (61 1 11 1 1= = =&3 3 3+ + + + +r   