§
    2@ÄjÈK  ã                   ó„  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	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%„ Z*d&„ Z+d'„ Z,d(„ Z-d)„ Z.d*„ Z/d+„ Z0d,„ Z1d-„ Z2d.„ Z3d/„ Z4d0„ Z5d1„ Z6d2„ Z7d3„ Z8d4„ Z9d5„ Z:d6„ Z;d7„ Z<d8„ Z=d9„ Z>d:„ Z?dS );é    N)Úir)ÚConstant)Úimpl_ret_untracked)ÚtypingÚtypesÚcgutilsc                 ó   — | j         rdgS g S )z;
    Return the modifier flags for integer arithmetic.
    Únsw)Úsigned)Úrettypes    úFC:\Projects\Historical\venv\Lib\site-packages\numba/np/math/numbers.pyÚ_int_arith_flagsr   	   s   € ð „~ð 
ð ˆwˆàˆ	ó    c                 ó  — |\  }}|j         \  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	t	          |j        ¦  «        ¬¦  «        }
t          | ||j        |
¦  «        S ©N)Úflags)ÚargsÚcastÚreturn_typeÚaddr   r   ©ÚcontextÚbuilderÚsigr   ÚvaÚvbÚtaÚtbÚaÚbÚress              r   Úint_add_implr"      ó€   € Ø�H€RˆØŒx�H€RˆØ�Š�W˜b " c¤oÑ6Ô6€AØ�Š�W˜b " c¤oÑ6Ô6€AØ
�+Š+�a˜Õ"2°3´?Ñ"CÔ"Cˆ+Ñ
DÔ
D€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó  — |\  }}|j         \  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	t	          |j        ¦  «        ¬¦  «        }
t          | ||j        |
¦  «        S r   )r   r   r   Úsubr   r   r   s              r   Úint_sub_implr&   #   r#   r   c                 ó  — |\  }}|j         \  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	t	          |j        ¦  «        ¬¦  «        }
t          | ||j        |
¦  «        S r   )r   r   r   Úmulr   r   r   s              r   Úint_mul_implr)   ,   r#   r   c                 ól   — t          |t          j        ¦  «        r| j        j        sd|j        dz
  z  S dS )Néÿÿÿÿé   F)Ú
isinstancer   ÚIntegerÚerror_modelÚraise_on_fp_zero_divisionÚbitwidth)r   r   s     r   Ú_get_power_zerodiv_returnr2   5   s>   € Ý�;¥¤Ñ.Ô.ð ØÔ#Ô=ðð �kÔ*¨QÑ.Ñ/Ð/àˆur   c                 óì   ‡‡‡— t          |j        d         t          j        ¦  «        Š|j        Št          | ‰¦  «        Šˆˆˆfd„}|                      ||||¦  «        }t          | ||j        |¦  «        S )z@
    a ^ b, where a is an integer or real, and b an integer
    r   c                 ó^  •—  ‰d¦  «        } ‰| ¦  «        } |dk     r<d}| }|dk     rt           ‚‰r'| dk    r‰r‰S t          d¦  «        ‚| dk    r| dk    rdS nd}|}|dk    r"t          j        | t	          |¦  «        ¦  «        S |dk    r|dz  r|| z  }|dz  }| | z  } |dk    °|rd|z  n|S )	Nr,   r   Tz&0 cannot be raised to a negative powerr+   Fi   g      ð?)ÚOverflowErrorÚZeroDivisionErrorÚmathÚpowÚfloat)r   r    ÚrÚinvertÚexpÚ
is_integerÚtpÚzerodiv_returns        €€€r   Ú	int_powerz!int_power_impl.<locals>.int_powerF   s  ø€ àˆBˆq‰EŒEˆØˆBˆq‰EŒEˆØˆqŠ5ˆ5ØˆFØ�"ˆCØ�QŠwˆwÝ#Ð#Øð Ø˜’6�6Ø%ð ZØ-Ð-å/Ð0XÑYÔYÐYØ˜’6�6˜a 2šg˜gØ˜1øàˆFØˆCØ�Š=ˆ=å”8˜A�u Q™xœxÑ(Ô(Ð(Ø�QŠhˆhØ�Q‰wð Ø�Q‘�Ø�A‰IˆCØ�‰FˆAð	 �QŠhˆhð !Ð'ˆs�Q‰wˆw aÐ'r   )r-   r   r   r.   r   r2   Úcompile_internalr   )	r   r   r   r   r@   r!   r=   r>   r?   s	         @@@r   Úint_power_implrB   >   sˆ   øøø€ õ ˜CœH QœK­¬Ñ7Ô7€JØ	Œ€BÝ.¨w¸Ñ;Ô;€Nð(ð (ð (ð (ð (ð (ð (ð> ×
"Ò
" 7¨I°s¸DÑ
AÔ
A€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nú<©Úicmp_signedr   r   ©r   r   r   r   r!   s        r   Úint_slt_implrI   i   ó2   € Ø
ˆ'Ô
˜cÐ
) DÐ
)Ð
)Ð
)€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nz<=rF   rH   s        r   Úint_sle_implrM   n   ó2   € Ø
ˆ'Ô
˜dÐ
* TÐ
*Ð
*Ð
*€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nú>rF   rH   s        r   Úint_sgt_implrR   s   rJ   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nz>=rF   rH   s        r   Úint_sge_implrU   x   rN   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rD   ©Úicmp_unsignedr   r   rH   s        r   Úint_ult_implrY   }   ó2   € Ø
ˆ'Ô
 Ð
+ dÐ
+Ð
+Ð
+€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rL   rW   rH   s        r   Úint_ule_implr\   ‚   ó2   € Ø
ˆ'Ô
 Ð
, tÐ
,Ð
,Ð
,€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rP   rW   rH   s        r   Úint_ugt_implr_   ‡   rZ   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rT   rW   rH   s        r   Úint_uge_implra   Œ   r]   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nú==rW   rH   s        r   Úint_eq_implre   ‘   r]   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S ©Nz!=rW   rH   s        r   Úint_ne_implrh   –   r]   r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó@  •— |\  }}|                      d|t          |j        d¦  «        ¦  «        }|                      ‰
|t          |j        d¦  «        ¦  «        }|                     ‰
||¦  «        }|                     |||¦  «        }	t          | ||j        |	¦  «        S ©NrE   r   ©rG   r   ÚtyperX   Úselectr   r   ©r   r   r   r   ÚleftÚrightÚcmp_zeroÚlt_zeroÚge_zeror!   Úops             €r   Úimplz%int_signed_unsigned_cmp.<locals>.implœ   s–   ø€ Ø‰ˆˆuð ×&Ò& s¨Dµ(¸4¼9ÀaÑ2HÔ2HÑIÔIˆØ×%Ò% b¨$µ¸¼ÀAÑ0FÔ0FÑGÔGˆØ×'Ò'¨¨D°%Ñ8Ô8ˆØ�nŠn˜X w°Ñ8Ô8ˆÝ! '¨7°C´OÀSÑIÔIÐIr   © ©ru   rv   s   ` r   Úint_signed_unsigned_cmpry   ›   s(   ø€ ðJð Jð Jð Jð Jð  €Kr   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó@  •— |\  }}|                      d|t          |j        d¦  «        ¦  «        }|                      ‰
t          |j        d¦  «        |¦  «        }|                     ‰
||¦  «        }|                     |||¦  «        }	t          | ||j        |	¦  «        S rk   rl   ro   s             €r   rv   z%int_unsigned_signed_cmp.<locals>.impl°   s”   ø€ Ø‰ˆˆuà×&Ò& s¨Eµ8¸E¼JÈÑ3JÔ3JÑKÔKˆØ×%Ò% b­(°5´:¸qÑ*AÔ*AÀ5ÑIÔIˆØ×'Ò'¨¨D°%Ñ8Ô8ˆØ�nŠn˜X w°Ñ8Ô8ˆÝ! '¨7°C´OÀSÑIÔIÐIr   rw   rx   s   ` r   Úint_unsigned_signed_cmpr|   ¯   s(   ø€ ðJð Jð Jð Jð Jð €Kr   c                 óè   — |\  }t          |j        d ¦  «        }|                     d||¦  «        }|                     |¦  «        }|                     |||¦  «        }t          | ||j        |¦  «        S rD   )r   rm   rG   Únegrn   r   r   )	r   r   r   r   ÚxÚZEROÚltzÚnegatedr!   s	            r   Úint_abs_implrƒ   »   sk   € Ø
�C€QÝ�A”F˜DÑ!Ô!€DØ
×
Ò
˜c 1 dÑ
+Ô
+€CØ�kŠk˜!‰nŒn€GØ
�.Š.˜˜g qÑ
)Ô
)€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó8   — |\  }t          | ||j        |¦  «        S ©N©r   r   ©r   r   r   r   r   s        r   Úidentity_implrˆ   Ä   ó   € Ø
�C€QÝ˜g w°´ÀÑCÔCÐCr   c                 ó8   — |\  }t          | ||j        |¦  «        S r…   r†   r‡   s        r   Úuint_abs_implr‹   É   r‰   r   c                 óî   — |j         \  }}|\  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }|                     ||¦  «        }t	          | ||j        |¦  «        S r…   )r   r   r   Úshlr   ©	r   r   r   r   ÚvaltyÚamttyÚvalÚamtr!   s	            r   Úint_shl_implr“   Î   sq   € Ø”X�N€UˆEØ�J€Sˆ#Ø
�,Š,�w  U¨C¬OÑ
<Ô
<€CØ
�,Š,�w  U¨C¬OÑ
<Ô
<€CØ
�+Š+�c˜3Ñ
Ô
€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó4  — |j         \  }}|\  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }|j        j        r|                     ||¦  «        }n|                     ||¦  «        }t          | ||j        |¦  «        S r…   )r   r   r   r   ÚashrÚlshrr   rŽ   s	            r   Úint_shr_implr—   ×   s“   € Ø”X�N€UˆEØ�J€Sˆ#Ø
�,Š,�w  U¨C¬OÑ
<Ô
<€CØ
�,Š,�w  U¨C¬OÑ
<Ô
<€CØ
„Ôð %Ø�lŠl˜3 Ñ$Ô$ˆˆà�lŠl˜3 Ñ$Ô$ˆÝ˜g w°´ÀÑEÔEÐEr   c                 óî   — |j         \  }}|\  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	¦  «        }
t	          | ||j        |
¦  «        S r…   )r   r   r   Úand_r   ©r   r   r   r   ÚatÚbtÚavÚbvÚcavÚcbcr!   s              r   Úint_and_implr¡   ã   sq   € ØŒx�H€RˆØ�H€RˆØ
�,Š,�w  B¨¬Ñ
8Ô
8€CØ
�,Š,�w  B¨¬Ñ
8Ô
8€CØ
�,Š,�s˜CÑ
 Ô
 €CÝ˜g w°´ÀÑEÔEÐEr   c                 óî   — |j         \  }}|\  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	¦  «        }
t	          | ||j        |
¦  «        S r…   )r   r   r   Úor_r   rš   s              r   Úint_or_implr¤   ì   óq   € ØŒx�H€RˆØ�H€RˆØ
�,Š,�w  B¨¬Ñ
8Ô
8€CØ
�,Š,�w  B¨¬Ñ
8Ô
8€CØ
�+Š+�c˜3Ñ
Ô
€CÝ˜g w°´ÀÑEÔEÐEr   c                 óî   — |j         \  }}|\  }}|                      ||||j        ¦  «        }|                      ||||j        ¦  «        }	|                     ||	¦  «        }
t	          | ||j        |
¦  «        S r…   )r   r   r   Úxorr   rš   s              r   Úint_xor_implr¨   õ   r¥   r   c                 ó®   — |j         \  }|\  }|                     |¦  «        }|                      ||||j        ¦  «        }t	          | ||j        |¦  «        S r…   )r   r~   r   r   r   ©r   r   r   r   Útypr‘   r!   s          r   Úint_negate_implr¬   þ   sR   € ØŒH�E€SØ�E€Sà
�+Š+�cÑ
Ô
€CØ
�,Š,�w  S¨#¬/Ñ
:Ô
:€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó„   — |j         \  }|\  }|                      ||||j        ¦  «        }t          | ||j        |¦  «        S r…   ©r   r   r   r   rª   s          r   Úint_positive_implr¯     óA   € ØŒH�E€SØ�E€SØ
�,Š,�w  S¨#¬/Ñ
:Ô
:€CÝ˜g w°´ÀÑEÔEÐEr   c           
      ó  — |j         \  }|\  }|                     |t          |j        t	          d|j        j        z  d¦  «        ¦  «        ¦  «        }|                      ||||j        ¦  «        }t          | ||j        |¦  «        S )NÚ1é   )	r   r§   r   rm   ÚintÚwidthr   r   r   rª   s          r   Úint_invert_implr¶     ss   € ØŒH�E€SØ�E€Sà
�+Š+�c�8 C¤H­c°#¸¼¼Ñ2FÈÑ.JÔ.JÑKÔKÑ
LÔ
L€CØ
�,Š,�w  S¨#¬/Ñ
:Ô
:€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó2  — |\  }t          |j        d¦  «        }t          |j        d¦  «        }t          |j        d¦  «        }|                     d||¦  «        }|                     d||¦  «        }	t	          j        ||j        ¦  «        }
|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d	¦  «        }|                     d
¦  «        }|                     |||¦  «         |                     |¦  «        5  | 	                    ||
¦  «         | 
                    |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        5  |                     |	||¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        5  | 	                    ||
¦  «         | 
                    |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        5  | 	                    ||
¦  «         | 
                    |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «         |                     |
¦  «        }t          | ||j        |¦  «        S )z
    np.sign(int)
    r,   r+   r   rd   rQ   z.zeroz.postestz.posz.negz.exitN)r   rm   rX   rG   r   Úalloca_onceÚappend_basic_blockÚcbranchÚ
goto_blockÚstoreÚbranchÚposition_at_endÚloadr   r   )r   r   r   r   r   ÚPOSÚNEGr€   rr   Úcmp_posÚpresultÚbb_zeroÚ
bb_postestÚbb_posÚbb_negÚbb_exitr!   s                    r   Úint_sign_implrÉ     sd  € ð �C€QÝ
�1”6˜1Ñ
Ô
€CÝ
�1”6˜2Ñ
Ô
€CÝ�A”F˜AÑÔ€Dà×$Ò$ T¨1¨dÑ3Ô3€HØ×!Ò! # q¨$Ñ/Ô/€GåÔ! '¨1¬6Ñ2Ô2€Gà×(Ò(¨Ñ1Ô1€GØ×+Ò+¨JÑ7Ô7€JØ×'Ò'¨Ñ/Ô/€FØ×'Ò'¨Ñ/Ô/€FØ×(Ò(¨Ñ1Ô1€Gà‡O‚O�H˜g zÑ2Ô2Ð2à	×	Ò	˜GÑ	$Ô	$ð  ð  Ø�Š�d˜GÑ$Ô$Ð$Ø�Š�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð 
×	Ò	˜JÑ	'Ô	'ð 1ð 1Ø�Š˜ ¨Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 
×	Ò	˜FÑ	#Ô	#ð  ð  Ø�Š�c˜7Ñ#Ô#Ð#Ø�Š�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð 
×	Ò	˜FÑ	#Ô	#ð  ð  Ø�Š�c˜7Ñ#Ô#Ð#Ø�Š�wÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð ×Ò˜GÑ$Ô$Ð$Ø
�,Š,�wÑ
Ô
€CÝ˜g w°´ÀÑEÔEÐEsH   Ä!,EÅEÅ EÅ9FÆF!Æ$F!Æ=,G5Ç5G9Ç<G9È,IÉIÉIc                 óD   —  |j         |Ž }t          | ||j        |¦  «        S r…   )Úfaddr   r   rH   s        r   Úreal_add_implrÌ   A  ó&   € Ø
ˆ'Œ,˜Ð
€CÝ˜g w°´ÀÑEÔEÐEr   c                 óD   —  |j         |Ž }t          | ||j        |¦  «        S r…   )Úfsubr   r   rH   s        r   Úreal_sub_implrÐ   F  rÍ   r   c                 óD   —  |j         |Ž }t          | ||j        |¦  «        S r…   )Úfmulr   r   rH   s        r   Úreal_mul_implrÓ   K  rÍ   r   c                 ó  — |\  }}|j         }| j        r-|                      t          j        |¦  «        } |||¦  «        }n4|                     d|j        g¦  «        }	|                     |	||f¦  «        }t          | ||j	        |¦  «        S )Nzllvm.pow)
ÚmoduleÚimplement_powi_as_math_callÚget_functionr7   r8   Údeclare_intrinsicrm   Úcallr   r   )
r   r   r   r   r   ÚyrÕ   Úimpr!   Úfns
             r   Úreal_power_implrÝ   P  s�   € Ø�D€A€qØŒ^€FØÔ*ð 'Ø×"Ò"¥4¤8¨SÑ1Ô1ˆØˆc�'˜4Ñ Ô ˆˆà×%Ò% j°1´6°(Ñ;Ô;ˆØ�lŠl˜2  1˜vÑ&Ô&ˆÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rD   ©Úfcmp_orderedr   r   rH   s        r   Úreal_lt_implrá   \  ó2   € Ø
ˆ'Ô
˜sÐ
* TÐ
*Ð
*Ð
*€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rL   rß   rH   s        r   Úreal_le_implrä   a  ó2   € Ø
ˆ'Ô
˜tÐ
+ dÐ
+Ð
+Ð
+€CÝ˜g w°´ÀÑEÔEÐEr   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rP   rß   rH   s        r   Úreal_gt_implrç   f  râ   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rT   rß   rH   s        r   Úreal_ge_implré   k  rå   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rc   rß   rH   s        r   Úreal_eq_implrë   p  rå   r   c                 óL   —  |j         dg|¢R Ž }t          | ||j        |¦  «        S rg   )Úfcmp_unorderedr   r   rH   s        r   Úreal_ne_implrî   u  s2   € Ø
 ˆ'Ô
  Ð
-¨Ð
-Ð
-Ð
-€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó–   — |j         \  }t          j        ||¦  «        }|                      t          j        |¦  «        } |||¦  «        S r…   )r   r   Ú	signaturer×   r7   Úfabs)r   r   r   r   Útyrv   s         r   Úreal_abs_implró   z  sF   € ØŒ8�D€RÝ
Ô
˜2˜rÑ
"Ô
"€CØ×Ò¥¤	¨3Ñ/Ô/€DØˆ4�˜ÑÔÐr   c                 ót   — ddl m} |                     ||d         ¦  «        }t          | ||j        |¦  «        S ©Nr   ©Úmathimpl)Únumba.cpythonr÷   Únegate_realr   r   )r   r   r   r   r÷   r!   s         r   Úreal_negate_implrú   �  sC   € Ø&Ð&Ð&Ð&Ð&Ð&Ø
×
Ò
˜w¨¨Q¬Ñ
0Ô
0€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó„   — |j         \  }|\  }|                      ||||j        ¦  «        }t          | ||j        |¦  «        S r…   r®   rª   s          r   Úreal_positive_implrü   ‡  r°   r   c           	      ó„  — |\  }t          |j        d¦  «        }t          |j        d¦  «        }t          |j        d¦  «        }t          j        ||j        ¦  «        }|                     d||¦  «        }	|                     d||¦  «        }
|                     |	¦  «        5 \  }}|5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   |5  |                     |
¦  «        5 \  }}|5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   |5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |                     |¦  «        }t          | ||j	        |¦  «        S )z
    np.sign(float)
    r,   r+   r   rQ   rE   N)
r   rm   r   r¸   rà   Úif_elser¼   r¿   r   r   )r   r   r   r   r   rÀ   rÁ   r€   rÃ   Úis_posÚis_negÚgt_zeroÚnot_gt_zerors   Únot_lt_zeror!   s                   r   Úreal_sign_implr  Ž  s%  € ð �C€QÝ
�1”6˜1Ñ
Ô
€CÝ
�1”6˜2Ñ
Ô
€CÝ�A”F˜AÑÔ€DåÔ! '¨1¬6Ñ2Ô2€Gà×!Ò! # q¨$Ñ/Ô/€FØ×!Ò! # q¨$Ñ/Ô/€Fà	�Š˜Ñ	 Ô	 ð 
.Ñ$: W¨kØð 	(ð 	(Ø�MŠM˜#˜wÑ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(àð 	.ð 	.Ø—’ Ñ(Ô(ð .Ñ,B¨W°kØð 0ð 0Ø—M’M # wÑ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0à ð .ð .ð —M’M ! WÑ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð
.ð 
.ð 
.ñ 
.ô 
.ð 
.ð 
.ð 
.ð 
.ð 
.ð 
.øøøð 
.ð 
.ð 
.ð 
.ð �,Š,�wÑ
Ô
€CÝ˜g w°´ÀÑEÔEÐEsÆ   Â!FÂ'C
Â>FÃ
C	ÃFÃC	ÃFÃE4Ã-EÃ3D	Ä
EÄDÄEÄDÄEÄ#E	Ä:EÅE
Å
EÅE
ÅEÅE4ÅE!Å!E4Å$E!Å%E4Å(FÅ4E8	Å8FÅ;E8	Å<FÆFÆFc                 óô   — ddl m} |                      ||j        d         |d         ¦  «        }|                     ||j        ¦  «        |_        |                     ¦   «         }t          | ||j        |¦  «        S rõ   )	rø   r÷   Úmake_complexr   rù   ÚimagÚ	_getvaluer   r   )r   r   r   r   r÷   Úzr!   s          r   Úcomplex_conjugate_implr
  ¬  sq   € Ø&Ð&Ð&Ð&Ð&Ð&Ø×Ò˜W c¤h¨q¤k°4¸´7Ñ;Ô;€AØ×!Ò! '¨1¬6Ñ2Ô2€A„FØ
�+Š+‰-Œ-€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó<   — t          | ||j        |d         ¦  «        S )Nr   r†   )r   r   r   r   s       r   Úreal_conjugate_implr  ´  s   € Ý˜g w°´ÀÀaÄÑIÔIÐIr   c           	      óÞ  — |\  }}|j         d         }|j        }|                      |||¬¦  «        }|                      |||¬¦  «        }	|                      ||¦  «        }
|j        }|                     ¦   «         }|	                     ¦   «         }|
                     ¦   «         }|                      |d¦  «        }|                      |d¦  «        }|                     d|	j        |¦  «        }|                     d|	j        |¦  «        }| 	                    ||¦  «        }| 
                    |¦  «        5 \  }}|5  t          | ||||f¦  «        }|                      |||¬¦  «        }|j        |
_        |j        |
_        d d d ¦  «         n# 1 swxY w Y   |5  t          j        dt          j        di|         }t          j        t          j        ¦   «         |j        gdz  ¦  «        }t'          j        |||¦  «        }|                     ||||f¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                     |¦  «        }t/          | ||j        |¦  «        S )Nr   ©Úvaluer³   rd   Únumba_cpowfÚ
numba_cpowé   )r   Úunderlying_floatÚmake_helperrÕ   Ú_getpointerÚget_constantrà   Úrealr  r™   rþ   Úcomplex_mul_implr   Ú	complex64Ú
complex128r   ÚFunctionTypeÚVoidTyperm   r   Úget_or_insert_functionrÙ   r¿   r   r   )r   r   r   r   ÚcaÚcbrò   Úftyr   r    ÚcrÕ   ÚpaÚpbÚpcÚTWOr€   Úb_real_is_twoÚb_imag_is_zeroÚb_is_twoÚthenÚ	otherwiser!   ÚcresÚ	func_nameÚfntyÚcpows                              r   Úcomplex_power_implr/  ¸  s  € Ø�H€RˆØ	Œ�!Œ€BØ
Ô
€CØ×Ò˜G R¨rÐÑ2Ô2€AØ×Ò˜G R¨rÐÑ2Ô2€AØ×Ò˜G RÑ(Ô(€AØŒ^€FØ	
�Š‰Œ€BØ	
�Š‰Œ€BØ	
�Š‰Œ€Bð ×
Ò
˜s AÑ
&Ô
&€CØ×Ò  QÑ'Ô'€Dà×(Ò(¨¨q¬v°sÑ;Ô;€MØ×)Ò)¨$°´¸Ñ=Ô=€NØ�|Š|˜M¨>Ñ:Ô:€Hà	�Š˜Ñ	"Ô	"ð -Ñ&7 t¨YØð 	ð 	å" 7¨G°S¸2¸r¸(ÑCÔCˆCØ×&Ò& w°¸#Ð&Ñ>Ô>ˆDØ”YˆAŒFØ”YˆAŒFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ð 	-ð 	-õ ” ÝÔ  ,ðð ôˆIõ ”?¥2¤;¡=¤=°2´7°)¸a±-Ñ@Ô@ˆDÝÔ1°&¸$À	ÑJÔJˆDØ�LŠL˜  B¨˜|Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð$ �,Š,�rÑ
Ô
€CÝ˜g w°´ÀÑEÔEÐEs\   Ä2H8Ä8AF	Å=H8Æ	F	ÆH8ÆF	ÆH8ÆA?H!ÈH8È!H%	È%H8È(H%	È)H8È8H<È?H<c                 ó¬  — |\  }}|j         d         }|                      |||¬¦  «        }|                      |||¬¦  «        }|                      ||¦  «        }	|j        }
|j        }|j        }|j        }|                     |
|¦  «        |	_        |                     ||¦  «        |	_        |	                     ¦   «         }t          | ||j        |¦  «        S ©Nr   r  )r   r  r  r  rË   r  r   r   ©r   r   r   r   ÚcxÚcyrò   r   rÚ   r	  r   r    r!  Údr!   s                  r   Úcomplex_add_implr6  â  óÈ   € Ø�H€RˆØ	Œ�!Œ€BØ×Ò˜W b°ÐÑ3Ô3€AØ×Ò˜W b°ÐÑ3Ô3€AØ×Ò˜W bÑ)Ô)€AØ	Œ€AØ	Œ€AØ	Œ€AØ	Œ€AØ�\Š\˜!˜QÑÔ€A„FØ�\Š\˜!˜QÑÔ€A„FØ
�+Š+‰-Œ-€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó¬  — |\  }}|j         d         }|                      |||¬¦  «        }|                      |||¬¦  «        }|                      ||¦  «        }	|j        }
|j        }|j        }|j        }|                     |
|¦  «        |	_        |                     ||¦  «        |	_        |	                     ¦   «         }t          | ||j        |¦  «        S r1  )r   r  r  r  rÏ   r  r   r   r2  s                  r   Úcomplex_sub_implr9  ò  r7  r   c                 ó\  — |\  }}|j         d         }|                      |||¬¦  «        }|                      |||¬¦  «        }|                      ||¦  «        }	|j        }
|j        }|j        }|j        }|                     |
|¦  «        }|                     ||¦  «        }|                     |
|¦  «        }|                     ||¦  «        }|                     ||¦  «        |	_        |                     ||¦  «        |	_        |	                     ¦   «         }t          | ||j	        |¦  «        S )z'
    (a+bi)(c+di)=(ac-bd)+i(ad+bc)
    r   r  )
r   r  r  r  rÒ   rÏ   rË   r  r   r   )r   r   r   r   r3  r4  rò   r   rÚ   r	  r   r    r!  r5  ÚacÚbdÚadÚbcr!   s                      r   r  r    s  € ð �H€RˆØ	Œ�!Œ€BØ×Ò˜W b°ÐÑ3Ô3€AØ×Ò˜W b°ÐÑ3Ô3€AØ×Ò˜W bÑ)Ô)€AØ	Œ€AØ	Œ€AØ	Œ€AØ	Œ€AØ	�Š�a˜Ñ	Ô	€BØ	�Š�a˜Ñ	Ô	€BØ	�Š�a˜Ñ	Ô	€BØ	�Š�a˜Ñ	Ô	€BØ�\Š\˜"˜bÑ!Ô!€A„FØ�\Š\˜"˜bÑ!Ô!€A„FØ
�+Š+‰-Œ-€CÝ˜g w°´ÀÑEÔEÐEr   c                 óZ  — ddl m} |j        \  }|\  }|                      |||¬¦  «        }|                      ||¦  «        }|                     ||j        ¦  «        |_        |                     ||j        ¦  «        |_        |                     ¦   «         }t          | ||j	        |¦  «        S )Nr   rö   r  )
rø   r÷   r   r  rù   r  r  r  r   r   )	r   r   r   r   r÷   r«   r‘   Úcmplxr!   s	            r   Úcomplex_negate_implrA    s¨   € Ø&Ð&Ð&Ð&Ð&Ð&ØŒH�E€SØ�E€SØ× Ò  ¨#°SÐ Ñ9Ô9€EØ
×
Ò
˜w¨Ñ
,Ô
,€CØ×#Ò# G¨U¬ZÑ8Ô8€C„HØ×#Ò# G¨U¬ZÑ8Ô8€C„HØ
�-Š-‰/Œ/€CÝ˜g w°´ÀÑEÔEÐEr   c                 ó8   — |\  }t          | ||j        |¦  «        S r…   r†   )r   r   r   r   r‘   s        r   Úcomplex_positive_implrC  %  s   € Ø�E€SÝ˜g w°´ÀÑEÔEÐEr   c                 óf   — d„ }|                       ||||¦  «        }t          | ||j        |¦  «        S )z)
    abs(z) := hypot(z.real, z.imag)
    c                 ó@   — t          j        | j        | j        ¦  «        S r…   )r7   Úhypotr  r  )r	  s    r   Úcomplex_absz%complex_abs_impl.<locals>.complex_abs.  s   € ÝŒz˜!œ& !¤&Ñ)Ô)Ð)r   )rA   r   r   )r   r   r   r   rG  r!   s         r   Úcomplex_abs_implrH  *  sB   € ð*ð *ð *ð ×
"Ò
" 7¨K¸¸dÑ
CÔ
C€CÝ˜g w°´ÀÑEÔEÐEr   )@r7   Úllvmliter   Úllvmlite.irr   Únumba.core.imputilsr   Ú
numba.corer   r   r   r   r"   r&   r)   r2   rB   rI   rM   rR   rU   rY   r\   r_   ra   re   rh   ry   r|   rƒ   rˆ   r‹   r“   r—   r¡   r¤   r¨   r¬   r¯   r¶   rÉ   rÌ   rÐ   rÓ   rÝ   rá   rä   rç   ré   rë   rî   ró   rú   rü   r  r
  r  r/  r6  r9  r  rA  rC  rH  rw   r   r   ú<module>rM     s  ðØ €€€à Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -ðð ð ð"Fð Fð FðFð Fð FðFð Fð Fðð ð ð(Fð (Fð (FðVFð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
ð ð ð(	ð 	ð 	ðFð Fð FðDð Dð Dð
Dð Dð Dð
Fð Fð Fð	Fð 	Fð 	FðFð Fð FðFð Fð FðFð Fð FðFð Fð FðFð Fð FðFð Fð Fð'Fð 'Fð 'FðTFð Fð Fð
Fð Fð Fð
Fð Fð Fð
	Fð 	Fð 	FðFð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
Fð Fð Fð
ð ð ðFð Fð FðFð Fð FðFð Fð Fð<Fð Fð FðJð Jð Jð'Fð 'Fð 'FðTFð Fð Fð Fð Fð Fð Fð Fð Fð.	Fð 	Fð 	FðFð Fð Fð
Fð Fð Fð Fð Fr   