§
    2@Äj‚j  ã                   óì  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlm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(„ Z3d)„ Z4d*„ Z5d+„ Z6d,„ Z7d-„ Z8d.„ Z9d/„ Z:d0„ Z;d1Z<d2Z=d3Z>d4„ Z? G d5„ d6e¦  «        Z@ G d7„ d8e¦  «        ZAeBd9k    r ejC        ¦   «          dS dS ):é    N)ÚnjitÚtypes)ÚTestCase)Únumpy_support)Ú	PYVERSIONc                 ó*   — t          j        | ¦  «        S ©N)ÚmathÚsin©Úxs    úIC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_mathlib.pyr   r      ó   € ÝŒ8�A‰;Œ;Ðó    c                 ó*   — t          j        | ¦  «        S r	   )r
   Úcosr   s    r   r   r      r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Útanr   s    r   r   r      r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úsinhr   s    r   r   r      ó   € ÝŒ9�Q‰<Œ<Ðr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úcoshr   s    r   r   r       r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Útanhr   s    r   r   r   $   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úasinr   s    r   r   r   (   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úacosr   s    r   r   r   ,   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úatanr   s    r   r!   r!   0   r   r   c                 ó,   — t          j        | |¦  «        S r	   )r
   Úatan2)Úyr   s     r   r#   r#   4   ó   € ÝŒ:�a˜ÑÔÐr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úasinhr   s    r   r'   r'   8   ó   € ÝŒ:�a‰=Œ=Ðr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úacoshr   s    r   r*   r*   <   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úatanhr   s    r   r,   r,   @   r(   r   c                 ó*   — t          j        | ¦  «        S r	   ©r
   Úsqrtr   s    r   r/   r/   D   r   r   c                 ó*   — t          j        | ¦  «        S r	   )Únpr/   r   s    r   Únpy_sqrtr2   H   s   € ÝŒ7�1‰:Œ:Ðr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úexpr   s    r   r4   r4   L   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úexp2r   s    r   r6   r6   O   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úexpm1r   s    r   r8   r8   R   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úlogr   s    r   r:   r:   V   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úlog1pr   s    r   r<   r<   Z   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úlog10r   s    r   r>   r>   ^   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úlog2r   s    r   r@   r@   b   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úfloorr   s    r   rB   rB   f   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úceilr   s    r   rD   rD   j   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Útruncr   s    r   rF   rF   n   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úisnanr   s    r   rH   rH   r   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úisinfr   s    r   rJ   rJ   v   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úisfiniter   s    r   rL   rL   z   s   € ÝŒ=˜ÑÔÐr   c                 ó,   — t          j        | |¦  «        S r	   )r
   Úhypot©r   r$   s     r   rN   rN   ~   r%   r   c                 ó,   — t          j        | |¦  «        S r	   )r
   Ú	nextafterrO   s     r   rQ   rQ   ‚   s   € ÝŒ>˜!˜QÑÔÐr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Údegreesr   s    r   rS   rS   †   ó   € ÝŒ<˜‰?Œ?Ðr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úradiansr   s    r   rV   rV   Š   rT   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úerfr   s    r   rX   rX   Ž   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úerfcr   s    r   rZ   rZ   ’   r   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úgammar   s    r   r\   r\   –   r(   r   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úlgammar   s    r   r^   r^   š   s   € ÝŒ;�q‰>Œ>Ðr   c                 ó,   — t          j        | |¦  «        S r	   )r
   ÚpowrO   s     r   r`   r`   ž   ó   € ÝŒ8�A�q‰>Œ>Ðr   c                 ó,   — t          j        | |¦  «        S r	   )r
   ÚgcdrO   s     r   rc   rc   ¡   ra   r   c                 ó,   — t          j        | |¦  «        S r	   )r
   ÚcopysignrO   s     r   re   re   ¤   s   € ÝŒ=˜˜AÑÔÐr   c                 ó*   — t          j        | ¦  «        S r	   )r
   Úfrexpr   s    r   rg   rg   ¨   r(   r   c                 ó,   — t          j        | |¦  «        S r	   )r
   Úldexp©r   Úes     r   ri   ri   ¬   r%   r   c                 óZ   — t          j        | ¦  «        \  }}t          j        ||¦  «        S r	   )r
   rg   ri   )r   Úmrk   s      r   Úfrexp_ldexp_roundtriprn   °   s%   € ÝŒ:�a‰=Œ=�D€A€qÝŒ:�a˜ÑÔÐr   c                 ó,   — t          j        | |¦  «        S r	   )r1   ri   rj   s     r   Únp_ldexprp   µ   s   € ÝŒ8�A�q‰>Œ>Ðr   g       g       gÿÿÿÿÿÿïc                  ó2   — t           j        t           j        fS r	   )r
   Úpirk   © r   r   Úget_constantsrt   ¿   s   € ÝŒ7•D”Fˆ?Ðr   c                   ó–  — e Zd Zd„ Zd4d„Zd4d„Zd„ Zd„ Z ej	        e
j        dk    d¦  «        d	„ ¦   «         Zd
„ Zd„ Zd„ Zd„ Z ej        edk    d¦  «        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/„ Z2d0„ Z3d1„ Z4d2„ Z5d3S )5ÚTestMathLibc                 óŽ   — t          t          ¦  «        }|                       |¦   «         |                     ¦   «         ¦  «         d S r	   )r   rt   ÚassertPreciseEqualÚpy_func©ÚselfÚcfuncs     r   Útest_constantszTestMathLib.test_constantsÅ   s9   € Ý•]Ñ#Ô#ˆØ×Ò  ¡¤¨¯ª©¬Ñ9Ô9Ð9Ð9Ð9r   Úexactc                 óÎ   — t          |¦  «        }t          ||¦  «        D ]D\  }} ||¦  «        }	 ||¦  «        }
|t          j        u rdn|}d|›�} | j        |	|
f||dœ|¤Ž ŒEd S )NÚsingleú
for input ©ÚprecÚmsg©r   Úzipr   Úfloat32rx   )r{   ÚpyfuncÚx_typesÚx_valuesrƒ   Úkwargsr|   ÚtxÚvxÚgotÚexpectedÚactual_precr„   s                r   Ú	run_unaryzTestMathLib.run_unaryÉ   s¥   € Ý�V‘”ˆÝ˜' 8Ñ,Ô,ð 	.ð 	.‰FˆB�Ø�%˜‘)”)ˆCØ�v˜b‘z”zˆHØ&(­E¬MÐ&9Ð&9˜(˜(¸tˆKˆKØ$& BÐ(ˆCØ#ˆDÔ# C¨ð .¸Èð .ð .Ø&,ð.ð .ð .ð .ð	.ð 	.r   c                 óì   — t          |¦  «        }t          |||¦  «        D ]R\  }}}	 |||	¦  «        }
 |||	¦  «        }|t          j        u rdn|}d|›d|	›d�}|                      |
|||¬¦  «         ŒSd S )Nr€   zfor inputs (ú, ú)r‚   r…   )r{   rˆ   r‰   rŠ   Úy_valuesrƒ   r|   Útyr   r$   rŽ   r�   r�   r„   s                 r   Ú
run_binaryzTestMathLib.run_binaryÓ   s£   € Ý�V‘”ˆÝ˜G X¨xÑ8Ô8ð 	Nð 	N‰HˆB��1Ø�%˜˜1‘+”+ˆCØ�v˜a ‘|”|ˆHØ&(­E¬MÐ&9Ð&9˜(˜(¸tˆKˆKØ+,¨1¨1¨a¨a¨aÐ0ˆCØ×#Ò# C¨¸ÈÐ#ÑMÔMÐMÐMð	Nð 	Nr   c                 óÄ  — t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        g}ddddddt          d¦  «        dt          d¦  «        t          d¦  «        dt          d¦  «        g}|  
                    |||¦  «         d S )Nr   Úinfç        Únan)r   Úint16Úint32Úint64Úuint16Úuint32Úuint64r‡   Úfloat64Úfloatr‘   ©r{   rˆ   r‰   rŠ   s       r   Úcheck_predicate_funcz TestMathLib.check_predicate_funcÜ   s˜   € Ý”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-µ´Ý”=¥%¤-µ´ð@ˆð �q˜!˜Q  1Ý˜%‘L”L #¥u¨U¡|¤|Ý˜%‘L”L #¥u¨U¡|¤|ð5ˆð 	�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S ©N©éþÿÿÿéÿÿÿÿr©   é   é   r«   çš™™™™™¹?çš™™™™™É?)r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_sinzTestMathLib.test_sinæ   óZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   Úwin32z'not exactly equal on win32 (issue #597)c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_coszTestMathLib.test_cosî   s\   € õ ˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_tanzTestMathLib.test_tanø   r°   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S )N©r«   r¬   r«   r«   r¬   r«   r­   r®   )r/   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_sqrtzTestMathLib.test_sqrt   óZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð .Ð-Ð-ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 ó4  — t           }g d¢}t          j        t          j        g}|                      |||d¬¦  «         t          j        t          j        t          j        t          j        t          j	        t          j
        g}|                      |||¦  «         d S )Nr·   r€   ©rƒ   )r2   r   rœ   rŸ   r‘   r�   rž   r    r¡   r‡   r¢   ©r{   rˆ   rŠ   r‰   s       r   Útest_npy_sqrtzTestMathLib.test_npy_sqrt  sz   € ÝˆØ-Ð-Ð-ˆå”;¥¤Ð-ˆØ�Š�v˜w¨°xˆÑ@Ô@Ð@Ý”;¥¤Ý”<¥¤Ý”=¥%¤-ð1ˆð 	�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r4   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_expzTestMathLib.test_exp  r°   r   )é   é   zneeds Python 3.11+c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r6   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_exp2zTestMathLib.test_exp2  sZ   € åˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r8   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_expm1zTestMathLib.test_expm1$  sZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S ©N)r¬   é
   éd   éè  é † i@B r­   gš™™™™™ñ?)r:   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_logzTestMathLib.test_log,  s[   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð AÐ@Ð@ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÇ   )r<   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_log1pzTestMathLib.test_log1p4  ó[   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð AÐ@Ð@ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÇ   )r>   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_log10zTestMathLib.test_log10<  rÏ   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÇ   )r@   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_log2zTestMathLib.test_log2D  s[   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð AÐ@Ð@ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S ©N©r¬   r¬   r¬   r¬   r¬   r¬   ç      ð?r×   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_asinzTestMathLib.test_asinL  r¹   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_acoszTestMathLib.test_acosT  r¹   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S r§   )r!   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_atanzTestMathLib.test_atan\  sZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 ó  — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}d„ |D ¦   «         }|  
                    ||||¦  «         d S )Nr¨   c                 ó   — g | ]}|d z  ‘ŒS ©r«   rs   ©Ú.0r   s     r   ú
<listcomp>z*TestMathLib.test_atan2.<locals>.<listcomp>j  ó   € Ð,Ð,Ð,˜a�A˜‘EÐ,Ð,Ð,r   )r#   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r—   ©r{   rˆ   r‰   rŠ   r•   s        r   Ú
test_atan2zTestMathLib.test_atan2d  so   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ,Ð, 8Ð,Ñ,Ô,ˆØ�Š˜ ¨°8Ñ<Ô<Ð<Ð<Ð<r   c                 ó  — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||d¬¦  «         d S )NrÖ   Údoubler»   )r'   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_asinhzTestMathLib.test_asinhm  s^   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð .Ð-Ð-ˆØ�Š�v˜w¨°xˆÑ@Ô@Ð@Ð@Ð@r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )r*   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_acoshzTestMathLib.test_acoshu  sZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð .Ð-Ð-ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 ó  — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||d¬¦  «         d S )N©r   r   r   r   r   r   r­   r­   rç   r»   )r,   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_atanhzTestMathLib.test_atanh}  s^   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 0Ð/Ð/ˆØ�Š�v˜w¨°xˆÑ@Ô@Ð@Ð@Ð@r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_sinhzTestMathLib.test_sinh…  r¹   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_coshzTestMathLib.test_cosh�  r¹   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S )Nrì   )r   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_tanhzTestMathLib.test_tanh•  óZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 0Ð/Ð/ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S ©N)r   r   r   r   r   r   r­   gffffffþ?)rB   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_floorzTestMathLib.test_floor�  óZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 0Ð/Ð/ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rö   )rD   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú	test_ceilzTestMathLib.test_ceil¥  rô   r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rö   )rF   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Ú
test_trunczTestMathLib.test_trunc­  rø   r   c                 ó:   — |                       t          ¦  «         d S r	   )r¥   rH   ©r{   s    r   Ú
test_isnanzTestMathLib.test_isnanµ  ó   € Ø×!Ò!¥%Ñ(Ô(Ð(Ð(Ð(r   c                 ó:   — |                       t          ¦  «         d S r	   )r¥   rJ   rþ   s    r   Ú
test_isinfzTestMathLib.test_isinf¸  r   r   c                 ó:   — |                       t          ¦  «         d S r	   )r¥   rL   rþ   s    r   Útest_isfinitezTestMathLib.test_isfinite»  s   € Ø×!Ò!¥(Ñ+Ô+Ð+Ð+Ð+r   c           	      ó  — t           }t          j        t          j        t          j        t          j        g}g d¢}d„ |D ¦   «         }d}|                      |||||¦  «         d„ }t          |¦  «        }t          j        t          j        fD ]ø}t          j	        |¦  «        j
        }	 |	t          j        |	¦  «        j        dz  ¦  «        }
 ||
|
¦  «        }|                      | ||
|
¦  «        d¬¦  «         |                      t          j        |¦  «        ¦  «         t#          j        ¦   «         5  t#          j        dt(          ¦  «         |                      t(          d||
|
¦  «         d d d ¦  «         n# 1 swxY w Y   Œùd S )	N)r¬   r«   rÀ   é   é   é   çáz®GáÊ?çÃõ(\�ÂÕ?c                 ó   — g | ]}|d z   ‘ŒS rß   rs   rà   s     r   râ   z*TestMathLib.test_hypot.<locals>.<listcomp>Ã  rã   r   r€   c                 ó<   — t          j        | | z  ||z  z   ¦  «        S r	   r.   rO   s     r   Únaive_hypotz+TestMathLib.test_hypot.<locals>.naive_hypotÊ  s   € Ý”9˜Q ™U Q¨¡U™]Ñ+Ô+Ð+r   g      >@r»   Úerrorz overflow encountered in .*scalar)rN   r   rž   r¡   r‡   r¢   r—   r   r   Úas_dtypeÚtyper1   ÚfinfoÚmaxrx   Ú
assertTruerL   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningÚassertRaisesRegex)r{   rˆ   r‰   rŠ   r•   rƒ   r  r|   ÚflttyÚdtÚvalÚnb_anss               r   Ú
test_hypotzTestMathLib.test_hypot¾  s»  € ÝˆÝ”;¥¤Ý”=¥%¤-ð1ˆà/Ð/Ð/ˆØ,Ð, 8Ð,Ñ,Ô,ˆàˆØ�Š˜ ¨°8¸TÑBÔBÐBð	,ð 	,ð 	,õ �V‘”ˆÝ”m¥U¤]Ð3ð 	?ð 	?ˆEÝÔ'¨Ñ.Ô.Ô3ˆBØ�"•R”X˜b‘\”\Ô%¨Ñ+Ñ,Ô,ˆCØ�U˜3 ‘_”_ˆFØ×#Ò# F¨F¨F°3¸Ñ,<Ô,<À8Ð#ÑLÔLÐLØ�OŠO�BœK¨Ñ/Ô/Ñ0Ô0Ð0åÔ(Ñ*Ô*ð ?ð ?ÝÔ% g­~Ñ>Ô>Ð>Ø×&Ò&¥~Ø(JØ(3°S¸#ñ?ô ?ð ?ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?øð	?ð 	?s   Ä39E8Å8E<	Å?E<	c                 ó  — t           }t          j        t          j        t          j        t          j        t          j        t          j        g}g d¢}d„ |D ¦   «         }d„ |D ¦   «         }|                      ||||¦  «         |                      ||||¦  «         |                      ||g d¢t          j
        gdz  ¦  «         |                      ||g d¢t          j
         gdz  ¦  «         |                      ||||¦  «         d S )N)rš   r	  r
  g%�Œ®.Ag‡ÙÎ÷S9Àc                 ó   — g | ]}|d z   ‘ŒS rß   rs   rà   s     r   râ   z.TestMathLib.test_nextafter.<locals>.<listcomp>á  ó   € Ð-Ð-Ð-˜q�Q˜‘UÐ-Ð-Ð-r   c                 ó   — g | ]}|d z
  ‘ŒS rß   rs   rà   s     r   râ   z.TestMathLib.test_nextafter.<locals>.<listcomp>â  r   r   )rš   ç      à¿ç      à?rÀ   )rQ   r   r‡   r¢   r�   rž   r    r¡   r—   r
   r™   )r{   rˆ   r‰   rŠ   Ú	y1_valuesÚ	y2_valuess         r   Útest_nextafterzTestMathLib.test_nextafterÛ  sø   € ÝˆÝ”=¥%¤-Ý”;¥¤Ý”<¥¤ð/ˆð 9Ð8Ð8ˆØ-Ð- HÐ-Ñ-Ô-ˆ	Ø-Ð- HÐ-Ñ-Ô-ˆ	à�Š˜ ¨°9Ñ=Ô=Ð=Ø�Š˜ ¨°9Ñ=Ô=Ð=ð 	�Š˜ ¨¨¨½$¼(¸ÀA¹ÑFÔFÐFØ�Š˜ ¨¨¨½4¼8¸)¸ÀQ¹ÑGÔGÐGð 	�Š˜ ¨°8Ñ<Ô<Ð<Ð<Ð<r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )rS   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_degreeszTestMathLib.test_degreesî  óZ   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð .Ð-Ð-ˆØ�Š�v˜w¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}|  
                    |||¦  «         d S rÕ   )rV   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r‘   r¤   s       r   Útest_radianszTestMathLib.test_radiansö  r)  r   c           
      óÌ   — t           }dddddddt          d¦  «        g}t          j        t          j        gt          |¦  «        dz  z  }|                      |||d	d¬
¦  «         d S )Nr×   ç      ð¿ç       €rš   r#  r  r™   r«   rç   ©rƒ   Úulps)rX   r£   r   r‡   r¢   Úlenr‘   r¼   s       r   Útest_erfzTestMathLib.test_erfþ  sc   € ÝˆØ˜˜C  s¨C°µE¸%±L´LÐAˆÝ”=¥%¤-Ð0µC¸±M´MÀQÑ4FÑGˆØ�Š�v˜w¨°xÀaˆÑHÔHÐHÐHÐHr   c           
      óÌ   — t           }dddddddt          d¦  «        g}t          j        t          j        gt          |¦  «        dz  z  }|                      |||d	d
¬¦  «         d S )Nr×   r-  r.  rš   r#  r  r™   r«   rç   r  r/  )rZ   r£   r   r‡   r¢   r1  r‘   r¼   s       r   Ú	test_erfczTestMathLib.test_erfc  sc   € ÝˆØ˜˜C  s¨C°µE¸%±L´LÐAˆÝ”=¥%¤-Ð0µC¸±M´MÀQÑ4FÑGˆØ�Š�v˜w¨°xÀaˆÑHÔHÐHÐHÐHr   c                 ó>  — t           }g d¢}t          j        t          j        gt	          |¦  «        dz  z  }|                      |||dd¬¦  «         dddd	d
t          d¦  «        g}t          j        gt	          |¦  «        z  }|                      |||dd¬¦  «         d S )N)r×   çÍÌÌÌÌÌì¿r"  r#  r«   rç   rÀ   r/  çš™™™™™¹¿r­   ç      @g333333$@g      I@r™   é   )r\   r   r‡   r¢   r1  r‘   r£   r¼   s       r   Ú
test_gammazTestMathLib.test_gamma
  sš   € ÝˆØ(Ð(Ð(ˆÝ”=¥%¤-Ð0µC¸±M´MÀQÑ4FÑGˆØ�Š�v˜w¨°xÀaˆÑHÔHÐHØ˜#˜s D¨#­u°U©|¬|Ð<ˆÝ”=�/¥C¨¡M¤MÑ1ˆØ�Š�v˜w¨°xÀaˆÑHÔHÐHÐHÐHr   c           
      óÊ   — t           }dddddddt          d¦  «        g}t          j        t          j        gt          |¦  «        d	z  z  }|                      |||d
¬¦  «         d S )Nr×   r6  r7  r­   g      i@g    _ BçêŒ 9Y>)Fr™   r«   rç   r»   )r^   r£   r   r‡   r¢   r1  r‘   r¼   s       r   Útest_lgammazTestMathLib.test_lgamma  sa   € ÝˆØ˜˜d C¨¨t°T½5À¹<¼<ÐHˆÝ”=¥%¤-Ð0µC¸±M´MÀQÑ4FÑGˆØ�Š�v˜w¨°xˆÑ@Ô@Ð@Ð@Ð@r   c                 ó  — t           }t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g}g d¢}d„ |D ¦   «         }|  
                    ||||¦  «         d S )Nr¨   c                 ó   — g | ]}|d z  ‘ŒS rß   rs   rà   s     r   râ   z(TestMathLib.test_pow.<locals>.<listcomp>  rã   r   )r`   r   rœ   r�   rž   rŸ   r    r¡   r‡   r¢   r—   rä   s        r   Útest_powzTestMathLib.test_pow  so   € ÝˆÝ”;¥¤­U¬[Ý”<¥¤­u¬|Ý”=¥%¤-ð1ˆð 1Ð0Ð0ˆØ,Ð, 8Ð,Ñ,Ô,ˆØ�Š˜ ¨°8Ñ<Ô<Ð<Ð<Ð<r   c                 ó.  — ddl m}m}m} t          } |t          t          j        ¦  «        g |dd¦  «        ¢R Ž } |t          t          j        ¦  «        g |dd¦  «        ¢R Ž }t           |||¦  «        Ž \  }}}	|  
                    ||||	¦  «         d S )Nr   )ÚproductÚrepeatÚchain)r©   rª   r   r¬   r«   é   rÈ   r«   )r   r¬   r«   rE  é	   é   )Ú	itertoolsrB  rC  rD  rc   Úsortedr   Úsigned_domainÚunsigned_domainr†   r—   )
r{   rB  rC  rD  rˆ   Úsigned_argsÚunsigned_argsr‰   rŠ   r•   s
             r   Útest_gcdzTestMathLib.test_gcd"  sÖ   € Ø4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4Ð4ÝˆØ�gÝ•5Ô&Ñ'Ô'ð
Ø*0¨&Ð1IÈ1Ñ*MÔ*Mð
ð 
ð 
ˆð  ˜Ý•5Ô(Ñ)Ô)ð
Ø,2¨FÐ3FÈÑ,JÔ,Jð
ð 
ð 
ˆõ '*¨5¨5°¸mÑ+LÔ+LÐ&MÑ#ˆ�˜8Ø�Š˜ ¨°8Ñ<Ô<Ð<Ð<Ð<r   c                 ó4  — t           }t          j        t          j        g}ddddddt	          d¦  «        t	          d¦  «        t	          d	¦  «        g	}t          t          t          j        |||¦  «        Ž ¦  «        \  }}}|  	                    ||||¦  «         d S )
Nr©   rª   r.  rš   r¬   r«   ú-infr™   r›   )
re   r   r‡   r¢   r£   Úlistr†   rH  rB  r—   )r{   rˆ   Úvalue_typesÚvaluesr‰   rŠ   r•   s          r   Útest_copysignzTestMathLib.test_copysign.  s�   € ÝˆÝ”}¥e¤mÐ4ˆØ�b˜$  Q¨­5°©=¬=½%À¹,¼,Ý˜‘,”,ð ˆå&*­3ÝÔ˜{¨F°FÑ;Ô;ð,=ñ '>ô '>Ñ#ˆ�˜8à�Š˜ ¨°8Ñ<Ô<Ð<Ð<Ð<r   c           	      óÖ   — t           }t          j        t          j        g}ddddt	          d¦  «        t	          d¦  «        t	          d¦  «        g}|                      |||d¬	¦  «         d S )
Nç      Àr.  rš   g      @rP  r™   r›   r~   r»   )rg   r   r‡   r¢   r£   r‘   r¤   s       r   Ú
test_frexpzTestMathLib.test_frexp7  s^   € ÝˆÝ”=¥%¤-Ð0ˆØ˜$  SÝ˜&‘M”M¥5¨¡<¤<µ°u±´ð?ˆà�Š�v˜w¨°wˆÑ?Ô?Ð?Ð?Ð?r   c                 ó   — t           }t          |¦  «        }t          j        t          j        fD ]^}ddddddt          d¦  «        dft          d	¦  «        dft          d
¦  «        dff	D ]#}d|›�}|                       ||Ž  ||Ž ¦  «         Œ$Œ_d S )N)r8  r©   )r8  r¬   )rš   r   )rš   r¬   )r.  r   )r.  r¬   r™   r   rP  r›   r�   )ri   r   r   r‡   r¢   r£   rx   )r{   rˆ   r|   r  Úargsr„   s         r   Ú
test_ldexpzTestMathLib.test_ldexp>  s»   € ÝˆÝ�V‘”ˆÝ”m¥U¤]Ð3ð 	Eð 	EˆEØ" H¨h¸Ø" IÝ ™,œ,¨Ð*­U°6©]¬]¸AÐ,>Ý ™,œ,¨Ð*ð,ð Eð E��ð )-¨Ð.�Ø×'Ò'¨¨¨t¨°f°f¸d°mÑDÔDÐDÐDðEð	Eð 	Er   N)r~   )6Ú__name__Ú
__module__Ú__qualname__r}   r‘   r—   r¥   r¯   ÚunittestÚskipIfÚsysÚplatformr³   rµ   r¸   r½   r¿   Ú
skipUnlessr   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  r4  r:  r=  r@  rN  rT  rW  rZ  rs   r   r   rv   rv   Ã   s/  € € € € € ð:ð :ð :ð.ð .ð .ð .ðNð Nð Nð Nð2ð 2ð 2ð2ð 2ð 2ð €X„_�S”\ WÒ,Ø>ñ@ô @ð2ð 2ñ@ô @ð2ð2ð 2ð 2ð2ð 2ð 2ð	2ð 	2ð 	2ð2ð 2ð 2ð €XÔ˜ gÒ-Ð/CÑDÔDð2ð 2ñ EÔDð2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð=ð =ð =ðAð Að Að2ð 2ð 2ðAð Að Að2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð)ð )ð )ð)ð )ð )ð,ð ,ð ,ð?ð ?ð ?ð:=ð =ð =ð&2ð 2ð 2ð2ð 2ð 2ðIð Ið IðIð Ið IðIð Ið IðAð Að Að=ð =ð =ð
=ð 
=ð 
=ð=ð =ð =ð@ð @ð @ð	Eð 	Eð 	Eð 	Eð 	Er   rv   c                   ó\   — e 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S )ÚTestFrexpLdexpc                 ój  — t           }t          |¦  «        }ddddddt          j        ddd	d
t          t           t
          t
           t          t           ddt          d¦  «        t          d¦  «        t          d¦  «        g}|D ]/}|                       ||¦  «         ||¦  «        d|›�¬¦  «         Œ0d S )Nr×   r-  r#  r"  r8  rV  g   T4o�Açœu ˆ<ä7~çœu ˆ<ä7þçYóøÂn¥rš   r.  r™   rP  r›   r�   ©r„   )	rg   r   r
   rr   ÚDBL_MINÚDBL_TRUE_MINÚDBL_MAXr£   rx   ©r{   rˆ   r|   rŠ   r   s        r   Útest_frexp_wide_rangez$TestFrexpLdexp.test_frexp_wide_rangeK  sÀ   € ÝˆÝ�V‘”ˆØ˜˜s D¨#¨tµT´WØ ¨°Ý�g˜X¥|µl°]Ý�g˜XØ˜�u U™|œ|­U°6©]¬]½EÀ%¹L¼Lð	Jˆð
 ð 	?ð 	?ˆAØ×#Ò# E E¨!¡H¤H¨f¨f°Q©i¬i¨iØ:;¸!Ð(=ð $ñ ?ô ?ð ?ð ?ð	?ð 	?r   c                 ó:  — t          t          ¦  «        }t          dd¦  «        D ]u}t          j        d|¦  «        }|dk    st          j        |¦  «        rŒ2|                       ||¦  «        d         t          j        |¦  «        d         d|fz  ¬¦  «         Œvd S )NiÏûÿÿi  g      è?rš   r¬   zfor exponent %dri  )r   rg   Úranger
   ri   rJ   ÚassertEqual)r{   r|   rk   r   s       r   Ú*test_frexp_exponent_over_full_double_rangez9TestFrexpLdexp.test_frexp_exponent_over_full_double_rangeW  s¢   € å•U‘”ˆÝ�u˜dÑ#Ô#ð 	;ð 	;ˆAÝ”
˜4 Ñ#Ô#ˆAØ�CŠxˆx�4œ: a™=œ=ˆxØØ×Ò˜U˜U 1™XœX aœ[­$¬*°Q©-¬-¸Ô*:Ø!2°a°TÑ!9ð ñ ;ô ;ð ;ð ;ð		;ð 	;r   c                 ó¼  — t          t          ¦  «        }ddddddddd	d
t          d¦  «        t          d¦  «        t          d¦  «        fD ]�}t          j        |¦  «        } ||¦  «        \  }}t          j        t          |¦  «        ¦  «        \  }}|                      |t          j        |¦  «        d|›�¬¦  «         |                      ||d|›�¬¦  «         Œ‘d S )Nr×   r-  r8  rV  r#  r<  gêŒ 9Y>)Æg ÂëþKH´9rš   r.  r™   rP  r›   zmantissa for input ri  zexponent for input )r   rg   r£   r1   r‡   r
   rx   rq  )r{   r|   Úvr   Úgot_mÚgot_eÚ
expected_mÚ
expected_es           r   Útest_frexp_float32z!TestFrexpLdexp.test_frexp_float32a  s   € å•U‘”ˆØ�t˜S $¨¨T°5¸%Ø�t�U 5™\œ\­5°©=¬=½%À¹,¼,ðHð 	Að 	AˆAå”
˜1‘”ˆAØ ˜5 ™8œ8‰LˆE�5Ý%)¤Zµ°a±´Ñ%9Ô%9Ñ"ˆJ˜
Ø×#Ò# E­2¬:°jÑ+AÔ+AÐ+AØCDÀ1Ð(Fð $ñ Hô Hð Hà×Ò˜U J JØ<=¸AÐ!?ð ñ Aô Að Að Að	Að 	Ar   c                 óú   — t           }t          |¦  «        }ddddddt          j        t          j         ddd	d
g}g d¢}|D ]:}|D ]5}|                       |||¦  «         |||¦  «        d|›d|›d�¬¦  «         Œ6Œ;d S )Nr×   r-  r#  r"  r8  rV  gÍ;fž æ?gÿÿÿÿÿÿÿ?ç}Ã”%­I²Tç0Žä.ÿ++)é8ÿÿÿiÀÿÿÿéËÿÿÿéöÿÿÿéýÿÿÿrª   r   r¬   rÀ   rÈ   é5   é@   éÈ   úfor input (r“   r”   ri  )ri   r   r
   rr   rx   )r{   rˆ   r|   rŠ   Ú	exponentsr   Úns          r   Útest_ldexp_normal_rangez&TestFrexpLdexp.test_ldexp_normal_rangen  sÊ   € ÝˆÝ�V‘”ˆØ˜˜s D¨#¨tµT´W½t¼w¸hØ&Ð(:¸EÀ6ðKˆàKÐKÐKˆ	Øð 	Kð 	KˆAØð Kð K�Ø×'Ò'¨¨¨a°©¬°V°V¸A¸q±\´\°\ØDEÀAÀAÀqÀqÀqÐ,Ið (ñ Kô Kð Kð KðKð	Kð 	Kr   c                 ó  — t           }t          |¦  «        }ddt          d¦  «        t          d¦  «        t          d¦  «        fD ]:}dD ]5}|                       |||¦  «         |||¦  «        d|›d|›d	�¬
¦  «         Œ6Œ;d S )Nrš   r.  r™   rP  r›   )iüÿÿrª   r   r¬   rÊ   r„  r“   r”   ri  )ri   r   r£   rx   )r{   rˆ   r|   r   r†  s        r   Útest_ldexp_special_valuesz(TestFrexpLdexp.test_ldexp_special_valuesy  s³   € ÝˆÝ�V‘”ˆØ�t�U 5™\œ\­5°©=¬=½%À¹,¼,ÐGð 	Kð 	KˆAØ,ð Kð K�Ø×'Ò'¨¨¨a°©¬°V°V¸A¸q±\´\°\ØDEÀAÀAÀqÀqÀqÐ,Ið (ñ Kô Kð Kð KðKð	Kð 	Kr   c                 ó€  — t          t          ¦  «        }ddt          t           fD ]—}dD ]’}|                       |||¦  «        t	          j        t          d¦  «        |¦  «        d|›d|›d�¬¦  «         |                      t          ¦  «        5  t	          j        ||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ“Œ˜d S )	Nr×   r-  )i°  iÐ  é4  i5  rË   iÿÿÿr™   r„  r“   r”   ri  )	r   ri   rl  rx   r
   re   r£   ÚassertRaisesÚOverflowError©r{   r|   r   r†  s       r   Útest_ldexp_overflows_to_infz*TestFrexpLdexp.test_ldexp_overflows_to_inf�  s  € õ •U‘”ˆØ�t�W¥w hÐ/ð 	%ð 	%ˆAØBð %ð %�Ø×'Ò'¨¨¨a°©¬Ý(,¬µe¸E±l´lÀAÑ(FÔ(FÐ(FØDEÀAÀAÀqÀqÀqÐ,Ið (ñ Kô Kð Kð ×&Ò&¥}Ñ5Ô5ð %ð %Ý”J˜q !Ñ$Ô$Ð$ð%ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %øð	%ð	%ð 	%s   ÂB1Â1B5Â8B5c                 óò   — t          t          ¦  «        }ddt          t           t          t           fD ]C}dD ]>}|                       |||¦  «        t          j        d|¦  «        d|›d|›d�¬¦  «         Œ?ŒDd S )	Nr×   r-  )iPûÿÿi0øÿÿéÌ÷ÿÿiË÷ÿÿi`yþÿi   €rš   r„  r“   r”   ri  )r   ri   rj  rk  rx   r
   re   rŽ  s       r   Ú$test_ldexp_underflows_to_signed_zeroz3TestFrexpLdexp.test_ldexp_underflows_to_signed_zero�  s¥   € Ý•U‘”ˆØ�t�W¥w hµ½|¸mÐLð 	Kð 	KˆAØFð Kð K�Ø×'Ò'¨¨¨a°©¬µT´]À3ÈÑ5JÔ5JÐ5JØDEÀAÀAÀqÀqÀqÐ,Ið (ñ Kô Kð Kð KðKð	Kð 	Kr   c                 óŽ  — t          t          ¦  «        }|                       |t          d¦  «        t	          d¦  «        ¦  «         |                       |t           d¦  «        t	          d¦  «        ¦  «         |                       |t
          d¦  «        d¦  «         |                       |t
           d¦  «        d¦  «         d S )Nr‹  r™   rP  r‘  rš   r.  )r   ri   rx   rk  r£   rl  rz   s     r   Ú"test_ldexp_huge_exponent_saturatesz1TestFrexpLdexp.test_ldexp_huge_exponent_saturates”  s­   € õ •U‘”ˆØ×Ò  ¥l°DÑ 9Ô 9½5À¹<¼<ÑHÔHÐHØ×Ò  ¥| m°TÑ :Ô :½EÀ&¹M¼MÑJÔJÐJØ×Ò  ¥g¨uÑ 5Ô 5°sÑ;Ô;Ð;Ø×Ò  ¥w h°Ñ 6Ô 6¸Ñ=Ô=Ð=Ð=Ð=r   c                 óL  — t           }t          |¦  «        }ddddt          j        dddt          t
          t          dt          z  d	t          z  d
dt          d¦  «        t          d¦  «        t          d¦  «        g}|D ]&}|                       ||¦  «        |d|›�¬¦  «         Œ'd S )Nr×   r-  r8  rV  rf  rg  rh  rÀ   rÁ   rš   r.  r™   rP  r›   r�   ri  )	rn   r   r
   rr   rj  rl  rk  r£   rx   rm  s        r   Útest_ldexp_frexp_roundtripz)TestFrexpLdexp.test_ldexp_frexp_roundtrip�  s«   € å&ˆÝ�V‘”ˆØ˜˜s D­$¬'°5¸&À&Ý�W¥l°A½Ñ4DØ�Ñ% s¨DÝ˜%‘L”L¥%¨¡-¤-µ°u±´ð?ˆð ð 	Lð 	LˆAØ×#Ò# E E¨!¡H¤H¨a¨aÀqÀqÐ5JÐ#ÑKÔKÐKÐKð	Lð 	Lr   c           
      ó¾   — t          t          ¦  «        }g d¢}|D ]A\  }}|                       |||¦  «        t          j        ||¦  «        d|›d|›d�¬¦  «         ŒBd S )N©)g9ÙþGÕ¶ iÂýÿÿ)gØÒ°~4—iYþÿÿ)g8íÖÐÙ·ÅiÁþÿÿ)g^Y&_ç¤½.iäüÿÿ)gÌ2áFÛ>ièûÿÿr„  r“   r”   ri  )r   ri   rx   r
   )r{   r|   Úcasesr   r†  s        r   Ú2test_ldexp_subnormal_results_are_correctly_roundedzATestFrexpLdexp.test_ldexp_subnormal_results_are_correctly_rounded¨  s–   € õ
 •U‘”ˆð1ð 1ð 1ˆð
 ð 	Gð 	G‰DˆAˆqØ×#Ò# E E¨!¨Q¡K¤Kµ´¸A¸qÑ1AÔ1AÐ1AØ@AÀÀÀ1À1À1Ð(Eð $ñ Gô Gð Gð Gð	Gð 	Gr   c                 ó   — t          t          ¦  «        }dD ]v}dD ]q}t          j        |¦  «        }|                       |||¦  «        t          j        t          j        t          |¦  «        |¦  «        ¦  «        d|›d|›d�¬¦  «         ŒrŒwd S )N)r×   r-  r8  rV  r#  g@Œµx¯Dg#B’¡œÇ;)iØÿÿÿr  rª   r   r¬   rÈ   é(   r„  r“   r”   ri  )r   ri   r1   r‡   rx   r
   r£   )r{   r|   rt  r†  r   s        r   Útest_ldexp_float32z!TestFrexpLdexp.test_ldexp_float32·  s§   € Ý•U‘”ˆØ9ð 	7ð 	7ˆAØ1ð 7ð 7�Ý”J˜q‘M”M�Ø×'Ò'Ø�E˜!˜Q‘K”K¥¤­D¬Jµu¸Q±x´xÀÑ,CÔ,CÑ!DÔ!DÐ!DØ01°°°1°1°1Ð5ð (ñ 7ô 7ð 7ð 7ð7ð	7ð 	7r   c                 ó  — t           ddft           t          j        d¦  «        dft          ddft          t          j        d¦  «        dfg}|D �]>\  }}}t	          |¦  «        } ||t          j        d¦  «        ¦  «         d                     |                     ¦   «                              ¦   «         ¦  «        }t          j
        d|›d�|¦  «        }|                      |d|›d	|›�¬
¦  «         d„ |                     d¦  «                             d¦  «        D ¦   «         }|                      t          |¦  «        d|                     d¦  «        ¬
¦  «         |                      d|d         |                     d¦  «        ¬
¦  «         �Œ@d S )Nr8  Únumba_ldexpÚnumba_ldexpfrÀ   ú
zdeclare[^@\n]*@z\(([^)]*)\)zno z declaration for ri  c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rs   )Ústrip)rá   Úps     r   râ   zNTestFrexpLdexp.test_ldexp_declaration_has_signext_exponent.<locals>.<listcomp>×  s    € ÐCÐCÐC A�a—g’g‘i”iÐCÐCÐCr   r¬   ú,r«   r   Úsignext)ri   r1   r‡   rp   r   r�   ÚjoinÚinspect_llvmrS  ÚreÚsearchÚassertIsNotNoneÚgroupÚsplitrq  r1  ÚassertIn)	r{   r™  rˆ   r   Úsymbolr|   Úllvm_irÚmatchÚparamss	            r   Ú+test_ldexp_declaration_has_signext_exponentz:TestFrexpLdexp.test_ldexp_declaration_has_signext_exponentÀ  s�  € õ ˜˜mÐ,Ý�œ C™œ¨.Ð9Ý˜C Ð/Ý�BœJ s™OœO¨^Ð<ð>ˆð "'ð 	Dñ 	DÑˆF�A�vÝ˜‘L”LˆEØˆE�!•R”X˜a‘[”[Ñ!Ô!Ð!Ø—i’i × 2Ò 2Ñ 4Ô 4× ;Ò ;Ñ =Ô =Ñ>Ô>ˆGÝ”I�IØ39°6°6Ð;¸WñFô FˆEà× Ò Ø�Ø28°&°&¸&¸&ÐAð !ñ Cô Cð Cð DÐC¨¯ª°Q©¬×)=Ò)=¸cÑ)BÔ)BÐCÑCÔCˆFØ×Ò�S ™[œ[¨!°·²¸Q±´ÐÑ@Ô@Ð@Ø�MŠM˜) V¨A¤Y°E·K²KÀ±N´NˆMÑCÔCÐCÑCð	Dð 	Dr   c                 óà  — t          t          ¦  «        }ddddt          j        ddfD ]b}dD ]]}|                       ||t          j        |¦  «        ¦  «        t          t          j        ||¦  «        ¦  «        d|›d	|›d
�¬¦  «         Œ^ŒcdD ]`\  }}|                       ||t          j        |¦  «        ¦  «        t          t          j        ||¦  «        ¦  «        d|›d	|›d
�¬¦  «         Œad S )Nr×   r-  r8  rV  r{  r|  )	r}  r~  r  rª   r   r¬   rÈ   r�  rƒ  r„  r“   r”   ri  r˜  )	r   rp   r
   rr   rx   r1   r�   r£   ri   )r{   r|   rt  r†  s       r   Útest_np_ldexp_matches_numpyz*TestFrexpLdexp.test_np_ldexp_matches_numpyÛ  s7  € õ •X‘”ˆð �t˜S $­¬°¸Ð?ð 	Kð 	KˆAØ<ð Kð K�Ø×'Ò'¨¨¨aµ´¸!±´Ñ(=Ô(=Ý(-­b¬h°q¸!©n¬nÑ(=Ô(=Ð(=ØDEÀAÀAÀqÀqÀqÐ,Ið (ñ Kô Kð Kð KðKð5ð 	Gð 	G‰DˆAˆqð
 ×#Ò# E E¨!­R¬X°a©[¬[Ñ$9Ô$9Ý$)­"¬(°1°a©.¬.Ñ$9Ô$9Ð$9Ø@AÀÀÀ1À1À1Ð(Eð $ñ Gô Gð Gð Gð	Gð 	Gr   N)r[  r\  r]  rn  rr  ry  r‡  r‰  r�  r’  r”  r–  rš  r�  r³  rµ  rs   r   r   rd  rd  J  sñ   € € € € € ð
?ð 
?ð 
?ð;ð ;ð ;ðAð Að Að	Kð 	Kð 	KðKð Kð Kð
%ð 
%ð 
%ðKð Kð Kð>ð >ð >ð	Lð 	Lð 	LðGð Gð Gð7ð 7ð 7ðDð Dð Dð6Gð Gð Gð Gð Gr   rd  Ú__main__)DrH  r
   r©  r`  r^  r  Únumpyr1   Únumbar   r   Únumba.tests.supportr   Únumba.npr   Únumba.core.utilsr   r   r   r   r   r   r   r   r   r!   r#   r'   r*   r,   r/   r2   r4   r6   r8   r:   r<   r>   r@   rB   rD   rF   rH   rJ   rL   rN   rQ   rS   rV   rX   rZ   r\   r^   r`   rc   re   rg   ri   rn   rp   rk  rj  rl  rt   rv   rd  r[  Úmainrs   r   r   ú<module>r½     sÙ  ðØ Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€à Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "Ø &Ð &Ð &Ð &Ð &Ð &ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð  ð  ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð
ð ð ð
 €Ø
!€Ø
 €ðð ð ðDEð DEð DEð DEð DE�(ñ DEô DEð DEðNfGð fGð fGð fGð fG�Xñ fGô fGð fGðR ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   