o
    ‘i_’  ã                   @   s6"  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
mZ d dlmZ eddƒZi deeded	dgf“d
eeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	deded	dgf“deeded	deded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“de	ede	d	dgf“i deeded	deded	deded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“d eeded	dgf“d!eeded	dgf“d"eede	d	dgf“d#eeded	deded	dgf“d$eeded	deded	dgf“d%eeded	dgf“d&eeded	dgf“d'eeded	dgf“d(eeded	dgf“d)eeded	dgf“d*eeded	dgf“d+eeded	deded	dgf“d,eeded	deded	dgf“¥i d-eeded	deded	dgf“d.eeded	deded	dgf“d/eeded	deded	dgf“d0eeded	deded	dgf“d1eeded	deded	dgf“d2eeded	deded	dgf“d3eeded	deded	dgf“d4eeded	deded	dgf“d5eeded	deded	dgf“d6eeded	deded	dgf“d7eed8ed	dgf“d9eed8ed	dgf“d:eed8ed	dgf“d;eed8ed	dgf“d<eed8ed	dgf“d=eed8ed	dgf“d>eed8ed	dgf“¥i d?eed8ed	dgf“d@eed8ed	dgf“dAe	edBed	dgf“dCe	edBed	dgf“dDe	edBed	dgf“dEe	edBed	dgf“dFeed8ed	dgf“dGeed8ed	dgf“dHeed8ed	dgf“dIeed8ed	dgf“dJeed8ed	dgf“dKe	edBed	dgf“dLe	edBed	dgf“dMe	edBed	dgf“dNe	edBed	dgf“dOe	eded	dgf“dPeeded	dgf“¥i dQeeded	dgf“dReeded	dgf“dSeeded	dgf“dTeeded	dgf“dUeeded	dgf“dVeeded	dgf“dWeeded	dgf“dXeeded	dgf“dYeeded	dgf“dZeeded	dgf“d[eeded	dgf“d\eeded	dgf“d]eeded	dgf“d^eeded	dgf“d_eeded	dgf“d`eeded	dgf“daeeded	dgf“¥i dbeeded	dgf“dceeded	dgf“ddeeded	dgf“deeeded	dgf“dfeeded	dgf“dgeeded	dgf“dheeded	dgf“dieeded	dgf“djeedBed	dgf“dkeedBed	dgf“dleeded	deded	dgf“dmeeded	deded	dgf“dneeded	deded	dgf“doeeded	deded	dgf“dpeeded	dgf“dqeeded	dgf“dreeded	dgf“¥i dseeded	deded	dgf“dteeded	dgf“dueeded	dgf“dveeded	dgf“dweeded	deded	dgf“dxe
eded	dedyedzded{edzdgf“d|eeded	dgf“d}eeded	dgf“d~eeded	deded	dgf“deeded	deded	dgf“d€eeded	deded	dgf“deeded	deded	dgf“d‚eeded	deded	dgf“dƒeeded	deded	dgf“d„eeded	dgf“d…eede	d	dgf“d†eeded	dgf“¥i d‡eedBed	dgf“dˆeed‰ed	dgf“dŠeed‰ed	dgf“d‹eed‰ed	dgf“dŒeed‰ed	dgf“de	edBed	dgf“dŽe	edBed	dgf“de	edBed	dgf“de	edBed	dgf“d‘eed‰ed	dgf“d’eed‰ed	dgf“d“eed‰ed	dgf“d”eed‰ed	dgf“d•e	edBed	dgf“d–e	edBed	dgf“d—e	edBed	dgf“d˜e	edBed	dgf“¥i d™eeded	dgf“dšeedBed	dgf“d›eedBed	dgf“dœeeded	deded	deded	dgf“deeded	deded	deded	dgf“džeeded	deded	deded	dgf“dŸeeded	deded	deded	dgf“d eeded	deded	deded	dgf“d¡eeded	deded	deded	dgf“d¢eeded	deded	deded	dgf“d£eeded	deded	deded	dgf“d¤eeded	deded	deded	dgf“d¥eeded	deded	deded	dgf“d¦eeded	deded	dgf“d§eeded	deded	dgf“d¨eeded	deded	dgf“d©eeded	deded	dgf“¥i dªeeded	deded	dgf“d«eeded	deded	dgf“d¬eeded	deded	dgf“d­eeded	deded	dgf“d®eeded	deded	dgf“d¯eeded	deded	dgf“d°eeded	dgf“d±eeded	dgf“d²eeded	dgf“d³eeded	dgf“d´eeded	dedµedzdgf“d¶eeded	dedµedzdgf“d·eeded	dgf“d¸eeded	dgf“d¹eeded	dgf“dºeeded	dgf“d»eeded	dgf“¥i d¼eeded	deded	dgf“d½eeded	deded	dgf“d¾eeded	deded	dgf“d¿eeded	deded	dgf“dÀeeded	deded	dgf“dÁeedÂed	dgf“dÃeeded	deded	dgf“dÄeeded	deded	dgf“dÅeeded	deded	dgf“dÆeeded	dgf“dÇeeded	dgf“dÈeedÉed	dgf“dÊeed‰ed	dgf“dËeed‰ed	dgf“dÌeed‰ed	dgf“dÍeed‰ed	dgf“dÎeeded	dgf“¥i dÏeeded	dgf“dÐeeded	dgf“dÑeeded	dgf“dÒeeded	dgf“dÓeeded	dgf“dÔeeded	dgf“dÕeeded	dgf“dÖeeded	dgf“d×eeded	dgf“dØeedÙed	deded	dgf“dÚeedÙed	deded	dgf“dÛeeded	deded	dgf“dÜeeded	deded	dgf“dÝeeded	dgf“dÞeeded	dgf“dßeedàe	d	dgf“dáeedàe	d	dgf“¥i dâeedàe	d	dgf“dãeedàe	d	dgf“däeedàe	d	dgf“dåeedàe	d	dgf“dæeedàe	d	dgf“dçeedàe	d	dgf“dèe	ede	d	dgf“dée	ede	d	dede	d	dgf“dêe	ede	d	dede	d	dgf“dëe	eded	dgf“dìe	eded	dgf“díe	eded	dgf“dîe	eded	dgf“dïeeded	dgf“dðeeded	dgf“dñeeded	dgf“dòeeded	dgf“¥i dóeeded	dgf“dôeeded	dgf“dõeeded	dgf“döeeded	dgf“d÷eeded	dgf“døeeded	dgf“dùeede	d	dgf“dúeeded	deded	dgf“dûeeded	deded	dgf“düeeded	dedµedzdgf“dýeeded	dedµedzdgf“dþeeded	deded	dgf“dÿe	ede	d	dede	d	dgf“d eeded	deded	dgf“deeded	dgf“deeded	dgf“deeded	deded	dgf“¥i deeded	deded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“d	eeded	dgf“d
eede	d	dgf“deeded	deded	dgf“deeded	deded	dgf“deeded	deded	dgf“deeded	deded	dgf“deeded	dgf“deeded	dgf“deeded	deded	dgf“deeded	deded	dgf“deeded	deded	dededzdgf“deeded	deded	dededzdgf“¥i deeded	deded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	dgf“deeded	deded	deded	dgf“deeded	dgf“d eeded	deded	dgf“d!eeded	deded	dgf“d"eeded	dgf“d#eeded	dgf“d$eeded	dgf“d%e
eded	dedyedzded{edzdgf“d&e
eded	dedyedzded{edzdgf“d'e
eded	dedyedzded{edzdgf“¥i d(e
eded	dedyedzded{edzdgf“d)eeded	dgf“d*eeded	dgf“d+eeded	dgf“d,eeded	dgf“d-eeded	dgf“d.eeded	dgf“d/eeded	dgf“d0eeded	dgf“d1eeded	dgf“d2eeded	dgf“d3eeded	dgf“d4eeded	dgf“d5eeded	dgf“d6eeded	dgf“d7eeded	dgf“d8eeded	deded	dgf“¥i d9eedÉed	dgf“d:eed‰ed	dgf“d;eed‰ed	dgf“d<eed‰ed	dgf“d=eed‰ed	dgf“d>eedàe	d	dgf“d?eedàe	d	dgf“d@eedàe	d	dgf“dAeedàe	d	dgf“dBeedàe	d	dgf“dCeedàe	d	dgf“dDeedàe	d	dgf“dEeedàe	d	dgf“dFe	ede	d	dede	d	dgf“dGe	ede	d	dede	d	dgf“dHeeded	deded	dgf“dIeeded	deded	dgf“¥eeded	deded	dgfe	ede	d	dede	d	dgfeeded	deded	dgfeeded	deded	dgfeeded	deded	deded	dgfeeded	dgfeeded	dgfeeded	dgfeeded	dgfeedÙed	deded	dgfeedÙed	deded	dgfdJœ¥ZdKdL„ ZdMZdNZdOdP„ ZdQS (R  é    )Ú
namedtuple)Úindent)Úfloat32Úfloat64Úint16Úint32Úint64ÚvoidÚTuple)Ú	signatureÚarg)ÚnameÚtyÚis_ptrZ__nv_absÚxFZ	__nv_acosZ
__nv_acosfZ
__nv_acoshZ__nv_acoshfZ	__nv_asinZ
__nv_asinfZ
__nv_asinhZ__nv_asinhfZ	__nv_atanZ
__nv_atan2ÚyZ__nv_atan2fZ
__nv_atanfZ
__nv_atanhZ__nv_atanhfZ	__nv_brevZ__nv_brevllZ__nv_byte_permÚzZ	__nv_cbrtZ
__nv_cbrtfZ	__nv_ceilZ
__nv_ceilfZ__nv_clzZ
__nv_clzllZ__nv_copysignZ__nv_copysignfZ__nv_cosZ	__nv_cosfZ	__nv_coshZ
__nv_coshfZ
__nv_cospiZ__nv_cospifZ__nv_dadd_rdZ__nv_dadd_rnZ__nv_dadd_ruZ__nv_dadd_rzZ__nv_ddiv_rdZ__nv_ddiv_rnZ__nv_ddiv_ruZ__nv_ddiv_rzZ__nv_dmul_rdZ__nv_dmul_rnZ__nv_dmul_ruZ__nv_dmul_rzZ__nv_double2float_rdÚdZ__nv_double2float_rnZ__nv_double2float_ruZ__nv_double2float_rzZ__nv_double2hiintZ__nv_double2int_rdZ__nv_double2int_rnZ__nv_double2int_ruZ__nv_double2int_rzZ__nv_double2ll_rdÚfZ__nv_double2ll_rnZ__nv_double2ll_ruZ__nv_double2ll_rzZ__nv_double2lointZ__nv_double2uint_rdZ__nv_double2uint_rnZ__nv_double2uint_ruZ__nv_double2uint_rzZ__nv_double2ull_rdZ__nv_double2ull_rnZ__nv_double2ull_ruZ__nv_double2ull_rzZ__nv_double_as_longlongZ__nv_drcp_rdZ__nv_drcp_rnZ__nv_drcp_ruZ__nv_drcp_rzZ__nv_dsqrt_rdZ__nv_dsqrt_rnZ__nv_dsqrt_ruZ__nv_dsqrt_rzZ__nv_erfZ	__nv_erfcZ
__nv_erfcfZ__nv_erfcinvZ__nv_erfcinvfZ
__nv_erfcxZ__nv_erfcxfZ	__nv_erffZ__nv_erfinvZ__nv_erfinvfZ__nv_expZ
__nv_exp10Z__nv_exp10fZ	__nv_exp2Z
__nv_exp2fZ	__nv_expfZ
__nv_expm1Z__nv_expm1fZ	__nv_fabsZ
__nv_fabsfZ__nv_fadd_rdZ__nv_fadd_rnZ__nv_fadd_ruZ__nv_fadd_rzZ__nv_fast_cosfZ__nv_fast_exp10fZ__nv_fast_expfZ__nv_fast_fdividefZ__nv_fast_log10fZ__nv_fast_log2fZ__nv_fast_logfZ__nv_fast_powfZ__nv_fast_sincosfZsptrTZcptrZ__nv_fast_sinfZ__nv_fast_tanfZ	__nv_fdimZ
__nv_fdimfZ__nv_fdiv_rdZ__nv_fdiv_rnZ__nv_fdiv_ruZ__nv_fdiv_rzZ__nv_ffsZ
__nv_ffsllZ__nv_finitefZ__nv_float2half_rnZ__nv_float2int_rdÚinZ__nv_float2int_rnZ__nv_float2int_ruZ__nv_float2int_rzZ__nv_float2ll_rdZ__nv_float2ll_rnZ__nv_float2ll_ruZ__nv_float2ll_rzZ__nv_float2uint_rdZ__nv_float2uint_rnZ__nv_float2uint_ruZ__nv_float2uint_rzZ__nv_float2ull_rdZ__nv_float2ull_rnZ__nv_float2ull_ruZ__nv_float2ull_rzZ__nv_float_as_intZ
__nv_floorZ__nv_floorfZ__nv_fmaZ__nv_fma_rdZ__nv_fma_rnZ__nv_fma_ruZ__nv_fma_rzZ	__nv_fmafZ__nv_fmaf_rdZ__nv_fmaf_rnZ__nv_fmaf_ruZ__nv_fmaf_rzZ	__nv_fmaxZ
__nv_fmaxfZ	__nv_fminZ
__nv_fminfZ	__nv_fmodZ
__nv_fmodfZ__nv_fmul_rdZ__nv_fmul_rnZ__nv_fmul_ruZ__nv_fmul_rzZ__nv_frcp_rdZ__nv_frcp_rnZ__nv_frcp_ruZ__nv_frcp_rzZ
__nv_frexpÚbZ__nv_frexpfZ__nv_frsqrt_rnZ__nv_fsqrt_rdZ__nv_fsqrt_rnZ__nv_fsqrt_ruZ__nv_fsqrt_rzZ__nv_fsub_rdZ__nv_fsub_rnZ__nv_fsub_ruZ__nv_fsub_rzZ	__nv_haddZ__nv_half2floatÚhZ__nv_hiloint2doubleZ
__nv_hypotZ__nv_hypotfZ
__nv_ilogbZ__nv_ilogbfZ__nv_int2double_rnÚiZ__nv_int2float_rdZ__nv_int2float_rnZ__nv_int2float_ruZ__nv_int2float_rzZ__nv_int_as_floatZ__nv_isfinitedZ__nv_isinfdZ__nv_isinffZ__nv_isnandZ__nv_isnanfZ__nv_j0Z__nv_j0fZ__nv_j1Z__nv_j1fZ__nv_jnÚnZ__nv_jnfZ
__nv_ldexpZ__nv_ldexpfZ__nv_lgammaZ__nv_lgammafZ__nv_ll2double_rdÚlZ__nv_ll2double_rnZ__nv_ll2double_ruZ__nv_ll2double_rzZ__nv_ll2float_rdZ__nv_ll2float_rnZ__nv_ll2float_ruZ__nv_ll2float_rzZ
__nv_llabsZ
__nv_llmaxZ
__nv_llminZ__nv_llrintZ__nv_llrintfZ__nv_llroundZ__nv_llroundfZ__nv_logZ
__nv_log10Z__nv_log10fZ
__nv_log1pZ__nv_log1pfZ	__nv_log2Z
__nv_log2fZ	__nv_logbZ
__nv_logbfZ	__nv_logfZ__nv_longlong_as_doubleZ__nv_maxZ__nv_minZ	__nv_modfZ
__nv_modffZ
__nv_mul24Z__nv_mul64hiZ
__nv_mulhiZ__nv_nearbyintZ__nv_nearbyintfZ__nv_nextafterZ__nv_nextafterfZ__nv_normcdfZ__nv_normcdffZ__nv_normcdfinvZ__nv_normcdfinvfZ	__nv_popcZ__nv_popcllZ__nv_powZ	__nv_powfZ	__nv_powiZ
__nv_powifZ
__nv_rcbrtZ__nv_rcbrtfZ__nv_remainderZ__nv_remainderfZ__nv_remquoÚcZ__nv_remquofZquoZ
__nv_rhaddZ	__nv_rintZ
__nv_rintfZ
__nv_roundZ__nv_roundfZ
__nv_rsqrtZ__nv_rsqrtfZ__nv_sadZ__nv_saturatefZ__nv_scalbnZ__nv_scalbnfZ__nv_signbitdZ__nv_signbitfZ__nv_sinZ__nv_sincosZ__nv_sincosfZ__nv_sincospiZ__nv_sincospifZ	__nv_sinfZ	__nv_sinhZ
__nv_sinhfZ
__nv_sinpiZ__nv_sinpifZ	__nv_sqrtZ
__nv_sqrtfZ__nv_tanZ	__nv_tanfZ	__nv_tanhZ
__nv_tanhfZ__nv_tgammaZ__nv_tgammafZ
__nv_truncZ__nv_truncfZ
__nv_uhaddZ__nv_uint2double_rnZ__nv_uint2float_rdZ__nv_uint2float_rnZ__nv_uint2float_ruZ__nv_uint2float_rzZ__nv_ull2double_rdZ__nv_ull2double_rnZ__nv_ull2double_ruZ__nv_ull2double_rzZ__nv_ull2float_rdZ__nv_ull2float_rnZ__nv_ull2float_ruZ__nv_ull2float_rzZ__nv_ullmaxZ__nv_ullminZ	__nv_umaxZ	__nv_umin)Z__nv_umul24Z__nv_umul64hiZ__nv_umulhiZ__nv_urhaddZ	__nv_usadZ__nv_y0Z__nv_y0fZ__nv_y1Z__nv_y1fZ__nv_ynZ__nv_ynfc                 C   s^   dd„ |D ƒ}| t kr| d| ¡ t|ƒdkrt|ƒ} n|d } dd„ |D ƒ}t| g|¢R Ž S )z—
    Given the return type and arguments for a libdevice function, return the
    signature of the stub function used to call it from CUDA Python.
    c                 S   s   g | ]}|j r|j‘qS © ©r   r   ©Ú.0r   r   r   úh/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/cuda/libdevicefuncs.pyÚ
<listcomp>é  ó    z$create_signature.<locals>.<listcomp>r   é   c                 S   s   g | ]}|j s|j‘qS r   r   r   r   r   r    r!   ô  r"   )r	   ÚinsertÚlenr
   r   )ÚrettyÚargsZreturn_typesÚargtypesr   r   r    Úcreate_signatureâ  s   
r)   zc
See https://docs.nvidia.com/cuda/libdevice-users-guide/{func}.html

{param_types}
:rtype: {retty}
z1:param {a.name}: Argument.
:type {a.name}: {a.ty}c               	      sœ   t  ¡ D ]G\} \}}dd„ ‰ ‡ fdd„|D ƒ}d |¡}t||ƒ}d dd„ |D ƒ¡}tj||j| d}t|d	ƒ}td
| dd … › d|› d|› dƒ qd S )Nc                 S   s   | j dkrdS | j S )Nr   r   )r   )r   r   r   r    Úargname  s   
zgenerate_stubs.<locals>.argnamec                    s   g | ]	}|j sˆ |ƒ‘qS r   )r   ©r   Úa©r*   r   r    r!     s    z"generate_stubs.<locals>.<listcomp>z, Ú
c                 S   s   g | ]}|j stj|d ‘qS ))r,   )r   Úparam_templateÚformatr+   r   r   r    r!     s    )Úparam_typesr&   Úfuncz    zdef é   ú(z
):
    """z"""

)	Ú	functionsÚitemsÚjoinr)   Údocstring_templater0   Úreturn_typer   Úprint)r   r&   r'   ÚargnamesZargstrr   r1   Ú	docstringr   r-   r    Úgenerate_stubs  s   

ÿÿ
&ìr=   N)Úcollectionsr   Útextwrapr   Znumba.typesr   r   r   r   r   r	   r
   Znumba.core.typing.templatesr   r   r5   r)   r8   r/   r=   r   r   r   r    Ú<module>   sÖ   $
ÿþýüûúùø	÷
öþþõþþîçæåäãýþâ&Ú'Ù(Ø)×*Ö+Õ,þþÔ3þþÍ:Æ;Å<Ä=Ã>Â?Á@þþÀGþþ¹Nþþ²Uþþ«\þþ¤cþþjþþ–qþþxþþˆþþ þþ ù þþ ò þ ë þ ç þ ã !þ ß % Û & Ú ' Ù ( Ø ) × * Ö + Õ , Ô - Ó . Ò / Ñ 0 Ð 1 Ï 2 Î 3 Í 4 Ì 5 Ë 6 Ê 7þ É ; Å < Ä = Ã > Â ? Á @ À A ¿ B ¾ C ½ D ¼ E » F º G ¹ H ¸ I · J ¶ K µ L ´ M ³ N ² O ± P ° Q ¯ R ® S ­ T ¬ U « V ª Wþþ © ^þþ ¢ eþþ › lþþ ” s  t Œ u ‹ vþþ Š } ƒ ~ ‚    þþ  ÿ  ýþ  ø    ð    ï  þþ  î  þþ  ç   þþ  à  'þþ  Ù  .þþ  Ò  5þþ  Ë  <  Ä  =  Ã  >  Â  ?  Á  @  À  A  ¿  B  ¾  C  ½  D  ¼  E  »  F  º  G  ¹  H  ¸  I  ·  J  ¶  K  µ  L  ´  M  ³  N  ²  O  ±  P  °  Q  ¯  R  ®  Sýþ  ­  [ýþ  ¥  cýþ    kýþ  •  sýþ    {ýþ  …   ýþ   ü   ýþ   ô   ýþ   ì   ýþ   ä   $þþ   Ü   +þþ   Õ   2þþ   Î   9þþ   Ç   @þþ   À   Gþþ   ¹   Nþþ   ²   Uþþ   «   \þþ   ¤   cþþ      j   –   k   •   l   ”   m   “   nþþ   ’   uþþ   ‹   |   „   }   ƒ   ~   ‚              ÿ    þþ    þ    	þþ    ÷    þþ    ð    þþ    é    þþ    â    %    Û    &þþ    Ú    -þþ    Ó    4þþ    Ì    ;    Å    <    Ä    =    Ã    >    Â    ?    Á    @    À    A    ¿    B    ¾    C    ½    D    ¼    E    »    F    º    G    ¹    H    ¸    I    ·    J    ¶    K    µ    Lþþ    ´    Sþþ    ­    Zþþ    ¦    aþþ    Ÿ    h    ˜    i    —    j    –    k    •    l    ”    m    “    n    ’    o    ‘    p        q        r    Ž    sþþ        zþþ    †          þ          ý          ü          û          ú          ù          ø     	     ÷     
     ö          õ          ô          ó          ò          ñ     þ     ð     þþ     ì     þþ     å     "þþ     Þ     )þþ     ×     0þþ     Ð     7þþ     É     >þþ     Â     M     ³     N     ²     Oþþ     ±     Vþþ     ª     ]     £     ^     ¢     _     ¡     `           a     Ÿ     b     ž     cþþ          jþþ     –     qþþ          xþþ     ˆ                      ÿ      þþ      þ      	þþ      ÷      ýþ      ð      ýþ      è       þþ      à      '      Ù      (      Ø      )      ×      *      Ö      +      Õ      ,      Ô      -ýþ      Ó      5      Ë      6þþ      Ê      =þþ      Ã      D      ¼      E      »      F      º      Gýþ      ¹      Oýþ      ±      Wýþ      ©      _ýþ      ¡      g      ™      h      ˜      i      —      j      –      k      •      l      ”      m      “      n      ’      o      ‘      p            q            r      Ž      s            t      Œ      u      ‹      vþþ      Š      }      ƒ      ~      ‚                          ÿ              þ              ý              ü              û              ú              ù              ø       	       ÷       
       ö       þþ       õ       þþ       î       þþ       ç        þþ       à       (þþþþþþþþýþþþþþ       
ª       `