Ë
    üÇ:j-ö  ã                   ó(  — d Z ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZmZ dd	lmZ d
ZdZdZdŒd„Zej<                  Zefd„Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'e&Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z. e/e.eej`                  ejb                  «       d„ Z2d„ Z3d „ Z4 ee4d!¬"«      d#„ «       Z5 e/e3d$e4ejl                  «       d%„ Z7d&„ Z8d'„ Z9d(„ Z:d)„ Z;d*„ Z<d+„ Z=d,„ Z>d-„ Z?d.„ Z@d/„ ZAd0„ ZBd1„ ZCd2„ ZDd3„ ZEd4„ ZFd5„ ZGd6„ ZHd7„ ZId8„ ZJd9„ ZKd:„ ZLd;„ ZMd<„ ZNd=„ ZOd>„ ZPd?„ ZQd@„ ZRdA„ ZSdB„ ZTdC„ ZUdD„ ZVdE„ ZWdF„ ZXdG„ ZYdH„ ZZdI„ Z[dJ„ Z\dK„ Z]dL„ Z^dM„ Z_dN„ Z`dO„ ZadP„ ZbdQ„ ZcdR„ ZddS„ ZedT„ ZfdU„ ZgdV„ ZhdW„ ZidX„ ZjdY„ ZkdZ„ Zld[„ Zmd\„ Znd]„ Zod^„ Zpd_„ Zqd`„ Zrda„ Zsdb„ Ztdc„ Zudd„ Zvde„ Zwdf„ Zxdg„ Zydh„ Zzdi„ Z{dj„ Z|dk„ Z}dl„ Z~dm„ Zdn„ Z€do„ Z�dp„ Z‚dq„ Zƒdr„ Z„ds„ Z…dt„ Z†du„ Z‡dv„ Zˆdw„ Z‰dx„ ZŠdy„ Z‹dz„ 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�y)�zŽCodegen for functions used as kernels in NumPy functions

Typically, the kernels of several ufuncs that can't map directly to
Python builtins
é    N©Úoverload)Úimpl_ret_untracked)ÚtypingÚtypesÚerrorsÚloweringÚcgutilsÚconfig)Úregister_jitable)Ú
npdatetime)Ú	cmathimplÚmathimplÚnumbers)Únumpy_versiongþ‚+eG÷?gå&{ËÛ?gï9úþB.æ?c                 óp  ‡— t        |«      |k(  sJ ‚t        | j                  «      |k(  sJ ‚| j                  d   Š|€‰}t        ˆfd„| j                  D «       «      r| j                  |k(  sKddl}|j                  «       j                  j                  j                  }dj                  || «      }J |«       ‚y)zëchecks that the following are true:
    - args and sig.args have arg_count elements
    - all input types are homogeneous
    - return type is 'return_type' if provided, otherwise it must be
      homogeneous with the input types.
    r   Nc              3   ó(   •K  — | ]	  }|‰k(  –— Œ y ­w©N© )Ú.0ÚargÚtys     €úf/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/np/npyfuncs.pyú	<genexpr>z/_check_arity_and_homogeneity.<locals>.<genexpr>*   s   øè ø€ Ò,˜C��R•Ñ,ùs   ƒz"{0} called with invalid types: {1})
ÚlenÚargsÚallÚreturn_typeÚinspectÚcurrentframeÚf_backÚf_codeÚco_nameÚformat)Úsigr   Úarityr   r   ÚfnameÚmsgr   s          @r   Ú_check_arity_and_homogeneityr)      s§   ø€ ô ˆt‹9˜ÒÐÐÜˆs�x‰x‹=˜EÒ!Ð!Ð!Ø	�‰�!‰€BØÐØˆäÓ, 3§8¡8Ô,Ô,°·±ÀKÒ1OÛØ×$Ñ$Ó&×-Ñ-×4Ñ4×<Ñ<ˆØ2×9Ñ9¸%ÀÓEˆØ�cÓˆuð	 2Pó    c           
      óÖ  — |j                   }| j                  |«      }t        j                  j	                  ||gt        |j                  «      z  «      }t        j                  |||¬«      }	t        ||j                  «      D �
�cg c]  \  }
}| j                  ||
||«      ‘Œ }}
}|j                  |	|«      }| j                  ||t        j                  |j                  «      S c c}}
w )N©Úname)ÚmoduleÚget_argument_typeÚllvmliteÚirÚFunctionTyper   r   r
   Úinsert_pure_functionÚzipÚcastÚcallr   Úfloat64r   )ÚcontextÚbuilderr%   r   Ú	func_namer   ÚmodÚltyÚfntyÚfnr   ÚargtyÚ	cast_argsÚresults                 r   Ú_call_func_by_name_with_castrB   2   sÅ   € ð
 �.‰.€CØ
×
#Ñ
# BÓ
'€CÜ�;‰;×#Ñ# C¨#¨¬s°3·8±8«}Ñ)<Ó=€DÜ	×	%Ñ	% c¨4°iÔ	@€Bä#& t¨S¯X©XÓ#6÷9Ù�S˜%ð —‘˜g s¨E°2Õ6ð 9€Iñ 9ð �\‰\˜"˜iÓ(€FØ�<‰<˜ ¬¯©¸¿¹ÓHÐHùó	9s   ÂC%c                 óR  — |j                   d   }	 ||   }|j                  }
|t        j                  v �r	| j                  ||«      }|D �cg c]  }t        j                  ||«      ‘Œ }}|j                  «       g|z   }|gt        |j                   «      z   }|D �cg c]!  }| j                  |«      j                  «       ‘Œ# }}t         j"                  j%                  t         j"                  j'                  «       |«      }t        j(                  |
||«      }|j+                  ||«       |j-                  |d   «      }|S |j                   D �cg c]  }| j/                  |«      ‘Œ }}| j/                  |j0                  «      }t         j"                  j%                  ||«      }t        j2                  |
||¬«      }| j5                  |||j                   |«      }|S # t        $ r5}dj                  |t        |«      «      }	t	        j
                  |	«      ‚d }~ww xY wc c}w c c}w c c}w )Nr   z!No {0} function for real type {1}r,   )r   ÚKeyErrorr$   Ústrr   ÚLoweringErrorr.   r   Úcomplex_domainÚmake_complexr
   Úalloca_once_valueÚ_getpointerÚlistÚget_value_typeÚ
as_pointerr0   r1   r2   ÚVoidTypeÚget_or_insert_functionr6   Úloadr/   r   r3   Úcall_external_function)r8   r9   r%   r   ÚtableÚ	user_namer   r:   Úer(   r;   Úoutr   ÚptrargsÚ	call_argsÚcall_argtysÚcall_argltysr=   r>   ÚretvalÚatyÚargtypesÚrestypes                          r   Ú_dispatch_func_by_name_typer^   B   sú  € ð 
�‰�!‰€Bð(Ø˜"‘Iˆ	ð
 �.‰.€CØ	ŒU×!Ñ!Ò!ð ×"Ñ" 7¨BÓ/ˆà"ö$Øô ×,Ñ,¨W°cÕ:ð $ˆð $à—_‘_Ó&Ð'¨'Ñ1ˆ	ð
 �dœT #§(¡(›^Ñ+ˆà"-ö/Øð  ×.Ñ.¨rÓ2×=Ñ=Õ?ð /ˆð /ä�{‰{×'Ñ'¬¯©×(<Ñ(<Ó(>ÀÓMˆä×+Ñ+¨C°°yÓAˆØ�‰�R˜Ô#Ø—‘˜i¨™lÓ+ˆð €Mð ?B¿h¹hÖG°s�G×-Ñ-¨cÕ2ÐGˆÐGØ×+Ñ+¨C¯O©OÓ<ˆÜ�{‰{×'Ñ'¨°Ó:ˆÜ×)Ñ)¨#¨t¸)ÔDˆØ×/Ñ/°¸¸S¿X¹XÀtÓLˆØ€MøôE ò (Ø1×8Ñ8¸ÄCÈÃFÓKˆÜ×"Ñ" 3Ó'Ð'ûð(üò$ùò/ùò Hs)   ‘G ÁHÂ&HÅH$Ç	HÇ"0HÈHc                 óP  — t        ||d«       |\  }}|j                  d   }| j                  |d«      }| j                  |d«      }| j                  |d|j                  j                  dz
  z  «      }	|j                  d||«      }
|j                  d||«      }|j                  d|	|«      }|j                  ||«      }|j                  |
|«      }|j                  |d¬«      5 \  }}|5  |j                  }d d d «       |5  |j                  }|j                  ||«      }|j                  ||«      }|j                  d||«      }|j                  d||«      }|j                  ||«      }|j                  d	||«      }|j                  ||«      }|j                  |||«      }|j                  ||«      }d d d «       d d d «       |j!                  |j                  «      }|j#                  |«       |j#                  «       |S # 1 sw Y   �ŒxY w# 1 sw Y   Œ_xY w# 1 sw Y   ŒcxY w)
Né   r   éÿÿÿÿé   ú==F©Úlikelyú>ú!=)r)   r   Úget_constantÚtypeÚwidthÚicmp_unsignedÚand_Úor_Úif_elseÚbasic_blockÚsdivÚsremÚicmp_signedÚxorÚselectÚaddÚphiÚadd_incoming)r8   r9   r%   r   ÚnumÚdenr   ÚZEROÚ	MINUS_ONEÚMIN_INTÚden_is_zeroÚden_is_minus_oneÚnum_is_min_intÚcould_cause_sigfpeÚ
force_zeroÚthenÚ	otherwiseÚbb_thenÚbb_otherwiseÚdivr;   Únum_gt_zeroÚden_gt_zeroÚnot_same_signÚmod_not_zeroÚneeds_fixingÚ	fix_valueÚresult_otherwiserA   s                                r   Únp_int_sdiv_implrŽ   €   s  € ä   d¨AÔ.à�H€CˆØ	�‰�!‰€Bà×Ñ  AÓ&€DØ×$Ñ$ R¨Ó,€IØ×"Ñ" 2 q¨S¯X©X¯^©^¸AÑ-=Ñ'>Ó?€GØ×'Ñ'¨¨d°CÓ8€KØ×,Ñ,¨T°9¸cÓBÐØ×*Ñ*¨4°¸#Ó>€NØ Ÿ™Ð&6¸ÓGÐØ—‘˜[Ð*<Ó=€JØ	�‰˜¨EˆÓ	2ð ;Ñ6G°t¸YØñ 	*Ø×)Ñ)ˆG÷	*àñ 
	;Ø"×.Ñ.ˆLØ—,‘,˜s CÓ(ˆCØ—,‘,˜s CÓ(ˆCØ!×-Ñ-¨c°3¸Ó=ˆKØ!×-Ñ-¨c°3¸Ó=ˆKØ#ŸK™K¨°[ÓAˆMØ"×0Ñ0°°s¸DÓAˆLØ"Ÿ<™<¨°|ÓDˆLØŸ™ |°YÀÓEˆIØ&Ÿ{™{¨3°	Ó:Ð÷
	;÷;ð �[‰[˜Ÿ™Ó#€FØ
×Ñ˜˜gÔ&Ø
×ÑÐ(¨,Ô7à€M÷%	*ñ 	*ú÷
	;ð 
	;ú÷;ð ;ús=   Ã"HÃ(HÃ5
HÃ?B3HÆ2HÈH	ÈHÈH	ÈHÈH%c                 ó¾  — t        ||d«       |\  }}|j                  d   }| j                  |d«      }|j                  d||«      }|j                  }	t        j                  ||«      5  |j                  }
|j                  ||«      }|j                  d||«      }|j                  d||«      }|j                  ||«      }|j                  d||«      }|j                  ||«      }|j                  |||«      }|j                  ||«      }d d d «       |j                  |j                  «      }|j                  ||	«       |j                  
«       |S # 1 sw Y   ŒJxY w)Nr`   r   rg   rf   )r)   r   rh   rk   ro   r
   Úif_unlikelyrq   rr   rs   rl   rt   ru   rv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   Úden_not_zeroÚbb_no_ifÚbb_ifr;   r‡   rˆ   r‰   rŠ   r‹   rŒ   Ú	final_modrA   s                       r   Únp_int_srem_implr•   ¥   sL  € ä   d¨AÔ.à�H€CˆØ	�‰�!‰€Bà×Ñ  AÓ&€DØ×(Ñ(¨¨t°SÓ9€LØ×"Ñ"€HÜ	×	Ñ	˜W lÓ	3ñ 	0Ø×#Ñ#ˆØ�l‰l˜3˜sÓ#ˆØ×)Ñ)¨#¨s°DÓ9ˆØ×)Ñ)¨#¨s°DÓ9ˆØŸ™ K°Ó=ˆØ×,Ñ,¨T°3¸Ó=ˆØ—|‘| M°<Ó@ˆØ—N‘N <°°dÓ;ˆ	Ø—K‘K 	¨3Ó/ˆ	÷	0ð �[‰[˜Ÿ™Ó#€FØ
×Ñ˜˜hÔ'Ø
×Ñ˜	 5Ô)à€M÷	0ð 	0ús   Á)B!EÅEc                 óà   — t        | | |j                  d   |j                  Ž |«      }t        | | |j                  d   |j                  Ž |«      }| j	                  ||j                  ||g«      S ©Nr   rb   )rŽ   r   r   r•   Ú
make_tuple©r8   r9   r%   r   r†   Úrems         r   Únp_int_sdivrem_implr›   Á   ói   € Ü
˜7 GÐ-?¨S¯_©_¸QÑ-?ÀÇÁÐ-JÈDÓ
Q€CÜ
˜7 GÐ-?¨S¯_©_¸QÑ-?ÀÇÁÐ-JÈDÓ
Q€CØ×Ñ˜g s§¡¸¸c¸
ÓCÐCr*   c                 ó  — t        ||d«       |\  }}|j                  d   }| j                  |d«      }|j                  d||«      }|j	                  |d¬«      5 \  }	}
|	5  |j
                  }d d d «       |
5  |j                  ||«      }|j
                  }d d d «       d d d «       |j                  |j                  «      }|j                  |«       |j                  «       |S # 1 sw Y   Œ{xY w# 1 sw Y   Œ^xY w# 1 sw Y   ŒbxY w)Nr`   r   rc   Frd   )
r)   r   rh   rk   rn   ro   Úudivrv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   Údiv_by_zeror‚   rƒ   r„   r†   r…   rA   s                  r   Únp_int_udiv_implr    Ç   s  € Ü   d¨AÔ.à�H€CˆØ	�‰�!‰€Bà×Ñ  AÓ&€DØ×'Ñ'¨¨d°CÓ8€KØ	�‰˜¨UˆÓ	3ð /Ñ7H¸¸iØñ 	*à×)Ñ)ˆG÷	*ð ñ 	/à—,‘,˜s CÓ(ˆCØ"×.Ñ.ˆL÷	/÷	/ð �[‰[˜Ÿ™Ó#€FØ
×Ñ˜˜gÔ&Ø
×Ñ˜˜\Ô*Ø€M÷	*ð 	*ú÷	/ð 	/ú÷	/ð /ús<   ÁC?Á C'Á-
C?Á7C3ÂC?Ã'C0	Ã,C?Ã3C<	Ã8C?Ã?Dc                 óº  — t        ||d«       |\  }}|j                  d   }| j                  |d«      }|j                  d||«      }|j                  }	t        j                  ||«      5  |j                  }
|j                  ||«      }d d d «       |j                  |j                  «      }|j                  ||	«       |j                  
«       |S # 1 sw Y   ŒJxY w)Nr`   r   rg   )r)   r   rh   rk   ro   r
   r�   Úuremrv   ri   rw   )r8   r9   r%   r   rx   ry   r   rz   r‘   r’   r“   r;   rA   s                r   Únp_int_urem_implr£   Þ   sÎ   € ä   d¨AÔ.à�H€CˆØ	�‰�!‰€Bà×Ñ  AÓ&€DØ×(Ñ(¨¨t°SÓ9€LØ×"Ñ"€HÜ	×	Ñ	˜W lÓ	3ñ $Ø×#Ñ#ˆØ�l‰l˜3˜sÓ#ˆ÷$ð �[‰[˜Ÿ™Ó#€FØ
×Ñ˜˜hÔ'Ø
×Ñ˜˜UÔ#à€M÷$ð $ús   Á)CÃCc                 óà   — t        | | |j                  d   |j                  Ž |«      }t        | | |j                  d   |j                  Ž |«      }| j	                  ||j                  ||g«      S r—   )r    r   r   r£   r˜   r™   s         r   Únp_int_udivrem_implr¥   ó   rœ   r*   c                 ó:   — t        ||d«        |j                  |Ž S ©Nr`   )r)   Úfdiv©r8   r9   r%   r   s       r   Únp_real_div_implrª   þ   s!   € ô !  d¨AÔ.Øˆ7�<‰<˜ÐÐr*   c                 óŒ  — t        ||d«       |\  }}|j                  d   }| j                  |d«      }|j                  ||«      }|j	                  d||«      }	|j	                  d||«      }
|j	                  d||«      }|j                  |	|j                  |
|«      «      }|j                  |||«      }|j                  ||«      S )Nr`   r   ç        rg   ú<)	r)   r   rh   ÚfremÚfcmp_orderedrl   rs   rt   Úfadd)r8   r9   r%   r   Úin1Úin2r   rz   ÚresÚres_ne_zeroÚden_lt_zeroÚres_lt_zeror‹   rŒ   s                 r   Únp_real_mod_implr·     sÆ   € ô !  d¨AÔ.Ø�H€CˆØ	�‰�!‰€Bà×Ñ  CÓ(€DØ
�,‰,�s˜CÓ
 €CØ×&Ñ& t¨S°$Ó7€KØ×&Ñ& s¨C°Ó6€KØ×&Ñ& s¨C°Ó6€KØ—<‘< Ø '§¡¨K¸Ó EóG€Là—‘˜|¨S°$Ó7€Ià�<‰<˜˜YÓ'Ð'r*   c                 ó:   — t        ||d«        |j                  |Ž S r§   )r)   r®   r©   s       r   Únp_real_fmod_implr¹     s   € Ü   d¨AÔ.Øˆ7�<‰<˜ÐÐr*   c                 óÆ   — t         j                  j                  |j                  d«      }|j	                  ||«      }|j                  d||«      }|j                  |||«      S )Nr¬   r­   )r0   r1   ÚConstantri   Úfsubr¯   rt   )r8   r9   r   rz   Úarg_negatedÚarg_is_negatives         r   Ú_fabsr¿     sS   € Ü�;‰;×Ñ §¡¨#Ó.€DØ—,‘,˜t SÓ)€KØ×*Ñ*¨3°°TÓ:€OØ�>‰>˜/¨;¸Ó<Ð<r*   c           	      óÌ  — |D �cg c]#  }| j                  ||j                  d   |¬«      ‘Œ% c}\  }}|j                  }|j                  }|j                  }	|j                  }
|j                  }t        |||	|
fD �cg c]  }|j                  |k(  ‘Œ c}«      sJ d«       ‚| j                  ||j                  «      }t        j                  j                  |d«      }t        j                  j                  |d«      }t        | ||	«      }t        | ||
«      }|j                  d||«      }|j                  |«      5 \  }}|5  |j                  d||«      }|j                  d||«      }|j                  ||«      }|j                  |«      5 \  }}|5  |j                  ||«      |_        |j                  ||«      |_        d d d «       |5  |j                  |
|	«      }|j!                  |
|«      }|j#                  |	|«      }|j                  ||«      }|j!                  ||«      }|j!                  ||«      }|j#                  ||«      } |j%                  ||«      }!|j!                  | |«      |_        |j!                  |!|«      |_        d d d «       d d d «       d d d «       |5  |j                  |	|
«      }|j!                  |	|«      }|j#                  |
|«      }|j                  ||«      }|j!                  ||«      }|j!                  ||«      }|j#                  ||«      } |j%                  ||«      }!|j!                  | |«      |_        |j!                  |!|«      |_        d d d «       d d d «       |j'                  «       S c c}w c c}w # 1 sw Y   �ŒÎxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ_xY w# 1 sw Y   |j'                  «       S xY w)Nr   ©Úvalueúmismatched typesr¬   ç      ð?ú>=rc   )rH   r   ÚrealÚimagri   r   Úmake_helperr   r0   r1   r»   r¿   r¯   rn   rl   r¨   Úfmulr°   r¼   Ú	_getvalue)"r8   r9   r%   r   r   r±   r²   Úin1rÚin1iÚin2rÚin2iÚftypeÚirU   rz   ÚONEÚin2r_absÚin2i_absÚin2r_abs_ge_in2i_absr‚   rƒ   Úin2r_is_zeroÚin2i_is_zeroÚin2_is_zeroÚinn_thenÚinn_otherwiseÚratÚtmp1Útmp2ÚsclÚtmp3Útmp4Útmp5Útmp6s"                                     r   Únp_complex_div_implrâ   $  s–  € ð  ö!Øð ×$Ñ$ W¨c¯h©h°q©kÀÐ$ÕEò !�H€Cˆð �8‰8€DØ�8‰8€DØ�8‰8€DØ�8‰8€DØ�I‰I€EÜ¨¨d°D¸$Ð'?Ö@ !�—‘˜“Ò@ÔAÐUÐCUÓUÐAØ
×
Ñ
˜g s§¡Ó
7€Cä�;‰;×Ñ  sÓ+€DÜ
�+‰+×
Ñ
˜u cÓ
*€Cô �W˜g tÓ,€HÜ�W˜g tÓ,€HØ"×/Ñ/°°hÀÓIÐØ	�‰Ð-Ó	.ð +/Ñ2C°4¸Øñ 	7à"×/Ñ/°°hÀÓEˆLØ"×/Ñ/°°hÀÓEˆLØ!Ÿ,™, |°\ÓBˆKØ—‘ Ó-ð 7Ñ1J°(¸MØñ <ð  'Ÿ|™|¨D°(Ó;�C”HØ&Ÿ|™|¨D°(Ó;�C”H÷	<ð
 #ñ 7ð "Ÿ,™, t¨TÓ2�Cà"Ÿ<™<¨¨cÓ2�DØ"Ÿ<™<¨¨dÓ3�DØ!Ÿ,™, s¨DÓ1�Cð #Ÿ<™<¨¨cÓ2�DØ"Ÿ<™<¨¨cÓ2�DØ"Ÿ<™<¨¨dÓ3�DØ"Ÿ<™<¨¨dÓ3�DØ&Ÿ|™|¨D°#Ó6�C”HØ&Ÿ|™|¨D°#Ó6�C”H÷7÷7÷	7ð6 ñ 	/ð —,‘,˜t TÓ*ˆCà—<‘<  cÓ*ˆDØ—<‘<  dÓ+ˆDØ—,‘,˜s DÓ)ˆCð —<‘<  cÓ*ˆDØ—<‘<  cÓ*ˆDØ—<‘<  dÓ+ˆDØ—<‘<  dÓ+ˆDØ—|‘| D¨#Ó.ˆCŒHØ—|‘| D¨#Ó.ˆCŒH÷	/÷9+/ðZ �=‰=‹?Ðùò!ùò A÷"<ñ <ú÷
7ñ 7ú÷7ñ 7ú÷	7ñ 	7ú÷6	/ð 	/ú÷9+/ðZ �=‰=‹?Ðús’   …(NÁ<NÄ:OÅ A
N2Æ
N%Æ/N	Æ?
N%Ç	B?N	ÊN%ÊN2Ê
OÊ"B?N?Í!OÎNÎN%ÎN"ÎN%Î%N/Î*N2Î2N<	Î7OÎ?O	ÏOÏO#c                  ó   — y r   r   ©Úx1Úx2s     r   Ú_npy_logaddexprç   q  ó   € Ør*   c                 ó8   ‡‡‡— t        | d¬«      ˆˆˆfd„«       }y )NÚgeneric©Útargetc                 ó4   •‡— | |k7  ry  | ‰«      Šˆˆˆfd„}|S )Nc                 óˆ   •— | |}}||k(  r|‰z   S ||z
  }|dkD  r| ‰ ‰| «      «      z   S |dk  r| ‰ ‰|«      «      z   S |S )Nr   r   )rå   ræ   ÚxÚyÚtmpÚexpfnÚlog1pfnÚshifts        €€€r   Úimplz;_generate_logaddexp.<locals>.ol_npy_logaddexp.<locals>.impl}  se   ø€ Ø�rˆqˆAØ�Q’à˜5‘yÐ à˜!‘e�Ø˜!’GØ™w¡u¨c¨T£{Ó3Ñ3Ð3Ø˜Q’hØ™w¡u¨S£zÓ2Ñ2Ð2ð �Jr*   r   )rå   ræ   rõ   rô   Úconstrò   ró   s      @€€€r   Úol_npy_logaddexpz-_generate_logaddexp.<locals>.ol_npy_logaddexpx  s"   ù€ à�Š8ØÙ�5“	ˆö	ð ˆr*   r   )Ú
fnoverloadrö   ró   rò   r÷   s    ``` r   Ú_generate_logaddexprù   t  s   ú€ ô ˆj Ô+õó ,ñr*   c                  ó   — y r   r   rä   s     r   rç   rç   �  rè   r*   c                 óä   — t        ||d«       | j                  j                  t        «      }|j	                  | j                  g |j
                  ¢­i «      }| j                  ||«      } |||«      S r§   )r)   Útyping_contextÚresolve_value_typerç   Úget_call_typer   Úget_function©r8   r9   r%   r   r=   rõ   s         r   Únp_real_logaddexp_implr  ”  se   € Ü   d¨AÔ.à×!Ñ!×4Ñ4´^ÓD€DØ
×
Ñ
˜W×3Ñ3°\°s·x±x±\À2Ó
F€CØ×Ñ  cÓ*€DÙ�˜ÓÐr*   c                  ó   — y r   r   rä   s     r   Ú_npy_logaddexp2r  ž  rè   r*   c                  ó   — y r   r   ©rï   s    r   Únpy_log2_1pr  ¡  rè   r*   rê   rë   c                 ó*   ‡—  | t         «      Šˆfd„}|S )Nc                 ó4   •— ‰t        j                  | «      z  S r   )ÚnpÚlog1p)rï   ÚLOG2Es    €r   rõ   zol_npy_log2_1p.<locals>.implª  s   ø€ Ø”r—x‘x “{Ñ"Ð"r*   )Ú
_NPY_LOG2E)rï   rõ   r  s     @r   Úol_npy_log2_1pr  §  s   ø€ áŒj‹M€Eô#à€Kr*   rÄ   c                 óä   — t        ||d«       | j                  j                  t        «      }|j	                  | j                  g |j
                  ¢­i «      }| j                  ||«      } |||«      S r§   )r)   rü   rý   r  rþ   r   rÿ   r   s         r   Únp_real_logaddexp2_implr  ²  se   € Ü   d¨AÔ.à×!Ñ!×4Ñ4´_ÓE€DØ
×
Ñ
˜W×3Ñ3°\°s·x±x±\À2Ó
F€CØ×Ñ  cÓ*€DÙ�˜ÓÐr*   c                 ó&  ‡— |\  }}|j                   Št        ˆfd„|D «       «      sJ d«       ‚|j                  \  }}| j                  |||t        j
                  «      }| j                  |||t        j
                  «      }|j                  ||«      S )Nc              3   ó<   •K  — | ]  }|j                   ‰k(  –— Œ y ­wr   )ri   )r   rÐ   Úlltypes     €r   r   z&np_int_truediv_impl.<locals>.<genexpr>Ä  s   øè ø€ Ò, !ˆq�v‰v�v�~Ñ,ùs   ƒzmust have homogeneous types)ri   r   r   r5   r   r7   r¨   )	r8   r9   r%   r   rx   ry   ÚnumtyÚdentyr  s	           @r   Únp_int_truediv_implr  ¾  s   ø€ ð �H€CˆØ�X‰X€FÜÓ, tÔ,Ô,ÐKÐ.KÓKÐ,Ø—8‘8�L€Eˆ5à
�,‰,�w  U¬E¯M©MÓ
:€CØ
�,‰,�w  U¬E¯M©MÓ
:€Cà�<‰<˜˜CÓ Ð r*   c                 ó�   — t        | |||«      }t        j                  |j                  |j                  «      }t	        | |||f«      S r   )rª   r   Ú	signaturer   Únp_real_floor_impl)r8   r9   r%   r   r³   Úss         r   Únp_real_floor_div_implr  Ð  s?   € Ü
˜7 G¨S°$Ó
7€CÜ×Ñ˜Ÿ™¨#¯/©/Ó:€AÜ˜g w°°C°6Ó:Ð:r*   c                 óà   — t        | | |j                  d   |j                  Ž |«      }t        | | |j                  d   |j                  Ž |«      }| j	                  ||j                  ||g«      S r—   )r  r   r   r·   r˜   r™   s         r   Únp_real_divmod_implr  Ö  sj   € Ü
  ¨'Ð3E°3·?±?À1Ñ3EÀsÇxÁxÐ3PÐRVÓ
W€CÜ
˜7 GÐ-?¨S¯_©_¸QÑ-?ÀÇÁÐ-JÈDÓ
Q€CØ×Ñ˜g s§¡¸¸c¸
ÓCÐCr*   c                 ó~  — |j                   d   j                  }t        j                  ||«      }|D �cg c]#  }| j	                  ||j                   d   |¬«      ‘Œ% c}\  }}|j
                  }	|j                  }
|j
                  }|j                  }|	j                  }t        |	|
||fD �cg c]  }|j                  |k(  ‘Œ c}«      sJ d«       ‚t        j                  j                  |d«      }| j                  ||j                  «      }||_        t        | ||«      }t        | ||«      }|j                  d||«      }|j!                  |«      5 \  }}|5  |j#                  ||«      }|j%                  |
|«      }|j%                  ||«      }|j'                  |	|«      }|j'                  ||«      }|j#                  ||«      }t)        | |||f«      |_        d d d «       |5  |j#                  ||«      }|j%                  |	|«      }|j%                  ||«      }|j'                  |
|«      }|j'                  ||«      }|j#                  ||«      }t)        | |||f«      |_        d d d «       d d d «       |j+                  «       S c c}w c c}w # 1 sw Y   Œ¶xY w# 1 sw Y   Œ7xY w# 1 sw Y   |j+                  «       S xY w)Nr   rÁ   rÃ   r¬   rÅ   )r   Úunderlying_floatr   r  rH   rÆ   rÇ   ri   r   r0   r1   r»   rÈ   r   r¿   r¯   rn   r¨   rÉ   r°   r  rÊ   )r8   r9   r%   r   Ú
float_kindÚ	floor_sigr   r±   r²   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rz   rU   rÒ   rÓ   rÔ   r‚   rƒ   rÚ   rÛ   rÜ   rÞ   rß   rà   s                               r   Únp_complex_floor_div_implr!  Ü  s•  € ð —‘˜!‘×-Ñ-€JÜ× Ñ  ¨ZÓ8€Ið  ö!Øð ×$Ñ$ W¨c¯h©h°q©kÀÐ$ÕEò !�H€Cˆð �8‰8€DØ�8‰8€DØ�8‰8€DØ�8‰8€DØ�I‰I€EÜ¨¨d°D¸$Ð'?Ö@ !�—‘˜“Ò@ÔAÐUÐCUÓUÐAä�;‰;×Ñ  sÓ+€Dà
×
Ñ
˜g s§¡Ó
7€CØ€C„Hä�W˜g tÓ,€HÜ�W˜g tÓ,€HØ"×/Ñ/°°hÀÓIÐà	�‰Ð-Ó	.ð PÑ2C°4¸Øñ 	PØ—,‘,˜t TÓ*ˆCà—<‘<  cÓ*ˆDØ—<‘<  cÓ*ˆDØ—<‘<  dÓ+ˆDØ—<‘<  dÓ+ˆDØ—<‘<  dÓ+ˆDÜ)¨'°7¸IÈÀwÓOˆCŒH÷	Pð ñ 	PØ—,‘,˜t TÓ*ˆCà—<‘<  cÓ*ˆDØ—<‘<  cÓ*ˆDØ—<‘<  dÓ+ˆDØ—<‘<  dÓ+ˆDØ—<‘<  dÓ+ˆDÜ)¨'°7¸IÈÀwÓOˆCŒH÷	P÷Pð& �=‰=‹?ÐùòM!ùò A÷	Pð 	Pú÷	Pð 	Pú÷Pð& �=‰=‹?ÐúsI   ´(JÂ+JÅJ$ÅBJÇ
J$Ç!BJÉ"J$ÊJ	ÊJ$ÊJ!	ÊJ$Ê$J<c                 óL   — t        ||d«       t        j                  | |||«      S r§   ©r)   r   Úcomplex_power_implr©   s       r   Únp_complex_power_implr%    ó%   € Ü   d¨AÔ.ä×%Ñ% g¨w¸¸TÓBÐBr*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   )r)   r   Úreal_power_implr©   s       r   Úreal_float_power_implr)    s%   € Ü   d¨AÔ.ä×"Ñ" 7¨G°S¸$Ó?Ð?r*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   r#  r©   s       r   Únp_complex_float_power_implr+  !  r&  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   )r)   r   Úgcd_implr©   s       r   Únp_gcd_implr.  *  ó%   € Ü   d¨AÔ.Ü×Ñ˜W g¨s°DÓ9Ð9r*   c                 ó¼   — |j                   \  }}||cxk(  r|j                  k(  sJ ‚ J ‚|\  }}d„ }| j                  ||||«      }	t        | ||j                  |	«      S )Nc                 óZ   — | dk(  rdS t        | |t        j                  || «      z  z  «      S )z7
        Like gcd, heavily cribbed from Julia.
        r   )Úabsr	  Úgcd)ÚaÚbs     r   Úlcmznp_lcm_impl.<locals>.lcm8  s.   € ð ˜’FˆqÐ<¤ A¨¬b¯f©f°Q¸«lÑ):Ñ$;Ó <Ð<r*   )r   r   Úcompile_internalr   )
r8   r9   r%   r   ÚxtyÚytyrï   rð   r6  r³   s
             r   Únp_lcm_implr:  2  sg   € à�x‰x�H€CˆØ�#Ô(˜Ÿ™Ò(Ð(Ñ(Ð(Ð(Ø�D€A€qò=ð ×
"Ñ
" 7¨C°°dÓ
;€CÜ˜g w°·±ÀÓEÐEr*   c                 ó  — t        ||d«       t        dk\  r/d„ }| j                  ||||«      }t        | ||j                  |«      S |d   }|j
                  d   }| j                  ||«      }|j                  }	| j                  |	d«      }
| j                  |	d«      }| j                  |	d«      }| j                  |	t        d«      «      }|
|_
        |
|_        t        j                  t        j                  g|gd	z  ¢­Ž }||j!                  «       g}t#        | |||«      }t%        | |||«      }t'        | |||«      }|j)                  ||
|«      }|j)                  |||«      }|j)                  |||«      |_
        |j!                  «       S )
Nrb   )r`   r   c                 ól   — t        j                  | j                  | j                  «      }|dk(  ry| |z  S )Nr   y                )ÚmathÚhypotrÆ   rÇ   )Úzr2  s     r   Úcomplex_signz*np_complex_sign_impl.<locals>.complex_signL  s-   € Ü—*‘*˜QŸV™V Q§V¡VÓ,ˆCØ�aŠxØà˜3‘w�r*   r   r¬   rÄ   ç      ð¿Únanr`   )r)   r   r7  r   r   r   rH   r  rh   ÚfloatrÆ   rÇ   r   r  r   ÚbooleanrÊ   Únp_complex_ge_implÚnp_complex_eq_implÚnp_complex_lt_implrt   )r8   r9   r%   r   r@  r³   Úopr   rA   Úfloat_tyrz   rÑ   r{   ÚNANÚcmp_sigÚcmp_argsÚarg1_ge_arg2Úarg1_eq_arg2Úarg1_lt_arg2Úreal_when_geÚreal_when_nges                        r   Únp_complex_sign_implrR  E  s€  € ô !  d¨AÔ.ä˜Òò	ð ×&Ñ& w°¸cÀ4ÓHˆÜ! '¨7°C·O±OÀSÓIÐIà�!‰WˆØ�X‰X�a‰[ˆØ×%Ñ% g¨rÓ2ˆØ×&Ñ&ˆà×#Ñ# H¨cÓ2ˆØ×#Ñ# H¨cÓ2ˆØ×(Ñ(¨°4Ó8ˆ	Ø×"Ñ" 8¬U°5«\Ó:ˆàˆŒØˆŒÜ×"Ñ"¤5§=¡=Ð<°B°4¸!±8Ò<ˆØ˜×(Ñ(Ó*Ð+ˆÜ)¨'°7¸GÀXÓNˆÜ)¨'°7¸GÀXÓNˆÜ)¨'°7¸GÀXÓNˆà—~‘~ l°D¸#Ó>ˆØŸ™ |°YÀÓDˆØ—n‘n \°<ÀÓOˆŒà×ÑÓ!Ð!r*   c                 óJ   — t        ||d«       t        j                  |d|«      S )Nrb   z	llvm.rint©r)   r   Úcall_fp_intrinsicr©   s       r   Únp_real_rint_implrV  r  ó#   € Ü   d¨AÔ.ä×%Ñ% g¨{¸DÓAÐAr*   c                 óh  — t        ||d«       |j                  d   }|j                  }| j                  |||d   ¬«      }| j                  ||«      }t	        j
                  |gdz  Ž }t        | |||j                  g«      |_        t        | |||j                  g«      |_        |j                  «       S )Nrb   r   rÁ   r`   )
r)   r   r  rH   r   r  rV  rÆ   rÇ   rÊ   )	r8   r9   r%   r   r   rI  r±   rU   Ú	inner_sigs	            r   Únp_complex_rint_implrZ  x  s§   € ô !  d¨AÔ.Ø	�‰�!‰€BØ×"Ñ"€HØ
×
Ñ
˜w¨°$°q±'Ð
Ó
:€CØ
×
Ñ
˜w¨Ó
+€Cä× Ñ  8 *¨Q¡,Ð/€IÜ  ¨'°9¸s¿x¹x¸jÓI€C„HÜ  ¨'°9¸s¿x¹x¸jÓI€C„HØ�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S ©Nrb   )r)   r   Úexp_implr©   s       r   Únp_real_exp_implr^  ‹  r/  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   r]  r©   s       r   Únp_complex_exp_implr`  �  ó%   € Ü   d¨AÔ.Ü×Ñ˜g w°°TÓ:Ð:r*   c                 óì   — t        ||d«       |d   j                  }t        j                  j	                  ||g«      }t        j                  |j                  |d¬«      }|j                  ||d   g«      S )Nrb   r   z	llvm.exp2r,   ©	r)   ri   r0   r1   r2   r
   r3   r.   r6   ©r8   r9   r%   r   Úll_tyr=   r>   s          r   Únp_real_exp2_implrf  —  óe   € Ü   d¨AÔ.à�‰G�L‰L€EÜ�;‰;×#Ñ# E¨E¨8Ó4€DÜ	×	%Ñ	% g§n¡n°dØ+6ô
8€Bà�<‰<˜˜T !™W˜IÓ&Ð&r*   c                 óŽ  — t        ||d«       |j                  d   }|j                  }| j                  |||d   ¬«      }| j                  ||«      }| j	                  |t
        «      }|j                  ||j                  «      |_        |j                  ||j                  «      |_        t        | |||j                  «       g«      S ©Nrb   r   rÁ   )r)   r   r  rH   rh   Ú
_NPY_LOGE2rÉ   rÆ   rÇ   r`  rÊ   )	r8   r9   r%   r   r   rI  r±   rñ   Úloge2s	            r   Únp_complex_exp2_implrl  ¡  s«   € Ü   d¨AÔ.Ø	�‰�!‰€BØ×"Ñ"€HØ
×
Ñ
˜w¨°$°q±'Ð
Ó
:€CØ
×
Ñ
˜w¨Ó
+€CØ× Ñ  ¬:Ó6€EØ�|‰|˜E 3§8¡8Ó,€C„HØ�|‰|˜E 3§8¡8Ó,€C„HÜ˜w¨°°s·}±}³Ð6GÓHÐHr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Úlog_implr©   s       r   Únp_real_log_implro  °  r/  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   rn  r©   s       r   Únp_complex_log_implrq  µ  ra  r*   c                 óì   — t        ||d«       |d   j                  }t        j                  j	                  ||g«      }t        j                  |j                  |d¬«      }|j                  ||d   g«      S )Nrb   r   z	llvm.log2r,   rc  rd  s          r   Únp_real_log2_implrs  ¼  rg  r*   c                 óf  — t        ||d«       |j                  d   }|j                  }t        | |||«      }| j	                  |||¬«      }| j                  |t        «      }|j                  ||j                  «      |_        |j                  ||j                  «      |_	        |j                  «       S ri  )r)   r   r  rq  rH   rh   r  rÉ   rÆ   rÇ   rÊ   )r8   r9   r%   r   r   rI  rñ   Úlog2es           r   Únp_complex_log2_implrv  Å  s—   € Ü   d¨AÔ.à	�‰�!‰€BØ×"Ñ"€HÜ
˜g w°°TÓ
:€CØ
×
Ñ
˜w¨°#Ð
Ó
6€CØ× Ñ  ¬:Ó6€EØ�|‰|˜E 3§8¡8Ó,€C„HØ�|‰|˜E 3§8¡8Ó,€C„HØ�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
log10_implr©   s       r   Únp_real_log10_implry  Õ  ó%   € Ü   d¨AÔ.Ü×Ñ˜w¨°°dÓ;Ð;r*   c                 óf  — t        ||d«       |j                  d   }|j                  }t        | |||«      }| j	                  |||¬«      }| j                  |t        «      }|j                  ||j                  «      |_        |j                  ||j                  «      |_	        |j                  «       S ri  )r)   r   r  rq  rH   rh   Ú_NPY_LOG10ErÉ   rÆ   rÇ   rÊ   )r8   r9   r%   r   r   rI  rñ   Úlog10es           r   Únp_complex_log10_implr~  Ú  s—   € Ü   d¨AÔ.à	�‰�!‰€BØ×"Ñ"€HÜ
˜g w°°TÓ
:€CØ
×
Ñ
˜w¨°#Ð
Ó
6€CØ×!Ñ! (¬KÓ8€FØ�|‰|˜F C§H¡HÓ-€C„HØ�|‰|˜F C§H¡HÓ-€C„HØ�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
expm1_implr©   s       r   Únp_real_expm1_implr�  ê  rz  r*   c                 ó*  — t        ||d«       |j                  d   }|j                  }t        j                  |gdz  Ž }| j                  |d«      }| j                  |||d   ¬«      }t        | |||j                  g«      }	| j                  ||«      }
t        | |||j                  g«      }t        | |||j                  g«      }|j                  |	|«      }|j                  |	|«      |
_
        |j                  ||«      |
_        |
j                  «       S )Nrb   r   r`   rA  rÁ   )r)   r   r  r   r  rh   rH   r^  rÆ   Únp_real_cos_implrÇ   Únp_real_sin_implrÉ   r°   rÊ   )r8   r9   r%   r   r   rI  Úfloat_unary_sigr{   r±   r4  rU   Úcos_imagÚsin_imagrñ   s                 r   Únp_complex_expm1_implrˆ  î  sý   € ä   d¨AÔ.à	�‰�!‰€BØ×"Ñ"€HÜ×&Ñ&¨¨
°1©Ð5€Oà×$Ñ$ X¨tÓ4€IØ
×
Ñ
˜w¨°$°q±'Ð
Ó
:€CÜ˜ '¨?¸S¿X¹X¸JÓG€AØ
×
Ñ
˜w¨Ó
+€CÜ ¨°/ÀCÇHÁHÀ:ÓN€HÜ ¨°/ÀCÇHÁHÀ:ÓN€HØ
�,‰,�q˜(Ó
#€CØ�|‰|˜A˜xÓ(€C„HØ�|‰|˜C Ó+€C„Hà�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
log1p_implr©   s       r   Únp_real_log1p_implr‹    rz  r*   c                 ó  — t        ||d«       |j                  d   }|j                  }t        j                  |gdz  Ž }t        j                  |gdz  Ž }| j                  |d«      }| j                  |||d   ¬«      }	| j                  ||«      }
|j                  |	j                  |«      }t        | ||||	j                  g«      }t        | |||	j                  |g«      |
_
        t        | |||g«      |
_        |
j                  «       S )Nrb   r   r`   é   rÄ   rÁ   )r)   r   r  r   r  rh   rH   r°   rÆ   Únp_real_hypot_implrÇ   Únp_real_atan2_implro  rÊ   )r8   r9   r%   r   r   rI  r…  Úfloat_binary_sigrÑ   r±   rU   Úreal_plus_oneÚls                r   Únp_complex_log1p_implr“  
  s  € ä   d¨AÔ.à	�‰�!‰€BØ×"Ñ"€HÜ×&Ñ&¨¨
°1©Ð5€OÜ×'Ñ'¨(¨°A©Ð6Ðà
×
Ñ
˜x¨Ó
-€CØ
×
Ñ
˜w¨°$°q±'Ð
Ó
:€CØ
×
Ñ
˜w¨Ó
+€CØ—L‘L §¡¨3Ó/€MÜ˜7 GÐ-=Ø)¨3¯8©8Ð4ó	6€Aä! '¨7Ð4DØ#&§8¡8¨]Ð";ó=€C„Hä ¨°/ÀAÀ3ÓG€C„Hà�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	sqrt_implr©   s       r   Únp_real_sqrt_implr–  #  ó%   € Ü   d¨AÔ.Ü×Ñ˜g w°°TÓ:Ð:r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   r•  r©   s       r   Únp_complex_sqrt_implr™  (  s%   € Ü   d¨AÔ.Ü×Ñ˜w¨°°dÓ;Ð;r*   c                 óL   — t        ||d«       |j                  |d   |d   «      S ©Nrb   r   )r)   Úmulr©   s       r   Únp_int_square_implr�  0  s'   € Ü   d¨AÔ.Ø�;‰;�t˜A‘w  Q¡Ó(Ð(r*   c                 óL   — t        ||d«       |j                  |d   |d   «      S r›  )r)   rÉ   r©   s       r   Únp_real_square_implrŸ  5  s'   € Ü   d¨AÔ.Ø�<‰<˜˜Q™  a¡Ó)Ð)r*   c                 óœ   — t        ||d«       t        j                  |j                  gdz  Ž }t	        j
                  | |||d   |d   g«      S ©Nrb   r�  r   )r)   r   r  r   r   Úcomplex_mul_impl)r8   r9   r%   r   Ú
binary_sigs        r   Únp_complex_square_implr¤  9  sS   € Ü   d¨AÔ.Ü×!Ñ! C§O¡OÐ#4°QÑ#6Ð7€JÜ×#Ñ# G¨W°jØ&*¨1¡g¨t°A©wÐ%7ó9ð 9r*   c                 ót   ‡— t        ||d«       t        d¬«      d„ «       Šˆfd„}| j                  ||||«      S )Nrb   T)Úfastmathc                 óh   — | dk  rt        j                  |  d«       S t        j                  | d«      S )Nr   gUUUUUUÕ?)r	  Úpowerr  s    r   Úcbrtznp_real_cbrt_impl.<locals>.cbrtH  s0   € àˆqŠ5Ü—H‘H˜a˜R Ó+Ð+Ð+ä—8‘8˜A˜yÓ)Ð)r*   c                 ó^   •— t        j                  | «      rt         j                  S  ‰| «      S r   )r	  ÚisnanrB  )rï   r©  s    €r   Ú_cbrtz np_real_cbrt_impl.<locals>._cbrtO  s    ø€ Ü�8‰8�AŒ;Ü—6‘6ˆMÙ�A‹wˆr*   )r)   r   r7  )r8   r9   r%   r   r¬  r©  s        @r   Únp_real_cbrt_implr­  C  sF   ø€ Ü   d¨AÔ.ô ˜tÔ$ñ*ó %ð*ôð
 ×#Ñ# G¨U°C¸Ó>Ð>r*   c                 óR  — t        ||d«       |j                  }t        j                  |gdz  Ž }| j	                  ||d   |t
        j                  «      }| j                  t
        j                  d«      }|j                  ||«      }| j	                  ||t
        j                  |«      S r¡  )	r)   r   r   r  r5   r   r7   rh   r¨   )	r8   r9   r%   r   r   r£  Úin_as_floatrÑ   Úresult_as_floats	            r   Únp_int_reciprocal_implr±  Z  sŠ   € ô !  d¨AÔ.Ø	�‰€Bä×!Ñ! B 4¨¡6Ð*€JØ—,‘,˜w¨¨Q©°´U·]±]ÓC€KØ
×
Ñ
œuŸ}™}¨aÓ
0€CØ—l‘l 3¨Ó4€OØ�<‰<˜ ´%·-±-ÀÓDÐDr*   c                 ó~   — t        ||d«       | j                  |j                  d«      }|j                  ||d   «      S )Nrb   rÄ   r   )r)   rh   r   r¨   )r8   r9   r%   r   rÑ   s        r   Únp_real_reciprocal_implr³  h  s9   € Ü   d¨AÔ.Ø
×
Ñ
˜sŸ™°Ó
4€CØ�<‰<˜˜T !™WÓ%Ð%r*   c                 ó>  — t        ||d«       |j                  d   }|j                  }| j                  |d«      }| j                  |d«      }| j	                  |||d   ¬«      }| j	                  ||«      }	|j
                  }
|j                  }t        | ||
«      }t        | ||«      }|j                  d||«      }|j                  |«      5 \  }}|5  |j                  ||
«      }|j                  ||«      }|j                  |
|«      }|j                  ||«      }|j                  ||«      }||	_        |j                  ||«      |	_        d d d «       |5  |j                  |
|«      }|j                  |
|«      }|j                  ||«      }|j                  ||«      }|j                  ||«      |	_        |j                  ||«      |	_        d d d «       d d d «       |	j                  «       S # 1 sw Y   Œ¢xY w# 1 sw Y   Œ-xY w# 1 sw Y   |	j                  «       S xY w)Nrb   r   r¬   rÄ   rÁ   ú<=)r)   r   r  rh   rH   rÆ   rÇ   r¿   r¯   rn   r¨   rÉ   r°   r¼   rÊ   )r8   r9   r%   r   r   rI  rz   rÑ   r±   rU   rË   rÌ   Úin1r_absÚin1i_absÚin1i_abs_le_in1r_absr‚   rƒ   ÚrÚtmp0ÚdÚinv_dÚminus_rs                         r   Únp_complex_reciprocal_implr¾  n  sû  € ô !  d¨AÔ.à	�‰�!‰€BØ×"Ñ"€Hà×Ñ ¨#Ó.€DØ
×
Ñ
˜x¨Ó
-€CØ
×
Ñ
˜w¨°$°q±'Ð
Ó
:€CØ
×
Ñ
˜w¨Ó
+€CØ�8‰8€DØ�8‰8€DÜ�W˜g tÓ,€HÜ�W˜g tÓ,€HØ"×/Ñ/°°hÀÓIÐà	�‰Ð-Ó	.ð 1Ñ2C°4¸Øñ 	4Ø—‘˜T 4Ó(ˆAØ—<‘<  aÓ(ˆDØ—‘˜T 4Ó(ˆAØ—L‘L  aÓ(ˆEØ—l‘l 4¨Ó+ˆGØˆCŒHØ—|‘| G¨UÓ3ˆCŒH÷	4ð ñ 	1Ø—‘˜T 4Ó(ˆAØ—<‘<  aÓ(ˆDØ—‘˜T 4Ó(ˆAØ—L‘L  aÓ(ˆEØ—|‘| A uÓ-ˆCŒHØ—|‘| D¨%Ó0ˆCŒH÷	1÷1ð" �=‰=‹?Ð÷!	4ð 	4ú÷	1ð 	1ú÷1ð" �=‰=‹?Ðús>   ÃHÃA9G,Å
HÅA7G8ÇHÇ,G5	Ç1HÇ8H	Ç=HÈHc                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Úsin_implr©   s       r   r„  r„  ˜  r/  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   rÀ  r©   s       r   Únp_complex_sin_implrÂ  �  ra  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Úcos_implr©   s       r   rƒ  rƒ  ¥  r/  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   rÄ  r©   s       r   Únp_complex_cos_implrÆ  ª  ra  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Útan_implr©   s       r   Únp_real_tan_implrÉ  ²  r/  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	asin_implr©   s       r   Únp_real_asin_implrÌ  º  r—  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	acos_implr©   s       r   Únp_real_acos_implrÏ  Â  r—  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	atan_implr©   s       r   Únp_real_atan_implrÒ  Ê  r—  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   )r)   r   Úatan2_float_implr©   s       r   r�  r�  Ò  ó%   € Ü   d¨AÔ.Ü×$Ñ$ W¨g°s¸DÓAÐAr*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   )r)   r   Úhypot_float_implr©   s       r   rŽ  rŽ  Ú  rÕ  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	sinh_implr©   s       r   Únp_real_sinh_implrÚ  â  r—  r*   c                 óò  — t        ||d«       |j                  d   }|j                  }t        j                  |gdz  Ž }| j                  |||d   «      }| j                  ||«      }|j                  }	|j                  }
t        | |||
g«      }t        | |||	g«      }t        | |||
g«      }t        | |||	g«      }|j                  ||«      |_        |j                  ||«      |_        |j                  «       S ©Nrb   r   r`   )r)   r   r  r   r  rH   rÆ   rÇ   r„  rÚ  rƒ  Únp_real_cosh_implrÉ   rÊ   )r8   r9   r%   r   r   ÚftyÚfsig1rï   rU   ÚxrÚxiÚsxiÚshxrÚcxiÚchxrs                  r   Únp_complex_sinh_implræ  ç  sô   € ô !  d¨AÔ.ð 
�‰�!‰€BØ
×
Ñ
€CÜ×Ñ˜s˜e A™gÐ&€EØ×Ñ˜W b¨$¨q©'Ó2€AØ
×
Ñ
˜w¨Ó
+€CØ	
�‰€BØ	
�‰€Bä
˜7 G¨U°R°DÓ
9€CÜ˜W g¨u°r°dÓ;€DÜ
˜7 G¨U°R°DÓ
9€CÜ˜W g¨u°r°dÓ;€Dà�|‰|˜C Ó&€C„HØ�|‰|˜C Ó&€C„Hà�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	cosh_implr©   s       r   rÝ  rÝ    r—  r*   c                 óò  — t        ||d«       |j                  d   }|j                  }t        j                  |gdz  Ž }| j                  |||d   «      }| j                  ||«      }|j                  }	|j                  }
t        | |||
g«      }t        | |||	g«      }t        | |||
g«      }t        | |||	g«      }|j                  ||«      |_        |j                  ||«      |_        |j                  «       S rÜ  )r)   r   r  r   r  rH   rÆ   rÇ   rƒ  rÝ  r„  rÚ  rÉ   rÊ   )r8   r9   r%   r   r   rÞ  rß  rï   rU   rà  rá  rä  rå  râ  rã  s                  r   Únp_complex_cosh_implrê    sò   € ô !  d¨AÔ.à	�‰�!‰€BØ
×
Ñ
€CÜ×Ñ˜s˜e A™gÐ&€EØ×Ñ˜W b¨$¨q©'Ó2€AØ
×
Ñ
˜w¨Ó
+€CØ	
�‰€BØ	
�‰€Bä
˜7 G¨U°R°DÓ
9€CÜ˜W g¨u°r°dÓ;€DÜ
˜7 G¨U°R°DÓ
9€CÜ˜W g¨u°r°dÓ;€Dà�|‰|˜C Ó&€C„HØ�|‰|˜C Ó&€C„Hà�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú	tanh_implr©   s       r   Únp_real_tanh_implrí  #  r—  r*   c                 ó  — t        ||d«       |j                  d   }|j                  }t        j                  |gdz  Ž }| j                  |d«      }| j                  |||d   «      }| j                  ||«      }	|j                  }
|j                  }t        | |||g«      }t        | |||g«      }t        | |||
g«      }t        | |||
g«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j                  ||«      }|j!                  ||«      }|j                  ||«      |	_        |j                  ||«      |	_        |	j#                  «       S )Nrb   r   r`   rÄ   )r)   r   r  r   r  rh   rH   rÆ   rÇ   r„  rƒ  rÚ  rÝ  rÉ   r°   r¨   r¼   rÊ   )r8   r9   r%   r   r   rÞ  rß  rÑ   rï   rU   rà  rá  ÚsiÚciÚshrÚchr_ÚrsÚis_ÚrcÚicÚsqr_rcÚsqr_icr»  r¼  Úrs_rcÚis_icÚis_rcÚrs_icÚnumrÚnumis                                 r   Únp_complex_tanh_implrÿ  (  sä  € ô !  d¨AÔ.à	�‰�!‰€BØ
×
Ñ
€CÜ×Ñ˜s˜e A™gÐ&€EØ
×
Ñ
˜s CÓ
(€CØ×Ñ˜W b¨$¨q©'Ó2€AØ
×
Ñ
˜w¨Ó
+€Cà	
�‰€BØ	
�‰€BÜ	˜' 7¨E°B°4Ó	8€BÜ	˜' 7¨E°B°4Ó	8€BÜ
˜G W¨e°b°TÓ
:€CÜ˜W g¨u°r°dÓ;€DØ	�‰�b˜#Ó	€BØ
�,‰,�r˜4Ó
 €CØ	�‰�b˜$Ó	€BØ	�‰�b˜#Ó	€BØ�\‰\˜"˜bÓ!€FØ�\‰\˜"˜bÓ!€FØ�‰�V˜VÓ$€AØ�L‰L˜˜aÓ €EØ�L‰L˜˜RÓ €EØ�L‰L˜˜bÓ!€EØ�L‰L˜˜bÓ!€EØ�L‰L˜˜RÓ €EØ�<‰<˜˜uÓ%€DØ�<‰<˜˜uÓ%€DØ�|‰|˜D %Ó(€C„HØ�|‰|˜D %Ó(€C„Hà�=‰=‹?Ðr*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
asinh_implr©   s       r   Únp_real_asinh_implr  Q  rz  r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
acosh_implr©   s       r   Únp_real_acosh_implr  Y  rz  r*   c                 óÀ  — t        ||d«       |j                  d   }t        j                  |gdz  Ž }| j	                  ||d«      }|d   }t        j                  | ||||g«      }t        j                  | ||||g«      }	t        | |||g«      }
t        | |||	g«      }t        j                  | |||
|g«      }t        j                  | ||||g«      }t        | |||g«      S )Nrb   r   r�  y      ð?        )r)   r   r   r  Úget_constant_genericr   Úcomplex_add_implÚcomplex_sub_implr™  r¢  rq  )r8   r9   r%   r   r   Úcsig2rÑ   rï   Ú
x_plus_oneÚx_minus_oneÚsqrt_x_plus_oneÚsqrt_x_minus_oneÚ	prod_sqrtÚlog_args                 r   Únp_complex_acosh_implr  ^  s  € ô !  d¨AÔ.à	�‰�!‰€BÜ×Ñ˜r˜d 1™fÐ%€Eà
×
&Ñ
& w°°JÓ
?€CØˆQ‰€Aä×)Ñ)¨'°7¸EÀAØEHðDJó K€Jä×*Ñ*¨7°G¸UÀQØFIðEKó L€Kä*¨7°G¸SÀ:À,ÓO€OÜ+¨G°W¸cÀKÀ=ÓQÐÜ×(Ñ(¨°'¸5Ø+:Ø+;ð+=ó>€Iô ×&Ñ& w°¸ÀØBKðAMó N€Gô ˜w¨°°w°iÓ@Ð@r*   c                 óL   — t        ||d«       t        j                  | |||«      S r\  )r)   r   Ú
atanh_implr©   s       r   Únp_real_atanh_implr  |  rz  r*   c                 óJ   — t        ||d«       t        j                  |d|«      S )Nrb   z
llvm.floorrT  r©   s       r   r  r  „  ó#   € Ü   d¨AÔ.ä×%Ñ% g¨|¸TÓBÐBr*   c                 óJ   — t        ||d«       t        j                  |d|«      S )Nrb   z	llvm.ceilrT  r©   s       r   Únp_real_ceil_implr  �  rW  r*   c                 óJ   — t        ||d«       t        j                  |d|«      S )Nrb   z
llvm.truncrT  r©   s       r   Únp_real_trunc_implr  –  r  r*   c                 óJ   — t        ||d«       t        j                  |d|«      S )Nrb   z	llvm.fabsrT  r©   s       r   Únp_real_fabs_implr  Ÿ  rW  r*   c                 ó  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      }|j                  ||«      }|j                  ||«      S c c}w )	Nr`   ©r   r   rÁ   rf   Úordrc   rÅ   ©
r)   r   rD  r   rH   rÆ   rÇ   r¯   rl   rm   )r8   r9   r%   r   r   r   r±   r²   rà  rá  ÚyrÚyiÚxr_gt_yrÚno_nan_xi_yiÚxr_eq_yrÚxi_ge_yiÚ
first_termÚsecond_terms                     r   rE  rE  ª  óô   € ô !  d¨A¼5¿=¹=ÕIà	�‰�!‰€BØHLÖMÀ�×$Ñ$ W¨b¸Ð$Õ<ÒM�H€CˆØ	�‰€BØ	�‰€BØ	�‰€BØ	�‰€Bà×#Ñ# C¨¨RÓ0€HØ×'Ñ'¨¨r°2Ó6€LØ×#Ñ# D¨"¨bÓ1€HØ×#Ñ# D¨"¨bÓ1€HØ—‘˜h¨Ó5€JØ—,‘,˜x¨Ó2€KØ�;‰;�z ;Ó/Ð/ùò Nó   ±Dc                 ó  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      }|j                  ||«      }|j                  ||«      S c c}w )	Nr`   r  r   rÁ   r­   r  rc   rµ  r   )r8   r9   r%   r   r   r   r±   r²   rà  rá  r!  r"  Úxr_lt_yrr$  r%  Úxi_le_yir'  r(  s                     r   Únp_complex_le_implr.  ¿  r)  r*  c                 ó  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      }|j                  ||«      }|j                  ||«      S c c}w )Nr`   r  r   rÁ   rf   r  rc   r   )r8   r9   r%   r   r   r   r±   r²   rà  rá  r!  r"  r#  r$  r%  Úxi_gt_yir'  r(  s                     r   Únp_complex_gt_implr1  Ô  óô   € ô !  d¨A¼5¿=¹=ÕIà	�‰�!‰€BØHLÖMÀ�×$Ñ$ W¨b¸Ð$Õ<ÒM�H€CˆØ	�‰€BØ	�‰€BØ	�‰€BØ	�‰€Bà×#Ñ# C¨¨RÓ0€HØ×'Ñ'¨¨r°2Ó6€LØ×#Ñ# D¨"¨bÓ1€HØ×#Ñ# C¨¨RÓ0€HØ—‘˜h¨Ó5€JØ—,‘,˜x¨Ó2€KØ�;‰;�z ;Ó/Ð/ùò Nr*  c                 ó  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      }|j                  ||«      }|j                  ||«      S c c}w )Nr`   r  r   rÁ   r­   r  rc   r   )r8   r9   r%   r   r   r   r±   r²   rà  rá  r!  r"  r,  r$  r%  Úxi_lt_yir'  r(  s                     r   rG  rG  é  r2  r*  c                 ó~  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      S c c}w )Nr`   r  r   rÁ   rc   )	r)   r   rD  r   rH   rÆ   rÇ   r¯   rl   )r8   r9   r%   r   r   r   r±   r²   rà  rá  r!  r"  r%  Úxi_eq_yis                 r   rF  rF  þ  s¬   € ô !  d¨A¼5¿=¹=ÕIà	�‰�!‰€BØHLÖMÀ�×$Ñ$ W¨b¸Ð$Õ<ÒM�H€CˆØ	�‰€BØ	�‰€BØ	�‰€BØ	�‰€Bà×#Ñ# D¨"¨bÓ1€HØ×#Ñ# D¨"¨bÓ1€HØ�<‰<˜ (Ó+Ð+ùò Nó   ±B:c                 ó~  — t        ||dt        j                  ¬«       |j                  d   }|D �cg c]  }| j	                  |||¬«      ‘Œ c}\  }}|j
                  }|j                  }	|j
                  }
|j                  }|j                  d||
«      }|j                  d|	|«      }|j                  ||«      S c c}w )Nr`   r  r   rÁ   rg   )	r)   r   rD  r   rH   rÆ   rÇ   Úfcmp_unorderedrm   )r8   r9   r%   r   r   r   r±   r²   rà  rá  r!  r"  Úxr_ne_yrÚxi_ne_yis                 r   Únp_complex_ne_implr<    s¬   € ô !  d¨A¼5¿=¹=ÕIà	�‰�!‰€BØHLÖMÀ�×$Ñ$ W¨b¸Ð$Õ<ÒM�H€CˆØ	�‰€BØ	�‰€BØ	�‰€BØ	�‰€Bà×%Ñ% d¨B°Ó3€HØ×%Ñ% d¨B°Ó3€HØ�;‰;�x Ó*Ð*ùò Nr7  c                 óÎ   — | j                  |||¬«      }t        j                  ||j                  «      }t        j                  ||j                  «      }|j                  ||«      S )NrÁ   )rH   r
   Úis_truerÆ   rÇ   rm   )r8   r9   r   ÚvalÚcomplex_valÚre_trueÚim_trues          r   Ú_complex_is_truerC  &  sV   € Ø×&Ñ& w°¸#Ð&Ó>€KÜ�o‰o˜g {×'7Ñ'7Ó8€GÜ�o‰o˜g {×'7Ñ'7Ó8€GØ�;‰;�w Ó(Ð(r*   c                 óÄ   — t        ||dt        j                  ¬«       t        j                  ||d   «      }t        j                  ||d   «      }|j                  ||«      S ©Nr`   r  r   rb   )r)   r   rD  r
   r>  rl   ©r8   r9   r%   r   r4  r5  s         r   Únp_logical_and_implrG  -  sM   € Ü   d¨A¼5¿=¹=ÕIÜ�‰˜  a¡Ó)€AÜ�‰˜  a¡Ó)€AØ�<‰<˜˜1ÓÐr*   c                 óØ   — t        ||dt        j                  ¬«       t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  ||«      S rE  )r)   r   rD  rC  r   rl   rF  s         r   Únp_complex_logical_and_implrI  4  s]   € Ü   d¨A¼5¿=¹=ÕIÜ˜ '¨3¯8©8°A©;¸¸Q¹Ó@€AÜ˜ '¨3¯8©8°A©;¸¸Q¹Ó@€AØ�<‰<˜˜1ÓÐr*   c                 óÄ   — t        ||dt        j                  ¬«       t        j                  ||d   «      }t        j                  ||d   «      }|j                  ||«      S rE  )r)   r   rD  r
   r>  rm   rF  s         r   Únp_logical_or_implrK  ;  óM   € Ü   d¨A¼5¿=¹=ÕIÜ�‰˜  a¡Ó)€AÜ�‰˜  a¡Ó)€AØ�;‰;�q˜!ÓÐr*   c                 óØ   — t        ||dt        j                  ¬«       t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  ||«      S rE  )r)   r   rD  rC  r   rm   rF  s         r   Únp_complex_logical_or_implrN  B  ó]   € Ü   d¨A¼5¿=¹=ÕIÜ˜ '¨3¯8©8°A©;¸¸Q¹Ó@€AÜ˜ '¨3¯8©8°A©;¸¸Q¹Ó@€AØ�;‰;�q˜!ÓÐr*   c                 óÄ   — t        ||dt        j                  ¬«       t        j                  ||d   «      }t        j                  ||d   «      }|j                  ||«      S rE  )r)   r   rD  r
   r>  rs   rF  s         r   Únp_logical_xor_implrQ  I  rL  r*   c                 óØ   — t        ||dt        j                  ¬«       t        | ||j                  d   |d   «      }t        | ||j                  d   |d   «      }|j                  ||«      S rE  )r)   r   rD  rC  r   rs   rF  s         r   Únp_complex_logical_xor_implrS  P  rO  r*   c                 ón   — t        ||dt        j                  ¬«       t        j                  ||d   «      S ©Nrb   r  r   )r)   r   rD  r
   Úis_falser©   s       r   Únp_logical_not_implrW  W  s+   € Ü   d¨A¼5¿=¹=ÕIÜ×Ñ˜G T¨!¡WÓ-Ð-r*   c                 óš   — t        ||dt        j                  ¬«       t        | ||j                  d   |d   «      }|j                  |«      S rU  )r)   r   rD  rC  r   Únot_)r8   r9   r%   r   r4  s        r   Únp_complex_logical_not_implrZ  \  s>   € Ü   d¨A¼5¿=¹=ÕIÜ˜ '¨3¯8©8°A©;¸¸Q¹Ó@€AØ�<‰<˜‹?Ðr*   c                 ór   — t        ||d«       |\  }}|j                  d||«      }|j                  |||«      S ©Nr`   rÅ   ©r)   rr   rt   )r8   r9   r%   r   Úarg1Úarg2Úarg1_sge_arg2s          r   Únp_int_smax_implra  k  ó>   € Ü   d¨AÔ.Ø�J€Dˆ$Ø×'Ñ'¨¨d°DÓ9€MØ�>‰>˜-¨¨tÓ4Ð4r*   c                 ór   — t        ||d«       |\  }}|j                  d||«      }|j                  |||«      S r\  ©r)   rk   rt   )r8   r9   r%   r   r^  r_  Úarg1_uge_arg2s          r   Únp_int_umax_implrf  r  ó>   € Ü   d¨AÔ.Ø�J€Dˆ$Ø×)Ñ)¨$°°dÓ;€MØ�>‰>˜-¨¨tÓ4Ð4r*   c                 ó
  — t        ||d«       |\  }}|j                  d||«      }|j                  d||«      }|j                  |||«      }|j                  d||«      }	|j                  |	||«      }
|j                  |||
«      S ©Nr`   ÚunorÅ   ©r)   r9  rt   r¯   )r8   r9   r%   r   r^  r_  Úarg1_nanÚany_nanÚ
nan_resultrM  Únon_nan_results              r   Únp_real_maximum_implrp  y  óŠ   € ä   d¨AÔ.à�J€Dˆ$Ø×%Ñ% e¨T°4Ó8€HØ×$Ñ$ U¨D°$Ó7€GØ—‘ ¨$°Ó5€Jà×'Ñ'¨¨d°DÓ9€LØ—^‘^ L°$¸Ó=€Nà�>‰>˜' :¨~Ó>Ð>r*   c                 ó
  — t        ||d«       |\  }}|j                  d||«      }|j                  d||«      }|j                  |||«      }|j                  d||«      }	|j                  |	||«      }
|j                  |||
«      S ri  rk  )r8   r9   r%   r   r^  r_  Úarg2_nanrm  rn  rM  ro  s              r   Únp_real_fmax_implrt  ˆ  rq  r*   c                 óÊ  — t        ||d«       |j                  d   }t        j                  t        j
                  |«      }t        j                  t        j
                  g|gdz  ¢­Ž }|\  }}t        | |||g«      }	t        | |||g«      }
|j                  |	|
«      }|j                  |	||«      }t        | |||«      }|j                  |||«      }|j                  |||«      S ©Nr`   r   ©
r)   r   r   r  r   rD  Únp_complex_isnan_implrm   rt   rE  ©r8   r9   r%   r   r   Úbc_sigÚbcc_sigr^  r_  rl  rs  rm  rn  rM  ro  s                  r   Únp_complex_maximum_implr|  —  óÖ   € ô !  d¨AÔ.Ø	�‰�!‰€BÜ×ÑœeŸm™m¨RÓ0€FÜ×ÑœuŸ}™}Ð6°¨t°A©vÒ6€GØ�J€Dˆ$Ü$ W¨g°vÀ¸vÓF€HÜ$ W¨g°vÀ¸vÓF€HØ�k‰k˜( HÓ-€GØ—‘ ¨$°Ó5€Jä% g¨w¸ÀÓF€LØ—^‘^ L°$¸Ó=€Nà�>‰>˜' :¨~Ó>Ð>r*   c                 óÊ  — t        ||d«       |j                  d   }t        j                  t        j
                  |«      }t        j                  t        j
                  g|gdz  ¢­Ž }|\  }}t        | |||g«      }	t        | |||g«      }
|j                  |	|
«      }|j                  |
||«      }t        | |||«      }|j                  |||«      }|j                  |||«      S rv  rw  ry  s                  r   Únp_complex_fmax_implr  ­  óÖ   € ô
 !  d¨AÔ.Ø	�‰�!‰€BÜ×ÑœeŸm™m¨RÓ0€FÜ×ÑœuŸ}™}Ð6°¨t°A©vÒ6€GØ�J€Dˆ$Ü$ W¨g°vÀ¸vÓF€HÜ$ W¨g°vÀ¸vÓF€HØ�k‰k˜( HÓ-€GØ—‘ ¨$°Ó5€Jä% g¨w¸ÀÓF€LØ—^‘^ L°$¸Ó=€Nà�>‰>˜' :¨~Ó>Ð>r*   c                 ór   — t        ||d«       |\  }}|j                  d||«      }|j                  |||«      S ©Nr`   rµ  r]  )r8   r9   r%   r   r^  r_  Úarg1_sle_arg2s          r   Únp_int_smin_implr„  Â  rb  r*   c                 ór   — t        ||d«       |\  }}|j                  d||«      }|j                  |||«      S r‚  rd  )r8   r9   r%   r   r^  r_  Úarg1_ule_arg2s          r   Únp_int_umin_implr‡  É  rg  r*   c                 ó
  — t        ||d«       |\  }}|j                  d||«      }|j                  d||«      }|j                  |||«      }|j                  d||«      }	|j                  |	||«      }
|j                  |||
«      S ©Nr`   rj  rµ  rk  ©r8   r9   r%   r   r^  r_  rl  rm  rn  Úarg1_le_arg2ro  s              r   Únp_real_minimum_implrŒ  Ð  rq  r*   c                 ó
  — t        ||d«       |\  }}|j                  d||«      }|j                  d||«      }|j                  |||«      }|j                  d||«      }	|j                  |	||«      }
|j                  |||
«      S r‰  rk  rŠ  s              r   Únp_real_fmin_implrŽ  ß  rq  r*   c                 óÊ  — t        ||d«       |j                  d   }t        j                  t        j
                  |«      }t        j                  t        j
                  g|gdz  ¢­Ž }|\  }}t        | |||g«      }	t        | |||g«      }
|j                  |	|
«      }|j                  |	||«      }t        | |||«      }|j                  |||«      }|j                  |||«      S rv  ©
r)   r   r   r  r   rD  rx  rm   rt   r.  ©r8   r9   r%   r   r   rz  r{  r^  r_  rl  rs  rm  rn  r‹  ro  s                  r   Únp_complex_minimum_implr’  î  r}  r*   c                 óÊ  — t        ||d«       |j                  d   }t        j                  t        j
                  |«      }t        j                  t        j
                  g|gdz  ¢­Ž }|\  }}t        | |||g«      }	t        | |||g«      }
|j                  |	|
«      }|j                  |
||«      }t        | |||«      }|j                  |||«      }|j                  |||«      S rv  r�  r‘  s                  r   Únp_complex_fmin_implr”    r€  r*   c                 ó\   — t        ||dt        j                  ¬«       t        j                  S ©Nrb   r  ©r)   r   rD  r
   Ú	false_bitr©   s       r   Únp_int_isnan_implr™    ó    € Ü   d¨A¼5¿=¹=ÕIÜ×ÑÐr*   c                 ón   — t        ||dt        j                  ¬«       t        j                  ||d   «      S rU  )r)   r   rD  r   Úis_nanr©   s       r   Únp_real_isnan_implr�  !  ó)   € Ü   d¨A¼5¿=¹=ÕIÜ�?‰?˜7 D¨¡GÓ,Ð,r*   c                 ó´   — t        ||dt        j                  ¬«       |\  }|j                  \  }| j	                  |||¬«      }t        j                  ||«      S ©Nrb   r  rÁ   )r)   r   rD  r   rH   r   rœ  ©r8   r9   r%   r   rï   r   r@  s          r   rx  rx  &  sP   € Ü   d¨A¼5¿=¹=ÕIà	�B€AØ
�(‰(�C€BØ×&Ñ& w°¸!Ð&Ó<€KÜ×Ñ˜G [Ó1Ð1r*   c                 ó\   — t        ||dt        j                  ¬«       t        j                  S r–  )r)   r   rD  r
   Útrue_bitr©   s       r   Únp_int_isfinite_implr¤  /  s    € Ü   d¨A¼5¿=¹=ÕIÜ×ÑÐr*   c                 ó„   — t        ||dt        j                  ¬«       |j                  d|d   t        j
                  «      S )Nrb   r  rg   r   )r)   r   rD  rk   r   ÚNATr©   s       r   Únp_datetime_isfinite_implr§  4  s1   € Ü   d¨A¼5¿=¹=ÕIØ× Ñ   t¨A¡w´
·±Ó?Ð?r*   c                 ó„   — t        ||dt        j                  ¬«       |j                  d|d   t        j
                  «      S )Nrb   r  rc   r   )r)   r   rD  rr   r   r¦  r©   s       r   Únp_datetime_isnat_implr©  9  s1   € Ü   d¨A¼5¿=¹=ÕIØ×Ñ˜t T¨!¡W¬j¯n©nÓ=Ð=r*   c                 ón   — t        ||dt        j                  ¬«       t        j                  ||d   «      S rU  )r)   r   rD  r   Ú	is_finiter©   s       r   Únp_real_isfinite_implr¬  >  s+   € Ü   d¨A¼5¿=¹=ÕIÜ×Ñ˜g t¨A¡wÓ/Ð/r*   c                 ó´   — t        ||dt        j                  ¬«       |\  }|j                  \  }| j	                  |||¬«      }t        j                  ||«      S r   )r)   r   rD  r   rH   r   r«  r¡  s          r   Únp_complex_isfinite_implr®  C  sP   € Ü   d¨A¼5¿=¹=ÕIØ	�B€AØ
�(‰(�C€BØ×&Ñ& w°¸!Ð&Ó<€KÜ×Ñ˜w¨Ó4Ð4r*   c                 ó\   — t        ||dt        j                  ¬«       t        j                  S r–  r—  r©   s       r   Únp_int_isinf_implr°  K  rš  r*   c                 ón   — t        ||dt        j                  ¬«       t        j                  ||d   «      S rU  )r)   r   rD  r   Úis_infr©   s       r   Únp_real_isinf_implr³  P  rž  r*   c                 ó´   — t        ||dt        j                  ¬«       |\  }|j                  \  }| j	                  |||¬«      }t        j                  ||«      S r   )r)   r   rD  r   rH   r   r²  r¡  s          r   Únp_complex_isinf_implrµ  U  sP   € Ü   d¨A¼5¿=¹=ÕIØ	�B€AØ
�(‰(�C€BØ×&Ñ& w°¸!Ð&Ó<€KÜ×Ñ˜G [Ó1Ð1r*   c           	      óf  — t        ||dt        j                  ¬«       t        j                  | j	                  t        j
                  d«      t        j                  | j	                  t        j                  d«      t        j                  | j	                  t        j                  d«      i}|j                  d   }t        t        d|j                  › �«      }| j                  |«      }|j                  |j                  |d   |«      ||   «      }|j!                  d||j#                  d«      «      }	|	S )	Nrb   r  i €  l        l            r   Úuintrg   )r)   r   rD  Úfloat16rh   Úuint16Úfloat32Úuint32r7   Úuint64r   ÚgetattrÚbitwidthrL   rl   Úbitcastrk   ri   )
r8   r9   r%   r   ÚmasksÚarg_tyÚ
arg_int_tyÚarg_ll_int_tyÚint_resÚbool_ress
             r   Únp_real_signbit_implrÆ  ]  sê   € Ü   d¨A¼5¿=¹=ÕIô 	�‰�w×+Ñ+¬E¯L©L¸&ÓAÜ�‰�w×+Ñ+¬E¯L©L¸*ÓEÜ�‰�w×+Ñ+¬E¯L©LÐ:LÓMð€Eð
 �X‰X�a‰[€FÜœ $ v§¡Ð&7Ð 8Ó9€JØ×*Ñ*¨:Ó6€MØ�l‰l˜7Ÿ?™?¨4°©7°MÓBØ  ™=ó*€Gà×$Ñ$ T¨7°G·L±LÀ³OÓD€HØ€Or*   c                 óL   — t        ||d«       t        j                  | |||«      S r§   )r)   r   Úcopysign_float_implr©   s       r   Únp_real_copysign_implrÉ  o  s%   € Ü   d¨AÔ.ä×'Ñ'¨°¸#¸tÓDÐDr*   c                 ó€   — t        ||d«       t        j                  dt        j                  di}t	        | ||||d«      S )Nr`   Únumba_nextafterfÚnumba_nextafterÚ	nextafter)r)   r   rº  r7   r^   )r8   r9   r%   r   Údispatch_tables        r   Únp_real_nextafter_implrÏ  t  sI   € Ü   d¨AÔ.ô 	�‰Ð)Ü�‰Ð(ð€Nô
 ' w°¸¸dØ'5°{óDð Dr*   c                 ó  — t        ||d«       t        j                  dt        j                  di}|j                  \  }t        j                  |j                  ||«      }|d   j                  } |t        j                  «      }t        j                  j                  |||g«      }	t        j                  |j                   |	d¬«      }
|j#                  |
||d   g«      }||gz   }t%        | ||||d«      }|j'                  ||d   «      S )Nrb   rË  rÌ  r   zllvm.copysignr,   rÍ  )r)   r   rº  r7   r   r   r  r   ri   r	  Úinfr0   r1   r2   r
   r3   r.   r6   r^   r¼   )r8   r9   r%   r   rÎ  r   rY  re  Úll_infr=   r>   Úll_sinfÚ
inner_argsrÍ  s                 r   Únp_real_spacing_implrÕ    sõ   € ô !  d¨AÔ.ô 	�‰Ð)Ü�‰Ð(ð€Nð
 �8‰8�D€RÜ× Ñ  §¡°"°bÓ9€IØ�‰G�L‰L€EÙ”2—6‘6‹]€FÜ�;‰;×#Ñ# E¨E°5¨>Ó:€DÜ	×	%Ñ	% g§n¡n°dØ+:ô
<€Bà�l‰l˜2 ¨¨Q©Ð0Ó1€GØ˜˜
Ñ"€JÜ+¨G°W¸iØ,6¸Ø,7ó9€Ið �<‰<˜	 4¨¡7Ó+Ð+r*   c                 óì   — |\  }}|j                   \  }}| j                  |||t        j                  «      }t	        j
                  ||t        j                  «      }t        j                  | ||||f«      S r   )r   r5   r   Úintcr   r  r   Ú
ldexp_impl)	r8   r9   r%   r   rå   ræ   Úty1Úty2Úf_fi_sigs	            r   Únp_real_ldexp_implrÜ  œ  sg   € ð �F€BˆØ�x‰x�H€Cˆð 
�‰�g˜r 3¬¯
©
Ó	3€BÜ×Ñ  S¬%¯*©*Ó5€HÜ×Ñ˜w¨°¸BÀ¸8ÓDÐDr*   r   )žÚ__doc__r=  Úllvmlite.irr0   Únumpyr	  Únumba.core.extendingr   Únumba.core.imputilsr   Ú
numba.corer   r   r   r	   r
   r   r   Únumba.npr   Únumba.np.mathr   r   r   Únumba.np.numpy_supportr   r  r|  rj  r)   r7   Úcast_arg_tyrB   r^   rŽ   r•   r›   r    r£   r¥   Únp_int_fmod_implrª   r·   r¹   r¿   râ   rç   rù   r
  Úexpr  r  r  r  Úexp2r  r  r  r  r!  r%  r)  r+  r.  r:  rR  rV  rZ  r^  r`  rf  rl  ro  rq  rs  rv  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ÿ  r  r  r  r  r  r  r  r  rE  r.  r1  rG  rF  r<  rC  rG  rI  rK  rN  rQ  rS  rW  rZ  ra  rf  rp  rt  r|  r  r„  r‡  rŒ  rŽ  r’  r”  r™  r�  rx  r¤  r§  r©  r¬  r®  r°  r³  rµ  rÆ  rÉ  rÏ  rÕ  rÜ  r   r*   r   ú<module>rê     s%  ðñó ã Û å )Ý 2ß G× GÝ 1Ý ß 6Ñ 6Ý 0ð
 5€
Ø4€Ø4€
óð& �m‰m€ð 0;óIò .ò|"òJò8Dòò.ò*Dð $Ð òò(ò&ò
=òGòZ	òò2	ñ �N J°·±¸"¿&¹&Ô Aòò	ò	ñ 
ˆ+˜iÔ(ñó )ðñ �O S¨+°r·w±wÔ ?òò!ò$;òDò0òlCò@òCò:òFò&'"òZBòò&:ò
;ò'ò	Iò:ò
;ò'ò
ò <ò

ò <òò0<òò2;ò
<ò)ò
*ò9ò?ò.Eò&ò$òT:ò
;ò:ò
;ò:ò;ò;ò;òBòBò;ò
ò8;ò
ò6;ò
#òR<ò<ò
Aò<<òCòBòCòBò0ò*0ò*0ò*0ò*,ò"+ò.)òòòòòòò.ò
ò5ò5ò?ò?ò?ò,?ò*5ò5ò?ò?ò?ò,?ò0ò
-ò
2òò
@ò
>ò
0ò
5òò
-ò
2òò$Eò
	Dò,ó:Er*   