Ë
    °ŒjÔ   ã                   ó   — 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„ Z ej                  e	«      Z
dZdZej                  j                  ed«      Ze€e
j!                  de› d�«        e«       Zn-e
j!                  de› d�«        e«       Zej%                  e«       d	Z ed
„ eD «       «      Zer*	 e
j-                  d«       ddl­ e
j-                  d«       dZ ed„ eD «       «      Zer,es*	 e
j-                  d«       ddl­ e
j-                  d«       dZdev Zer,es*	 e
j-                  d«       ddl­ e
j-                  d«       dZdev Zer,es*	 e
j-                  d«       ddl­ e
j-                  d«       dZes)	 e
j-                  d«       ddl ­ e
j-                  d«       yy# e$ r Ze
j-                  de›�«       d	ZY dZ[ŒídZ[ww xY w# e$ r Ze
j-                  de›�«       d	ZY dZ[ŒØdZ[ww xY w# e$ r Ze
j-                  de›�«       d	ZY dZ[ŒÎdZ[ww xY w# e$ r Ze
j-                  de›�«       d	ZY dZ[ŒÄdZ[ww xY w# e!$ rB djE                   e«       «      Z#d e#› d!�Z$e
jK                  e$«        ejL                  d«       Y yw xY w)"é    N)ÚVersionc                  óÊ  — d„ } ddl }t        |j                  «      t        d«      k\  r€ddlm} |j                  «       D ��ch c]
  \  }}|sŒ	|’Œ }}} | «       r|j                  d«       t        j                  dd«      j                  d	«      D ]  }|j                  |«       Œ |S t        j                  «       d
k(  r*t        j                  ddg«      d   dk(  rdhS t!        «       S t        j                  «       dk(  �rSddl}t!        «       }d|j"                  j$                  j&                  j(                  d   j+                  dd«      v r|j                  d«       d|j"                  j$                  j&                  j(                  d   j+                  dd«      v r|j                  d«       d|j"                  j$                  j&                  j(                  d   j+                  dd«      v r|j                  d«        | «       r|j                  d«       t        j                  dd«      j                  d	«      D ]  }|j                  |«       Œ |S t!        «       S c c}}w )aÝ  
    Returns the set of supported CPU features, see
    https://github.com/numpy/numpy/blob/master/numpy/core/src/common/npy_cpu_features.h  # noqa: E501
    for the list of features that this set may contain per architecture.

    Example:
    >>> supported_instruction_sets()  # for x86
    {"SSE2", "AVX2", "AVX512", ...}
    >>> supported_instruction_sets()  # for PPC
    {"VSX", "VSX2", ...}
    >>> supported_instruction_sets()  # for ARM
    {"NEON", "ASIMD", ...}
    c                  óÚ  — t        j                  «       dk7  ryt        j                  «       dk7  rydd l} t	        | j
                  «      t	        d«      k\  ry	 dd l} d| j                  j                  j                  j                  d   j                  dd«      j                  «       v S # t        $ r8 t        t        d	«      j!                  d «      j#                  d
«      dz  «      cY S w xY w)NÚaarch64FÚLinuxr   z2.0ÚsveÚFeaturesÚ Úctypesé   i  @ )ÚplatformÚmachineÚsystemÚnumpyr   Ú__version__Únumpy.distutils.cpuinfoÚ	distutilsÚcpuinfoÚcpuÚinfoÚgetÚsplitÚImportErrorÚboolÚ
__import__ÚCDLLÚ	getauxval)r   s    úV/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/faiss/loader.pyÚis_sve_supportedz4supported_instruction_sets.<locals>.is_sve_supported    sÐ   € Ü×ÑÓ Ò*Øä�?‰?Ó Ò'Øãä�5×$Ñ$Ó%¬°«Ò7Øð	Û*ð Ø—?‘?×*Ñ*×.Ñ.×3Ñ3°AÑ6ß‘�Z Ó$ß‘“ððøô ò 	ô
 Ü˜8Ó$×)Ñ)¨$Ó/×9Ñ9¸"Ó=ÀÑIóò ð	ús   ÁAB) Â)>C*Ã)C*r   Nz1.19)Ú__cpu_features__ÚSVEÚFAISS_DISABLE_CPU_FEATURESr
   z, 	
ÚDarwinz/usr/sbin/sysctlzhw.optional.avx2_0éÿÿÿÿÚ1ÚAVX2r   Úavx2ÚflagsÚavx512ÚAVX512Úavx512_fp16Ú
AVX512_SPR)r   r   r   Únumpy._core._multiarray_umathr    ÚitemsÚaddÚosÚgetenvr   Údiscardr   r   Ú
subprocessÚcheck_outputr   Úsetr   r   r   r   r   )r   r   r    ÚkÚvÚ	supportedÚfÚresults           r   Úsupported_instruction_setsr;      s  € ò"ó< äˆu× Ñ Ó!¤W¨V£_Ò4åBð $4×#9Ñ#9Ô#;ÔAÑ#;™4˜1˜aºq’QÐ#;ˆ	ÑAÙÔØ�M‰M˜%Ô Ü—‘Ð7¸Ó<×BÑBÀ:ÖNˆAØ×Ñ˜aÕ ð OàÐô ‡�Ó˜HÒ$ä×#Ñ#Ð%7Ð9MÐ$NÓOØñð òð
 �8ˆOô& ‹5€Lô% 
�‰Ó	˜gÓ	%Û&ä“ˆØ�U—_‘_×,Ñ,×0Ñ0×5Ñ5°aÑ8×<Ñ<¸WÀbÓIÑIØ�J‰J�vÔØ�u—‘×.Ñ.×2Ñ2×7Ñ7¸Ñ:×>Ñ>¸wÈÓKÑKØ�J‰J�xÔ Ø˜EŸO™O×3Ñ3×7Ñ7×<Ñ<¸QÑ?×CÑCØ�Ró
ñ 
ð �J‰J�|Ô$ÙÔØ�J‰J�uÔÜ—‘Ð7¸Ó<×BÑBÀ:ÖNˆAØ�N‰N˜1Õð OàˆÜ‹5€LùóE Bs   Á
IÁIÚFAISS_OPT_LEVELzEnvironment variable zK is not set, so let's pick the instruction set according to the current CPUzUsing z as an instruction set.Fc              #   ó@   K  — | ]  }d |j                  «       v –— Œ y­w)r,   N©Úupper©Ú.0Úxs     r   Ú	<genexpr>rC      s   è ø€ ÐIÑ8H°1�\ Q§W¡W£YÔ.Ñ8Hùó   ‚z&Loading faiss with AVX512-SPR support.é   )Ú*z2Successfully loaded faiss with AVX512-SPR support.Tz7Could not load library with AVX512-SPR support due to:
c              #   ó@   K  — | ]  }d |j                  «       v –— Œ y­w)r*   Nr>   r@   s     r   rC   rC   Ž   s   è ø€ ÐAÑ0@¨1�˜QŸW™W›YÔ&Ñ0@ùrD   z"Loading faiss with AVX512 support.z.Successfully loaded faiss with AVX512 support.z3Could not load library with AVX512 support due to:
r&   z Loading faiss with AVX2 support.z,Successfully loaded faiss with AVX2 support.z1Could not load library with AVX2 support due to:
r!   zLoading faiss with SVE support.z+Successfully loaded faiss with SVE support.z0Could not load library with SVE support due to:
zLoading faiss.zSuccessfully loaded faiss.z, z÷No module named 'faiss.swigfaiss' found. To fix this, you must do both of the following:
A) Set the correct FAISS_OPT_LEVEL value when executing 'cmake'.
B) Build the correct SWIG wrapper.

These are the supported instruction sets on your system:
a	  
- If 'AVX512_SPR' (case insensitive) is supported on your system, you can set the FAISS_OPT_LEVEL=avx512_spr to build the SWIG wrapper with 'AVX512-SPR' support.
You will have to build the 'swigfaiss_avx512_spr' target in this case.
- If 'AVX512' (case insensitive) is supported on your system, you can set the FAISS_OPT_LEVEL=avx512 to build the SWIG wrapper with 'AVX512' support.
You will have to build the 'swigfaiss_avx512' target in this case.
- If 'AVX2' (case sensitive) is supported on your system, you can set the FAISS_OPT_LEVEL=AVX2 to build the SWIG wrapper with 'AVX2' support.
You will have to build the 'swigfaiss_avx2' target in this case.
- If 'SVE' (case sensitive) is supported on your system, you can set the FAISS_OPT_LEVEL=SVE to build the SWIG wrapper with 'SVE' support.
You will have to build the 'swigfaiss_sve' target in this case.
- If none of the above instruction sets are supported on your system, you can execute 'cmake' without setting the FAISS_OPT_LEVEL variable and build the 'swigfaiss' target.)'r   r3   Úloggingr0   ÚsysÚpackaging.versionr   r;   Ú	getLoggerÚ__name__ÚloggerÚinstruction_setsÚopt_env_variable_nameÚenvironr   Ú	opt_levelÚdebugr5   r/   ÚloadedÚanyÚhas_AVX512_SPRr   Úswigfaiss_avx512_sprr   ÚeÚ
has_AVX512Úswigfaiss_avx512Úhas_AVX2Úswigfaiss_avx2Úhas_SVEÚswigfaiss_sveÚ	swigfaissÚModuleNotFoundErrorÚjoinÚformatted_ins_setsÚmessageÚerrorÚexit© ó    r   Ú<module>rg      sã  ðó Û Û Û 	Û 
å %òYðx 
ˆ×	Ñ	˜8Ó	$€àÐ ð *Ð Ø�J‰J�N‰NÐ0°$Ó7€	àÐØ
‡L�LØ
Ð 5Ð6ð 7Ið 	Iôñ 2Ó3Ñà
‡L�L�6˜)˜Ð$;Ð<Ô=Ù“uÐØ×Ñ˜Ô#à	€ÙÑIÑ8HÓIÓI€ÙðØ�‰Ð<Ô=Ü+à�‰ÐHÔIØˆñ ÑAÑ0@ÓAÓA€
Ù‘fðØ�‰Ð8Ô9Ü'à�‰ÐDÔEØˆð Ð%Ð%€Ù‘Fð	Ø�‰Ð6Ô7Ü%à�‰ÐBÔCØˆð Ð#Ð
#€Ù
‘6ð	Ø�‰Ð5Ô6Ü$à�‰ÐAÔBØˆñ ð,à�‰Ð$Ô%Ü à�‰Ð0Õ1ð øða ò Ø�‰ØFÀqÀeÐLô	
ð �ûðûð ò Ø�‰ØBÀ1À%ÐHô	
ð �ûðûð ò Ø�‰ÐHÈÈÐNÔOà�ûðûð ò Ø�‰ÐGÈÀuÐMÔNà�ûðûð ò &Ø!ŸY™YÑ'AÓ'CÓDÐðIð "Ð"ð #IðJð 	ðB 	�‰�WÔàˆ�‰�ŽðM&úss   Â0)F& Ã-)G Ä)G6 Å)H Å='I Æ&GÆ+GÇGÇG3ÇG.Ç.G3Ç6HÇ;HÈHÈIÈ#H>È>IÉAJÊJ