Ë
    °ŒjÐ  ã                   ó&   — d dl Z d dlZd„ Zd„ Zd„ Zy)é    Nc           	      ó  — |dk(  r| dz  S |j                  d«      r| dz  t        | |dt        d«        «      z   S t        j                  d|«      }|rt        | |j                  d«      «      S t        j                  d|«      }|rt        | |j                  d«      «      S t        j                  d	|«      }|rt        | |j                  d«      «      S t        j                  d
|«      }|r7t        | |j                  d«      «      t        | |j                  d«      «      z   S t        j                  d|«      }|r;t        |j                  d«      «      t        |j                  d«      «      z  dz   dz  S t        j                  d|«      }|r5t        |j                  d«      «      t        |j                  d«      «      z   S t        j                  d|«      }|rt        |j                  d«      «      S t        j                  d|«      }|r(t        |j                  d«      «      }| dz  |dz  dz  z   S |dk(  r| S |dk(  r| dz   dz  S |dk(  r| dz  dz   dz  S |dk(  r| dz  S |dk(  r| dz  S t        j                  d|«      }|r3t        t        |j                  d«      «      |j                  d«      «      S t        j                  d|«      }|r3t        t        |j                  d«      «      |j                  d«      «      S t        j                  d|«      }|rt        | |j                  d«      «      S t        j                  d|«      }|r3t        t        |j                  d«      «      |j                  d«      «      S t        d|z   «      ‚)zZsize of one vector in an index in dimension d
    constructed with factory string indexkeyÚFlaté   z,RFlatNzIVF\d+(_HNSW\d+)?,(.*)$é   zIVF\d+\(.*\)?,(.*)$é   zIMI\d+x2,(.*)$z(.*),Refine\((.*)\)$zPQ(\d+)x(\d+)(fs|fsr)?$é   é   zPQ(\d+)\+(\d+)$zPQ(\d+)$zHNSW(\d+)(,Flat)?$ÚSQ8ÚSQ4ÚSQ6é   ÚSQfp16ÚSQbf16zPCAR?(\d+),(.*)$zOPQ\d+_(\d+),(.*)$zOPQ\d+,(.*)$zRR(\d+),(.*)$zcannot parse )ÚendswithÚget_code_sizeÚlenÚreÚmatchÚgroupÚintÚRuntimeError)ÚdÚindexkeyÚmoÚMs       úe/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/faiss/contrib/factory_tools.pyr   r   
   s  € ð �6ÒØ�1‰uˆà×Ñ˜Ô"Ø�1‰u”} Q¨Ð1A´C¸³M°>Ð(BÓCÑCÐCä	�‰Ð-¨xÓ	8€BÙ	Ü˜Q §¡¨£Ó,Ð,ä	�‰Ð*¨HÓ	5€BÙ	Ü˜Q §¡¨£Ó,Ð,ä	�‰Ð# XÓ	.€BÙ	Ü˜Q §¡¨£Ó,Ð,ä	�‰Ð*¨HÓ	5€BÙ	Ü˜Q §¡¨£Ó,¬}¸QÀÇÁÈÃÓ/LÑLÐLä	�‰Ð-¨xÓ	8€BÙ	Ü�B—H‘H˜Q“KÓ ¤3 r§x¡x°£{Ó#3Ñ3°aÑ7¸AÑ=Ð=ä	�‰Ð&¨Ó	1€BÙ	Ü�2—8‘8˜A“;Ó¤# b§h¡h¨q£kÓ"2Ñ2Ð2ä	�‰�+˜xÓ	(€BÙ	Ü�2—8‘8˜A“;ÓÐä	�‰Ð'¨Ó	2€BÙ	Ü�—‘˜“ÓˆØ�1‰u�q˜1‘u˜q‘yÑ Ð à�5ÒØˆØ	�UÒ	Ø�A‘˜!‰|ÐØ	�UÒ	Ø�A‘˜‘	˜aÑÐØ	�XÒ	Ø�1‰uˆØ	�XÒ	Ø�1‰uˆä	�‰Ð% xÓ	0€BÙ	ÜœS §¡¨!£Ó-¨r¯x©x¸«{Ó;Ð;Ü	�‰Ð(¨(Ó	3€BÙ	ÜœS §¡¨!£Ó-¨r¯x©x¸«{Ó;Ð;Ü	�‰�/ 8Ó	,€BÙ	Ü˜Q §¡¨£Ó,Ð,Ü	�‰Ð" HÓ	-€BÙ	ÜœS §¡¨!£Ó-¨r¯x©x¸«{Ó;Ð;Ü
�¨Ñ1Ó
2Ð2ó    c                 óR   — | j                   j                  j                  d«      dz  S )Nr   r   )ÚhnswÚcum_nneighbor_per_levelÚat)Úindexs    r   Ú
get_hnsw_Mr#   O   s"   € Ø�:‰:×-Ñ-×0Ñ0°Ó3°qÑ8Ð8r   c                 óØ  — i t         j                  j                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j
                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j                  d	“t         j                  j                  d
“t         j                  j                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j                  d“t         j                  j                   d“t         j                  j"                  d“t         j                  j$                  d“t         j                  j&                  dt         j                  j(                  di¥}t        j*                  | «      } t-        | t         j.                  «      ryt-        | t         j0                  «      �r't        j*                  | j2                  «      }t-        |t         j.                  «      rd| j4                  › �}n�t-        |t         j6                  «      r1d|j8                  j:                  › d|j8                  j<                  › �}nRt-        |t         j>                  «      rd| j4                  › dtA        |«      › �}nd| j4                  › dtC        |«      › d�}t-        | t         jD                  «      r|dz   S t-        | t         jF                  «      r|dz   || jH                  jJ                     z   S t-        | t         jL                  «      r3|d| j8                  j:                  › d| j8                  j<                  › �z   S t-        | t         jN                  «      r4|d| j8                  j:                  › d| j8                  j<                  › d�z   S t-        | t         jP                  «      r*| jR                  jT                  }|dk(  rd nd |› �}|dz   |z   S t]        «       ‚t-        | t         jV                  «      �r9| jX                  j[                  «       dk7  r
t]        «       ‚t        j^                  | jX                  ja                  d!«      «      }t-        |t         jb                  «      rd"|j:                  › d#|jd                  › �}n“t-        |t         jf                  «      rd$|jh                  jd                  › �}n_t-        |t         jj                  «      r;|jl                  d!k(  sJ ‚d%|jn                  rd&nd'z   tq        |jd                  «      z   }n
t]        «       ‚|› dtC        | jr                  «      › �S t-        | t         j>                  «      rd(tA        | «      › �S t-        | t         jt                  «      r.tC        | jv                  «      › d)tC        | jx                  «      › d�S t-        | t         jz                  «      r1d*| j8                  j:                  › d| j8                  j<                  › d�S t-        | t         j|                  «      r0d*| j8                  j:                  › d| j8                  j<                  › �S t-        | t         j~                  «      r&d+| j€                  rd,nd'z   | j‚                  rd-z   S d'z   S t-        | t         j„                  «      r|| jH                  jJ                     S t-        | t         j†                  «      r"| jR                  jT                  }|dk(  rd S d |› �S t-        | t         jˆ                  «      rd.tC        | jr                  «      › �S t-        | t         jŠ                  «      rd/tC        | jr                  «      › �S t]        «       ‚)0zE
    attempts to get the factory string the index was built with
    r
   r   ÚSQ8uÚSQ4ur   r   r   Ú
SQ8_directÚSQ8_direct_signedÚSQ0ÚSQtqmse1ÚSQtqmse2ÚSQtqmse3ÚSQtqmse4ÚSQtqmse8ÚSQtq2ÚSQtq3ÚSQtq4ÚSQtq5r   ÚIVFÚIMIÚxÚ_HNSWÚ(Ú)z,FlatÚ,z,PQÚfsr   ÚRaBitQr   ÚOPQÚ_ÚITQÚPCAÚRÚ ÚHNSWz,Refine(ÚPQÚLSHÚrÚtzIDMap2,zIDMap,)FÚfaissÚScalarQuantizerÚQT_8bitÚQT_4bitÚQT_8bit_uniformÚQT_4bit_uniformÚQT_6bitÚQT_fp16ÚQT_bf16ÚQT_8bit_directÚQT_8bit_direct_signedÚQT_0bitÚQT_1bit_tqmseÚQT_2bit_tqmseÚQT_3bit_tqmseÚQT_4bit_tqmseÚQT_8bit_tqmseÚ
QT_2bit_tqÚ
QT_3bit_tqÚ
QT_4bit_tqÚ
QT_5bit_tqÚdowncast_indexÚ
isinstanceÚ	IndexFlatÚIndexIVFÚ	quantizerÚnlistÚMultiIndexQuantizerÚpqr   ÚnbitsÚ	IndexHNSWr#   Úreverse_index_factoryÚIndexIVFFlatÚIndexIVFScalarQuantizerÚsqÚqtypeÚ
IndexIVFPQÚIndexIVFPQFastScanÚIndexIVFRaBitQÚrabitqÚnb_bitsÚIndexPreTransformÚchainÚsizeÚNotImplementedErrorÚdowncast_VectorTransformr!   Ú	OPQMatrixÚd_outÚITQTransformÚitqÚ	PCAMatrixÚeigen_powerÚrandom_rotationÚstrr"   ÚIndexRefineÚ
base_indexÚrefine_indexÚIndexPQFastScanÚIndexPQÚIndexLSHÚrotate_dataÚtrain_thresholdsÚIndexScalarQuantizerÚIndexRaBitQÚIndexIDMap2Ú
IndexIDMap)r"   Úsq_namesr`   Úprefixro   ÚsuffixÚvts          r   rf   rf   S   s  € ðÜ×Ñ×%Ñ% uðä×Ñ×%Ñ% uðô
 	×Ñ×-Ñ-¨vðô 	×Ñ×-Ñ-¨vðô 	×Ñ×%Ñ% uðô 	×Ñ×%Ñ% xðô 	×Ñ×%Ñ% xðô 	×Ñ×,Ñ,¨lðô 	×Ñ×3Ñ3Ð5Hðô 	×Ñ×%Ñ% uðô 	×Ñ×+Ñ+¨Zðô 	×Ñ×+Ñ+¨Zðô  	×Ñ×+Ñ+¨Zð!ô" 	×Ñ×+Ñ+¨Zð#ô$ 	×Ñ×+Ñ+¨Zð%ô& 	×Ñ×(Ñ(¨'ð'ô( 	×Ñ×(Ñ(¨'ð)ô* 	×Ñ×(Ñ(¨'Ü×Ñ×(Ñ(¨'ñ-€Hô0 × Ñ  Ó'€EÜ�%œŸ™Ô)ØÜ	�Eœ5Ÿ>™>Õ	*Ü×(Ñ(¨¯©Ó9ˆ	ä�i¤§¡Ô1Ø˜5Ÿ;™;˜-Ð(‰FÜ˜	¤5×#<Ñ#<Ô=Ø˜9Ÿ<™<Ÿ>™>Ð*¨!¨I¯L©L×,>Ñ,>Ð+?Ð@‰FÜ˜	¤5§?¡?Ô3Ø˜5Ÿ;™;˜- u¬Z¸	Ó-BÐ,CÐD‰Fà˜5Ÿ;™;˜- qÔ)>¸yÓ)IÐ(JÈ!ÐLˆFä�eœU×/Ñ/Ô0Ø˜GÑ#Ð#Ü�eœU×:Ñ:Ô;Ø˜C‘< (¨5¯8©8¯>©>Ñ":Ñ:Ð:Ü�eœU×-Ñ-Ô.Ø˜c %§(¡(§*¡* ¨Q¨u¯x©x¯~©~Ð.>Ð?Ñ?Ð?Ü�eœU×5Ñ5Ô6Ø˜c %§(¡(§*¡* ¨Q¨u¯x©x¯~©~Ð.>¸bÐAÑAÐAÜ�eœU×1Ñ1Ô2Ø—l‘l×*Ñ*ˆGØ!(¨A¢‘X°V¸G¸9Ð3EˆFØ˜C‘< &Ñ(Ð(ôj Ó
Ðôg 
�Eœ5×2Ñ2Õ	3Ø�;‰;×ÑÓ Ò"Ü%Ó'Ð'Ü×+Ñ+¨E¯K©K¯N©N¸1Ó,=Ó>ˆÜ�bœ%Ÿ/™/Ô*Ø˜2Ÿ4™4˜&  "§(¡( Ð,‰FÜ˜œE×.Ñ.Ô/Ø˜2Ÿ6™6Ÿ<™<˜.Ð)‰FÜ˜œEŸO™OÔ,Ø—>‘> QÒ&Ð&Ð&Ø R×%7Ò%7™c¸RÑ@Ä3ÀrÇxÁxÃ=ÑP‰Fä%Ó'Ð'Ø�˜Ô0°·±Ó=Ð>Ð?Ð?ä	�Eœ5Ÿ?™?Ô	+Ø”j Ó'Ð(Ð)Ð)ä	�Eœ5×,Ñ,Ô	-ä$ U×%5Ñ%5Ó6Ð7ð 8Ü+¨E×,>Ñ,>Ó?Ð@ÀðCð	
ô
 
�Eœ5×0Ñ0Ô	1Ø�E—H‘H—J‘J�<˜q §¡§¡Ð 0°Ð3Ð3ä	�Eœ5Ÿ=™=Ô	)Ø�E—H‘H—J‘J�<˜q §¡§¡Ð 0Ð1Ð1ä	�Eœ5Ÿ>™>Ô	*àØ×'Ò'‰s¨Rñ1à×,Ò,ˆsñ6ð	
ð 35ñ6ð	
ô 
�Eœ5×5Ñ5Ô	6Ø˜Ÿ™Ÿ™Ñ'Ð'ä	�Eœ5×,Ñ,Ô	-Ø—,‘,×&Ñ&ˆØ" aš<ˆxÐ?¨v°g°YÐ-?Ð?ô 
�Eœ5×,Ñ,Ô	-ØÔ.¨u¯{©{Ó;Ð<Ð=Ð=ä	�Eœ5×+Ñ+Ô	,ØÔ-¨e¯k©kÓ:Ð;Ð<Ð<ä
Ó
Ðr   )rG   r   r   r#   rf   © r   r   Ú<module>rŽ      s   ðó Û 	òB3òJ9ók r   