o
    U=ºidÒ  ã                   @   sl  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d dlT e j dd	¡d
kZesQedƒ‚e j dd
¡d
kZeo]eZe j dd
¡d	kZG dd„ dƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z d d!„ Z!d"d#„ Z"d$d%„ Z#d&d'„ Z$d.d)d*„Z%e&d+kr´d d,l'm(Z( e(e%d-� dS dS )/é    N)Újoin)Úlog)Únewer)Úget_config_var)Únpy_load_module)Ú*ÚNPY_RELAXED_STRIDES_CHECKINGÚ1Ú0z}Support for NPY_RELAXED_STRIDES_CHECKING=0 has been remove as of NumPy 1.23.  This error will eventually be removed entirely.ÚNPY_RELAXED_STRIDES_DEBUGÚNPY_DISABLE_SVMLc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚCallOnceOnlyc                 C   s   d | _ d | _d | _d S ©N)Ú_check_typesÚ_check_ieee_macrosÚ_check_complex)Úself© r   úVC:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\numpy/core/setup.pyÚ__init__/   s   
zCallOnceOnly.__init__c                 O   ó>   | j d u rt|i |¤Ž}t |¡| _ |S t t | j ¡¡}|S r   )r   Úcheck_typesÚpickleÚdumpsÚcopyÚdeepcopyÚloads©r   ÚaÚkwÚoutr   r   r   r   4   ó   
ÿzCallOnceOnly.check_typesc                 O   r   r   )r   Úcheck_ieee_macrosr   r   r   r   r   r   r   r   r   r"   <   r!   zCallOnceOnly.check_ieee_macrosc                 O   r   r   )r   Úcheck_complexr   r   r   r   r   r   r   r   r   r#   D   r!   zCallOnceOnly.check_complexN)Ú__name__Ú
__module__Ú__qualname__r   r   r"   r#   r   r   r   r   r   .   s
    r   c                  C   s*   t rdS t ¡ } d| v od| v otjdkS )zZSVML library is supported only on x86_64 architecture and currently
    only on linux
    FÚx86_64Úlinuxl        N)r   Ú	sysconfigÚget_platformÚsysÚmaxsize)Úplatformr   r   r   Úcan_link_svmlL   s   ÿþr.   c                 C   s   t j | d ¡stdƒ‚dS )Nz
/README.mdzHMissing `SVML` submodule! Run `git submodule update --init` to fix this.T)ÚosÚpathÚexistsÚRuntimeError)Zsvmlpathr   r   r   Úcheck_svml_submoduleW   s   r3   c                   C   s"   t jdkrtj t jd¡S tdƒS )z return path where libpython* is.Úwin32ÚlibsZLIBDIRN)r+   r-   r/   r0   r   Úprefixr   r   r   r   r   Úpythonlib_dir]   s   
r7   c                   C   s
   t jdkS )zTReturn True if the NPY_NO_SIGNAL symbol must be defined in configuration
    header.r4   N)r+   r-   r   r   r   r   Úis_npy_no_signald   s   
r8   c                   C   s
   dt jv S )zxReturn True if the NPY_NO_SMP symbol must be defined in public
    header (when SMP support cannot be reliably enabled).Z	NPY_NOSMPN)r/   Úenvironr   r   r   r   Úis_npy_no_smpi   s   
	r:   c                 C   s\   ddl m} |ƒ }td|tjtjf ƒ |dkr|  d¡ |dks%|dkr,|  d¡ d S d S )Nr   )Úget_build_architecturez3BUILD_ARCHITECTURE: %r, os.name=%r, sys.platform=%rZAMD64ZDISTUTILS_USE_SDKZIntelZFORCE_NO_LONG_DOUBLE_FORMATTING)Únumpy.distutils.misc_utilr;   Úprintr/   Únamer+   r-   Úappend)Zdeflistr;   r   r   r   r   Úwin32_checkst   s   ÿ
ÿr@   c                    sî  ddgf‡‡fdd„	‰ dgf‡‡‡fdd„	‰dgf‡ ‡‡fdd„	}ˆt ƒs-td	tt ƒ ƒ‚tD ]}ˆjt|ƒd
dgd�rK|tv rFt |¡ q/t |¡ q/|tƒ |tdgd� |t	dgd� t
D ]!}ˆjddd|gd�r�| dd¡ tjjd¡}ˆ t|ƒdf¡ q`g d¢}|t|d�s–d|d< |t|d� tD ]]}d }	t|ƒdkr³|d |d t|d ƒ}}
}n1t|ƒdkrÏ|d |d |d gt|d ƒf\}}
}	}n|d |d |d gt|d ƒf\}}
}	}ˆj|dd|
|	d�rõˆ |df¡ q˜tD ]9\}}ˆ ||¡�r1ˆ t|ƒdf¡ |dk�r1tjdv �r1ˆ ¡ �r1ˆ dd¡�s1|j dd „ td!d"ƒD ƒ¡ qøtD ]\}}}}ˆ ||||¡�rLˆ t|ƒdf¡ �q4tD ]}ˆ  |¡�rk| d#d¡ d$d¡}ˆ t|ƒdf¡ �qP|t!ƒ |t"ƒ d S )%NFzfeature_detection_math.hc                    s   ˆ j | ˆ|dt|  |d�S )NT©Ú	librariesÚdeclÚcallÚ	call_argsÚheaders)Ú
check_funcÚFUNC_CALL_ARGS)Ú	func_namerC   rF   )ÚconfigÚmathlibsr   r   rG   …   s   úz+check_math_capabilities.<locals>.check_funcc                    sV   t dd„ | D ƒƒ}t dd„ | D ƒƒ}ˆ j| ˆd|||d�}|r)ˆ dd„ | D ƒ¡ |S )Nc                 S   ó   g | ]}|d f‘qS ©Tr   ©Ú.0Úfr   r   r   Ú
<listcomp>”   ó    zEcheck_math_capabilities.<locals>.check_funcs_once.<locals>.<listcomp>c                 S   s   g | ]}|t | f‘qS r   )rH   rN   r   r   r   rQ   •   ó    FrA   c                 S   ó   g | ]}t |ƒd f‘qS ©é   ©Ú	fname2defrN   r   r   r   rQ   Ÿ   rS   )ÚdictÚcheck_funcs_onceÚextend)Ú
funcs_namerF   rD   rE   Úst)rJ   rK   Úmoredefsr   r   rZ   “   s   úz1check_math_capabilities.<locals>.check_funcs_oncec                    s<   ˆ| |d�s| D ]}ˆ ||d�rˆ  t|ƒdf¡ qdS dS )N©rF   rV   r   ©r?   rX   )r\   rF   rP   )rG   rZ   r^   r   r   Úcheck_funcs¢   s   €z,check_math_capabilities.<locals>.check_funcszNOne of the required function to build numpy is not available (the list is %s).úPython.húmath.hr_   zfeature_detection_stdio.hzfeature_detection_misc.hÚ )rC   rD   rF   Ú.Ú_rV   )zstdlib.hz	xlocale.hzfeature_detection_locale.hzlocale.hé   r   é   T)rC   rD   rE   rF   Zattribute_target_avx512f)r4   Úcygwiné   é   c                 S   ó   g | ]}d | ‘qS )z-ffixed-xmm%sr   )rO   Únr   r   r   rQ   ï   rR   z+check_math_capabilities.<locals>.<listcomp>é   é    ú(ú))#ZMANDATORY_FUNCSÚSystemErrorÚstrZOPTIONAL_STDFUNCS_MAYBEÚ
check_declrX   ZOPTIONAL_STDFUNCSÚremoveZOPTIONAL_FILE_FUNCSZOPTIONAL_MISC_FUNCSZOPTIONAL_HEADERSrG   Úreplacer/   r0   Úsepr?   ZOPTIONAL_LOCALE_FUNCSZOPTIONAL_INTRINSICSÚlenZOPTIONAL_FUNCTION_ATTRIBUTESÚcheck_gcc_function_attributer+   r-   Zcheck_compiler_gccZcheck_gcc_version_at_leastÚextra_compile_argsr[   ÚrangeZ,OPTIONAL_FUNCTION_ATTRIBUTES_WITH_INTRINSICSZ,check_gcc_function_attribute_with_intrinsicsZOPTIONAL_VARIABLE_ATTRIBUTESZcheck_gcc_variable_attributeZC99_FUNCS_SINGLEZC99_FUNCS_EXTENDED)rJ   Úextr^   rK   ra   rP   ÚhZlocale_headersÚtuprF   ÚargsÚmÚdecÚfnÚcodeÚheaderr   )rG   rZ   rJ   rK   r^   r   Úcheck_math_capabilities„   s†   ýÿ

ÿ
€€",*ÿ€
ÿ
þÿ€
ÿ€€r…   c                    sÎ   g ‰g }zt  ¡ d dkrtjddd� ˆ|fW S W n	 ty#   Y nw ˆ  d¡}|rcˆ d¡ | d¡ tD ]}ˆ j|dgd	�}|rN| d
t	|ƒ df¡ q7‡ ‡‡fdd„}|dƒ |dƒ |dƒ ˆ|fS )Nr   ZInterixz+Disabling broken complex support. See #1365rg   )Ú
stacklevelz	complex.h)ZHAVE_COMPLEX_HrV   )ZNPY_USE_C99_COMPLEXrV   r_   zNPY_HAVE_%srV   c                    s€   ‡ fdd„t D ƒ}tdd„ |D ƒƒ}ˆj|||ˆd�s4|D ]}ˆj|ddˆd�r1ˆ t|ƒdf¡ qd S ˆ dd„ |D ƒ¡ d S )Nc                    s   g | ]}|ˆ  ‘qS r   r   rN   ©Úprecr   r   rQ     rR   z5check_complex.<locals>.check_prec.<locals>.<listcomp>c                 S   rL   rM   r   rN   r   r   r   rQ     rR   )rD   rC   rB   TrV   c                 S   rT   rU   rW   rN   r   r   r   rQ      rS   )ZC99_COMPLEX_FUNCSrY   rZ   rG   r?   rX   r[   )rˆ   ÚflistrC   rP   ©rJ   rK   Úprivr‡   r   Ú
check_prec  s   
ÿ
ÿ€ýz!check_complex.<locals>.check_precrd   rP   Úl)
r/   ÚunameÚwarningsÚwarnÚ	ExceptionÚcheck_headerr?   ZC99_COMPLEX_TYPESZ
check_typeZtype2def)rJ   rK   Úpubr]   ÚtrŒ   r   rŠ   r   r#   ÿ   s0   
þþ


€r#   c                    s²   g ‰ g ‰g }‡ ‡fdd„}g d¢}|D ]-}t d| ƒ}| j|ddgd�}|r;| j|ddgd�r:ˆ dt d| ƒ ¡ q| |¡ q|D ]}| j|ddgd�}|rT||ƒ qCˆ ˆfS )	Nc                    s,   ˆ   td|  ƒ¡ ˆ  dtd|  ƒ ¡ d S )Núdecl_%súNPY_%sr`   )rP   ©r‹   r“   r   r   Ú	_add_decl.  s   z$check_ieee_macros.<locals>._add_decl)ÚisnanÚisinfZsignbitÚisfiniter•   rb   rc   r_   r–   )rX   rt   Zcheck_macro_truer?   )rJ   Úmacrosr˜   Z_macrosrP   Z	py_symbolÚalready_declaredr]   r   r—   r   r"   (  s.   ÿÿ€€r"   c                 C   sj  g }g }dgdgddgdgdgg d¢ddgdgdgddgdœ
}|   d¡}|s6d}dtjv r/d	}td
 |¡ƒ‚|   d¡}|rG| d¡ | d¡ |   d¡}|rX| d¡ | d¡ dD ]@}	| jdt|	ƒ dgd�}|rz| dt|	ƒ dt|	ƒ f¡ qZ| j|	||	 d�}|dkr•| dt|	ƒ d| f¡ qZtd|	 ƒ‚dD ]n}	| jdt|	ƒ dgd�}
| j|	||	 d�}|dkrÙ| dt|	ƒ d| f¡ |
sØ|	dksØ| dt|	ƒ d| f¡ ntd|	 ƒ‚d|	|	f }| j|dd„ ||	 D ƒd�}|dk�r| dt|	ƒ d| f¡ q�td| ƒ‚dD ]6}	| j|	dgt	ƒ g||	 d �}|dk�r?| dt|	ƒ d| f¡ | dt|	ƒ d| f¡ �qtd|	 ƒ‚| jd!dgd��r¤| jd!dgt	ƒ g|d! d �}|dk�r|| dtd!ƒ d| f¡ | dtd!ƒ d| f¡ ntdd! ƒ‚| jd"|d" d�}|dk�rž| dtd"ƒ d| f¡ ntdd" ƒ‚| jd#dgd��s±t
d$ƒ‚||fS )%Nrg   rk   rj   )rn   é   rj   )
ÚshortÚintÚlongÚfloatÚdoubleúlong doubleÚPy_intptr_tÚPY_LONG_LONGú	long longÚoff_trb   ÚpythonZ__pypy__ÚpypyzICannot compile 'Python.h'. Perhaps you need to install {0}-dev|{0}-devel.zendian.h)ZHAVE_ENDIAN_HrV   )ZNPY_HAVE_ENDIAN_HrV   zsys/endian.h)ZHAVE_SYS_ENDIAN_HrV   )ZNPY_HAVE_SYS_ENDIAN_HrV   )rŸ   r    r¡   z	SIZEOF_%sr_   zNPY_SIZEOF_%s)Úexpectedr   z%dzChecking sizeof (%s) failed !)r¢   r£   r¤   r¤   zstruct {%s __x; %s __y;}c                 S   s   g | ]}d | ‘qS )rg   r   )rO   Úxr   r   r   rQ   ‡  rR   zcheck_types.<locals>.<listcomp>zNPY_SIZEOF_COMPLEX_%s)r¥   r¨   )rF   Úlibrary_dirsr«   r¦   r§   ZCHAR_BITzCConfig wo CHAR_BIT is not supported, please contact the maintainers)r’   r+   Úbuiltin_module_namesrr   Úformatr?   rt   Zsym2defZcheck_type_sizer7   r2   )Ú
config_cmdr|   Ú	build_dirZprivate_definesZpublic_definesr«   Úresultr©   ÚresÚtyper�   Zcomplex_defr   r   r   r   M  sž   ý

þ





 ÿ€ÿ

þ

þ
ÿ
ÿr   c                 C   sd   g }g dgdgg}t j d¡}|r| d| d¡¡ |D ]}| jd|ddd	d
�r-|} |S qtdƒ‚)Nr€   ZcpmlÚMATHLIBr   ú,r   r
   zdouble log(double);T)rB   rE   rC   rD   zKmath library missing; rerun setup.py after setting the MATHLIB env variable)r/   r9   ÚgetÚinsertÚsplitrG   r2   )r°   rK   Zmathlibs_choicesZmathlibr5   r   r   r   Úcheck_mathlib²  s(   ûò
ÿrº   c                 C   s   d}|   |d¡r
|S dS )zSReturn the define value to use for NPY_VISIBILITY_HIDDEN (may be empty
    string).z%__attribute__((visibility("hidden")))Zhidemerd   N)ry   )rJ   Úhider   r   r   Úvisibility_defineË  s   r¼   rd   c                      s  ddl m}m‰m} ddlm}m}m} ddlm	‰  ddl
m} |d| |ƒ‰ˆj}t|dƒ‰|r6t dt¡ ttˆƒ tˆd	ƒ‰ˆˆjd
ƒ}	|d |	 d¡¡ˆƒ‰d‰tƒ ‰‡‡‡fdd„}
‡‡‡fdd„}‡‡‡fdd„}|dƒ}|dƒ}ˆ t|ddƒ¡ ˆ t|dƒ¡ ˆ t|ƒ¡ ˆ d¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ tddƒ¡ ˆ dg¡ ˆ dg¡ tjd d… d kr×ˆ d!g¡ nˆ d"g¡ ˆ d#g¡ ˆ d$g¡ ˆj ˆ d%¡¡ tddd&ƒtd%d'd(ƒtˆd)ƒg}td*tj j!fd+gƒ‰‡ ‡‡fd,d-„}tddd.ƒtddd/ƒtddd0ƒtddd1ƒtddd2ƒg}d3d4„ }ˆj"d||g d5g |gd6œd7� ˆ #d8d9ˆ¡ ˆ #d:d9ˆ¡ ˆj$d;tddd<ƒtddd=ƒtddd>ƒtddd?ƒgtddd@ƒtdddAƒtdddBƒtdddCƒgdgdD� tdddEdFƒtdddGƒtdddHƒtdddIƒtdddJƒtddd@ƒtdddAƒtdddKƒtdddLƒtdddMƒtdddNƒtdddCƒtdddOƒtdddBƒtdddPƒtdddQƒtdddRƒtdddSƒtdddTƒtdddUƒtdddVƒtdddWƒtdddXdYƒg}tdddZƒtddd=ƒtddd>ƒtddd?ƒtddd[ƒtdddRƒtddd\ƒtddd]ƒtddd^ƒtddd_ƒg
}tj% &d`da¡dak�r>|dbdcƒ}n|dddƒ}|�oMde| &dfg ¡v }|�rc|}| tdddgƒtdddhƒg¡ ni }g tdddiƒ‘tdddjƒ‘tdddkƒ‘tdddlƒ‘tdddmƒ‘tdddnƒ‘tdddoƒ‘tdddpƒ‘tdddqƒ‘tdddrƒ‘tdddsƒ‘tdddtƒ‘tddduƒ‘tdddvƒ‘tdddwƒ‘tdddxƒ‘tdddyƒ‘tdddzƒ‘tddd{ƒ‘tddd|ƒ‘tddd}ƒ‘tddd~ƒ‘tdddƒ‘tddd€ƒ‘tddd�ƒ‘tddd‚ƒ‘tdddƒƒ‘tddd„ƒ‘tddd…ƒ‘tddd†ƒ‘tddd‡ƒ‘tdddˆƒ‘tddd‰ƒ‘tdddŠƒ‘tddd‹ƒ‘tdddŒƒ‘tddd�ƒ‘tdddŽƒ‘tddd�d�ƒ‘td%d'djƒ‘td%d'd‘ƒ‘td%d'd’ƒ‘td%d'd“ƒ‘td%d'd”ƒ‘td%d'd•ƒ‘td%d'd–ƒ‘td%d'd—ƒ‘td%d'd˜ƒ‘td%d'd™ƒ‘td%d'dšƒ‘td%d'd›ƒ‘td%d'dœƒ‘td%d'd�ƒ‘td%d'džƒ‘td%d'dŸƒ‘td%d'd ƒ‘| }g tddd¡ƒ‘tddd¢ƒ‘tddd£ƒ‘tdddkƒ‘tddd¤ƒ‘tddd¥ƒ‘tddd¦ƒ‘tddd§ƒ‘tddd¨ƒ‘tddd©ƒ‘tdddªƒ‘tddd«ƒ‘tddd¬ƒ‘tddd­ƒ‘tddd®ƒ‘tddd¯ƒ‘tddd°ƒ‘tddd±ƒ‘tddd²ƒ‘tddd³ƒ‘tddd´ƒ‘tdddµƒ‘tddd¶ƒ‘tddd·ƒ‘tddd¸ƒ‘tddd¹ƒ‘tdddºƒ‘tddd»ƒ‘tddd¼ƒ‘tddd½ƒ‘tddd¾ƒ‘tddd¿ƒ‘tdddÀƒ‘tdddÁƒ‘tdddÂƒ‘tdddÃƒ‘tdddÄƒ‘tdddÅƒ‘tdddÆƒ‘tdddÇƒ‘tdddÈƒ‘tdddÉƒ‘tdddÊƒ‘tdddËƒ‘tdddÌƒ‘tdddÍƒ‘tdddÎƒ‘tdddÏƒ‘tdddÐƒ‘tdddÑƒ‘tdddÒƒ‘tdddÓƒ‘tdddÔƒ‘tdddÕƒ‘tdddÖƒ‘tddd×ƒ‘tdddØƒ‘tdddÙƒ‘tdddÚƒ‘tdddÛƒ‘tdddÜƒ‘tdddÝƒ‘tdddÞƒ‘tdddßƒ‘tdddàƒ‘tdddáƒ‘tdddâƒ‘tdddãƒ‘tddd�däƒ‘tddd�dåƒ‘tddd�dæƒ‘tddd�dçƒ‘tddd�dèƒ‘tddd�déƒ‘tddd�dêƒ‘tddd�dëƒ‘}‡‡‡fdìdí„}‡‡‡‡fdîdï„}tdddðƒtdddñƒtdddòƒtdddóƒtdddôƒtdddõƒtdddöƒtddd÷ƒtdddøƒtdddùƒtdddúƒtdddûƒtdddüƒtdddýƒtdddþƒtdddÿƒtdd�d ƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�dƒtdd�d	ƒtdd�d
ƒtdd�dƒtdd�dƒg}ˆtd%d'd—ƒtd%d'd˜ƒtdddqƒtddd†ƒtdddRƒtdddóƒtdd�dƒtˆ�dƒtˆ�dƒg
}td'ddd�dƒ}g }�d‰	t'ƒ �r t(|ƒ�r t)j)|�d �d�d�}‡	f�d�d„|D ƒ}| *¡  ˆj$�d�d|| | |
||tˆ�dƒt�dƒ|||g || | | dg||ˆ �d� ˆj$�dtdd�dƒtdd�dƒtddd_ƒg�d� ˆj$�d tdd�d!ƒg�d� ˆj$�d"tdd�d#ƒg�d� ˆj$�d$tdd�d%ƒg�d� ˆj$dtddd_ƒtdd�d&ƒtdd�d'ƒtdd�d(ƒtdd�d)ƒgtdddWƒtdddXdYƒtdd�d*ƒtdd�d'ƒtdd�d(ƒtdd�d+ƒtdd�d,ƒtdd�d-ƒtdd�d.ƒg	�d/� ˆ +�d0¡ ˆ �d1¡ ˆ �d2¡ ˆ ,�d3¡ ˆ -¡  ˆS (4  Nr   )ÚConfigurationÚdot_joinÚexec_mod_from_location)Úget_infoÚblas_opt_infoÚlapack_opt_info)ÚNPY_CXX_FLAGS)ÚreleaseÚcoreZcode_generatorsÚerrorzgenerate_umath.pyÚgenerate_umathrf   re   zinclude/numpyc                    s$  t |ˆdƒ}tj |¡}tj |¡st |¡ tt|ƒ�r8ˆ ¡ }t	 
d|¡ ˆ  || |¡\}}t|ƒ}| dd  |¡f¡ t|| ||ƒ | ˆ  |¡d ¡ | ˆ  ||¡d ¡ tƒ rb| d¡ tjdksltjdkrpt|ƒ | d	| ¡ f¡ | ¡ }tƒ r…| d
¡ tr�| d¡ n| d¡ t|ƒ}	| d|	 df¡ t|ƒr·| d¡ | d¡ | d¡ | d¡ t|dƒ�J}
|D ]}t|tƒrÎ|
  d| ¡ q¿|
  d|d |d f ¡ q¿|
  d¡ |dkrë|
  d¡ n|
  d| ¡ |
  d¡ |
  t! "d¡¡ W d   ƒ n	1 �s
w   Y  t	 
d| ¡ t|ƒ�}
t	 
|
 #¡ ¡ W d   ƒ n	1 �s-w   Y  t	 
d¡ n:g }t|ƒ�+}
|
D ] }d}| $|¡�r`|t%|ƒd …  &¡ }|�r`| | 'd¡¡ �qAW d   ƒ n	1 �smw   Y  t(| dƒ�r~| j) |¡ tj |¡}|ˆj*v�r�ˆj* |¡ |S ) Nzconfig.húGenerating %srµ   r¶   r   Z__NPY_PRIVATE_NO_SIGNALr4   ÚntZNPY_RESTRICT)ZNPY_CAN_LINK_SVMLrV   ©r   rV   )r   r   zHAVE_LDOUBLE_%srV   Z$NPY_DO_NOT_OPTIMIZE_LONG_right_shiftZ%NPY_DO_NOT_OPTIMIZE_ULONG_right_shiftZ(NPY_DO_NOT_OPTIMIZE_LONGLONG_right_shiftZ)NPY_DO_NOT_OPTIMIZE_ULONGLONG_right_shiftÚwú#define %s
ú#define %s %s
z#ifndef __cplusplus
Úinlinez/* #undef inline */
z#define inline %s
z#endif
zÔ
                    #ifndef NUMPY_CORE_SRC_COMMON_NPY_CONFIG_H_
                    #error config.h should never be included directly, include npy_config.h instead
                    #endif
                    úFile: %sÚEOFz#define MATHLIBrB   )+r   r/   r0   Údirnamer1   Úmakedirsr   Ú__file__Úget_config_cmdr   Úinfor   rº   r?   r…   r[   r"   r#   r8   r+   r-   r>   r@   Zcheck_restrictZcheck_inliner.   r   Z check_long_double_representationZ-check_for_right_shift_internal_compiler_errorÚopenÚ
isinstancers   ÚwriteÚtextwrapÚdedentÚreadÚ
startswithrx   Ústripr¹   ÚhasattrrB   Únumpy_include_dirs)r|   r±   ÚtargetÚdr°   r^   ÚignoredrK   rÎ   ÚrepÚtarget_fÚlineÚsÚvalueZincl_dir©ÚcocacherJ   Ú
header_dirr   r   Úgenerate_config_hð  s‚   










ï
ÿ
€ûÿz(configuration.<locals>.generate_config_hc           
         s  ˆ  t|ddƒ¡ ˆ  t|ddƒ¡ t|ˆdƒ}tj |¡}tj |¡s)t |¡ tt|ƒ�rˆ 	¡ }t
 d|¡ ˆ  || |¡\}}tƒ rJ| d¡ tƒ rS| d¡ n| d¡ t|ƒ}| ˆ  |¡d	 ¡ | ˆ  ||¡d	 ¡ trx| d
¡ |jddgd�r…| d¡ t|ƒ}| d|f¡ | ddt f¡ | ddt f¡ t|dƒ�/}	|D ]}t|tƒr¹|	 d| ¡ qª|	 d|d |d	 f ¡ qª|	 t d¡¡ W d  ƒ n1 sÙw   Y  t
 d| ¡ t|ƒ�}	t
 |	 ¡ ¡ W d  ƒ n1 sûw   Y  t
 d¡ ˆ  ˆ|f¡ |S )z@Depends on config.h: generate_config_h has to be called before !ÚsrcÚcommonÚnpymathz_numpyconfig.hrÈ   )ZNPY_NO_SIGNALrV   )Ú
NPY_NO_SMPrV   )rï   r   rV   rÊ   ZPRIdPTRz
inttypes.hr_   )ZNPY_USE_C99_FORMATSrV   ZNPY_VISIBILITY_HIDDENZNPY_ABI_VERSIONz0x%.8XZNPY_API_VERSIONrË   rÌ   rÍ   r   z”
                    #ifndef __STDC_FORMAT_MACROS
                    #define __STDC_FORMAT_MACROS 1
                    #endif
                    NrÏ   rÐ   )!Úadd_include_dirsr   r/   r0   rÑ   r1   rÒ   r   rÓ   rÔ   r   rÕ   r   r8   r?   r:   rº   r[   r"   r#   r   rt   r¼   ZC_ABI_VERSIONÚC_API_VERSIONrÖ   r×   rs   rØ   rÙ   rÚ   rÛ   Úadd_data_files)
r|   r±   rà   rá   r°   râ   r^   rK   Zhidden_visibilityrä   rè   r   r   Úgenerate_numpyconfig_hZ  sP   





ø
ÿ
z-configuration.<locals>.generate_numpyconfig_hc                    s   ‡‡‡‡ fdd„}|S )Nc                    s|   t ˆ ˆd ƒ}tj dˆ ¡ ztˆƒ}t d|¡ | tj  |ˆ¡¡\}}}W tjd= ntjd= w ˆ 	ˆ|fˆ|f¡ |fS )Nz.pyr   zexecuting %s)
r   r+   r0   r¸   Ú
__import__r   rÕ   Úgenerate_apir/   rò   )r|   r±   Úscriptr€   Zh_fileZc_fileZdoc_file)Úcodegen_dirrJ   rê   Úmodule_namer   r   rõ   Ÿ  s   
ÿz>configuration.<locals>.generate_api_func.<locals>.generate_apir   )rø   rõ   )r÷   rJ   rê   )rø   r   Úgenerate_api_funcž  s   z(configuration.<locals>.generate_api_funcÚgenerate_numpy_apiÚgenerate_ufunc_apirì   rí   rî   Z
multiarrayZumathZnpysortZ_simd)ZNPY_INTERNAL_BUILDr	   )ZHAVE_NPY_CONFIG_Hr	   rh   Úaix)Z_LARGE_FILESN)Z_FILE_OFFSET_BITSÚ64)Z_LARGEFILE_SOURCEr	   )Z_LARGEFILE64_SOURCEr	   Úincludez
_signbit.cZnumpyz	*object.hz	genapi.pyrw   )Úpkgnamez
numpy.corec                     sê   ˆ  ¡ }dD ]L\}}}|dk}|r-|j}| ¡ |_t|jdƒr-|jj ˆ ¡ |jj ˆ ¡ |j||d�}|sMd|j_|j||d� td| 	¡ › d|› �ƒ‚|rR||_qt
|ƒ}d d	d
„ |D ƒ¡}	d dd
„ |D ƒ¡}
|	ˆd< |
ˆd< d S )N))Úczint main(void) { return 0;}rd   )úc++z;int main(void){ auto x = 0.0; return static_cast<int>(x); }zFnote: A compiler with support for C++11 language features is required.r  Úcompiler)ÚlangTz'Broken toolchain: cannot link a simple z
 program. ú c                 S   rl   )z-l%sr   ©rO   r�   r   r   r   rQ   þ  rR   z;configuration.<locals>.get_mathlib_info.<locals>.<listcomp>c                 S   rl   )z%s.libr   r  r   r   r   rQ   ÿ  rR   Zposix_mathlibZmsvc_mathlib)rÔ   r  Zcxx_compilerrÞ   r[   Úcompiler_soZtry_linkÚverboser2   Úupperrº   r   )r   r°   r  Z	test_codeZnoteZis_cppZbk_cr]   ZmlibsZ
posix_mlibZ	msvc_mlib)rÃ   rJ   Ú
subst_dictr   r   Úget_mathlib_infoÑ  s4   
ÿÿ€z'configuration.<locals>.get_mathlib_infoznpy_math_internal.h.srcz
npy_math.czieee754.c.srcznpy_math_complex.c.srczhalffloat.cc                 S   s2   | j jdkrg S dg}| j dg¡r| d¡ |S )zø Add flags if we are using MSVC compiler

        We can't see `build_cmd` in our scope, because we have not initialized
        the distutils build command, so use this deferred calculation to run
        when we are building the library.
        Zmsvcz/GL-z-d2VolatileMetadata-N)r  Úcompiler_typeZcompiler_optZcc_test_flagsr?   )Z	build_cmdÚflagsr   r   r   Úopts_if_msvc  s   
z#configuration.<locals>.opts_if_msvcÚlib)Úinclude_dirsZextra_compiler_args)ÚsourcesZinstall_dirZ
build_infoznpymath.ini.inzlib/npy-pkg-configzmlib.ini.inZ_multiarray_testsz_multiarray_tests.c.srczmem_overlap.cznpy_argparse.cznpy_hashtable.czmem_overlap.hznpy_argparse.hznpy_hashtable.hznpy_extint128.h)r  ÚdependsrB   Zdlpackzdlpack.hzarray_assign.hzbinop_override.hzcblasfuncs.hzlowlevel_strided_loops.hznpy_cblas.hznpy_config.hznpy_ctypes.hznpy_dlpack.hznpy_import.hznpy_longdouble.hz
npy_svml.hztempl_common.h.srczucsnarrow.hzufunc_override.hzumathmodule.hz	numpyos.hznpy_cpu_dispatch.hZsimdzsimd.hzarray_assign.cznpy_longdouble.czucsnarrow.czufunc_override.cz	numpyos.cznpy_cpu_features.cZNPY_USE_BLAS_ILP64r
   Zblas_ilp64_optrg   Zblas_opt)Z
HAVE_CBLASNÚdefine_macroszcblasfuncs.czpython_xerbla.czabstractdtypes.hzarrayobject.hzarraytypes.h.srczarrayfunction_override.hzarray_coercion.hzarray_method.hznpy_buffer.hzcalculation.hzcommon.hzcommon_dtype.hzconvert_datatype.hz	convert.hzconversion_utils.hzctors.hzdescriptor.hzdtypemeta.hzdtype_transfer.hz	dragon4.hzeinsum_debug.hzeinsum_sumprod.hzexperimental_public_dtype_api.hzgetset.hzhashdescr.hziterators.hzlegacy_dtype_implementation.hz	mapping.hz	methods.hzmultiarraymodule.hznditer_impl.hznumber.hz
refcount.hzscalartypes.hz
sequence.hzshape.hz
strfuncs.hz
typeinfo.hzusertypes.hzvdot.hZtextreadingz
readtext.hz_neighborhood_iterator_imp.hznpy_endian.hzarrayscalars.hz
noprefix.hznpy_interrupt.hznpy_3kcompat.hz
npy_math.hzhalffloat.hznpy_common.hznpy_os.hzutils.hzndarrayobject.hz	npy_cpu.hznumpyconfig.hzndarraytypes.hznpy_1_7_deprecated_api.hzabstractdtypes.czalloc.czarrayobject.czarraytypes.c.srczargfunc.dispatch.c.srczarray_coercion.czarray_method.czarray_assign_scalar.czarray_assign_array.czarrayfunction_override.czbuffer.czcalculation.czcompiled_base.czcommon.czcommon_dtype.cz	convert.czconvert_datatype.czconversion_utils.czctors.cz
datetime.czdatetime_strings.czdatetime_busday.czdatetime_busdaycal.czdescriptor.czdlpack.czdtypemeta.cz	dragon4.czdtype_transfer.czeinsum.c.srczeinsum_sumprod.c.srczexperimental_public_dtype_api.czflagsobject.czgetset.czhashdescr.czitem_selection.cziterators.czlegacy_dtype_implementation.czlowlevel_strided_loops.c.srcz	mapping.cz	methods.czmultiarraymodule.cznditer_templ.c.srcznditer_api.cznditer_constr.cznditer_pywrap.cznumber.cz
refcount.cz
sequence.czshape.czscalarapi.czscalartypes.c.srcz
strfuncs.cztemp_elide.cz
typeinfo.czusertypes.czvdot.cznpy_sort.h.srczx86-qsort.dispatch.cppzquicksort.cppzmergesort.cppztimsort.cppzheapsort.cppzradixsort.cppznpy_partition.hzselection.cppznpy_binsearch.hzbinsearch.cppzconversions.czfield_types.czgrowth.cz
readtext.czrows.czstream_pyobject.czstr_to_int.cztokenize.cppc                    s‚   t |ˆdƒ}tj |¡}tj |¡st |¡ ˆ}t||ƒr?t|dƒ�}| ˆ  	ˆ j
ˆ j¡¡ W d   ƒ g S 1 s:w   Y  g S )Nz__umath_generated.crË   )r   r/   r0   rÑ   r1   rÒ   r   rÖ   rØ   Z	make_codeZdefdictrÓ   )r|   r±   rà   Údirrö   rP   )rÇ   Úgenerate_umath_pyrê   r   r   Úgenerate_umath_c  s   

ÿ
ÿýz'configuration.<locals>.generate_umath_cc                    s‚   ddl m} t|ˆdƒ}tj |¡}tj |¡st |¡ tˆ dƒ}t||ƒr?ˆˆj	dƒ}|d | 
d¡¡|ƒ}| |¡ d S d S )Nr   )r¿   z_umath_doc_generated.hzgenerate_umath_doc.pyÚgenerate_umath_docrf   re   )r<   r¿   r   r/   r0   rÑ   r1   rÒ   r   r>   r¹   Z
write_code)r|   r±   r¿   rà   r  Zgenerate_umath_doc_pyrm   r  )r÷   rJ   r¾   rê   r   r   Úgenerate_umath_doc_header  s   


ÿüz0configuration.<locals>.generate_umath_doc_headerzumathmodule.czreduction.czfuncs.inc.srczsimd.inc.srczloops.h.srczloops_utils.h.srczloops.c.srczloops_unary_fp.dispatch.c.srczloops_arithm_fp.dispatch.c.srczloops_arithmetic.dispatch.c.srczloops_minmax.dispatch.c.srcz"loops_trigonometric.dispatch.c.srczloops_umath_fp.dispatch.c.srcz!loops_exponent_log.dispatch.c.srczloops_hyperbolic.dispatch.c.srczloops_modulo.dispatch.c.srczmatmul.h.srczmatmul.c.srczclip.hzclip.cppzdispatching.czlegacy_array_method.czwrapping_array_method.czufunc_object.czextobj.czscalarmath.c.srczufunc_type_resolution.cz
override.cz_scaled_float_dtype.cz
override.hzgenerate_ufunc_api.pyzufunc_docstrings.pyZsvml)zsvml_z0_tanh_d_la.szsvml_z0_tanh_s_la.sz/**/*.sT)Ú	recursivec                    s   g | ]	}|  ˆ ¡s|‘qS r   )Úendswith)rO   Úo)Úsvml_filterr   r   rQ   \  s    z!configuration.<locals>.<listcomp>Z_multiarray_umathr   zgenerate_numpy_api.pyz*.py)Úlanguager  r  rB   Úextra_objectsÚ
extra_infoZextra_cxx_compile_argsZ_umath_testsz_umath_tests.c.srcz_umath_tests.dispatch.c)r  Z_rational_testsz_rational_tests.cZ_struct_ufunc_testsz_struct_ufunc_tests.cZ_operand_flag_testsz_operand_flag_tests.cz_simd.cz_simd_inc.h.srcz_simd_data.inc.srcz_simd.dispatch.c.srcz_simd.hz_simd_arg.incz_simd_convert.incz_simd_easyintrin.incz_simd_vector.inc)r  r  Útestsz
tests/dataztests/examplesz*.pyi).r<   r½   r¾   r¿   Znumpy.distutils.system_inforÀ   rÁ   rÂ   Znumpy.distutils.ccompiler_optrÃ   Znumpy.versionrÄ   Z
local_pathr   r�   ÚsimplefilterZMismatchCAPIWarningZcheck_api_versionrñ   r>   r¹   r   rð   Zadd_data_dirZadd_define_macrosr+   r-   rß   r[   ÚpathsrY   r/   r0   rw   Zadd_installed_libraryZadd_npy_pkg_configÚadd_extensionr9   r·   r.   r3   ÚglobÚsortZadd_subpackagerò   Zmake_svn_version_py) Úparent_packageZtop_pathr½   r¿   rÀ   rÁ   rÂ   Zis_releasedZ	local_dirrm   rë   ró   rù   rú   rû   Údepsr
  Znpymath_sourcesr  Zcommon_depsZ
common_srcZ	blas_infoZ	have_blasr  Zmultiarray_depsZmultiarray_srcr  r  Z	umath_srcZ
umath_depsZ	svml_pathZ	svml_objsr   )
rÃ   ré   r÷   rJ   r¾   rÇ   r  rê   r	  r  r   ÚconfigurationÔ  sì  


ÿjD


þ	
2



ûþýÿÿ



ý



ý÷




















é









ö

ÿ
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï
î
í
ì
ë
ê
é
è
ç
æ
å
ä
ã
â
á
 à
!ß
"Þ
#Ý
$Ü
%Û
&Ú'Ù
(Ø
)×
*Ö
+Õ
,Ô
-Ó
.Ò
/Ñ
0Ð
1Ï
2Î
3Í
4Ì
5Ë
6Ê
7É
8È;Å=
ÿ
þ
ý
ü
û
ú
ù
ø
	÷

ö
õ
ô
ó
ò
ñ
ð
ï
î
í
ì
ë
ê
é
è
ç
æ
å
ä
ã
â
á
 à
!ß
"Þ
#Ý
$Ü
%Û
&Ú
'Ù
(Ø
)×
*Ö
+Õ
,Ô
-Ó
.Ò
/Ñ
0Ð
1Ï
2Î
3Í
4Ì
5Ë
6Ê
7É
8È
9Ç
:Æ
;Å
<Ä
=Ã
>Â
?Á
@À
A¿
B¾
C½
D¼E»FºG¹H¸I·J¶KµL´S















â"







öÿ
ùþ
ÿì

ý
ÿÿÿ
û
÷úr'  Ú__main__)Úsetup)r'  )rd   N))r/   r+   r)   r   r   r�   rÙ   r#  Úos.pathr   Znumpy.distutilsr   Údistutils.dep_utilr   r   Znumpy.compatr   Zsetup_commonr9   r·   r   rr   r   r   r   r.   r3   r7   r8   r:   r@   r…   r#   r"   r   rº   r¼   r'  r$   Znumpy.distutils.corer)  r   r   r   r   Ú<module>   sZ    ÿ{)%e
	     hþ