§
    ÐÁ³gÝ  ã                   ó(   — d dl Z d dlZd„ Zd„ Zd„ ZdS )é    Nc           	      óö  — |dk    r| dz  S |                      d¦  «        r,| dz  t          | |dt          d¦  «         …         ¦  «        z   S t          j        d|¦  «        }|r#t          | |                     d¦  «        ¦  «        S t          j        d|¦  «        }|r#t          | |                     d¦  «        ¦  «        S t          j        d	|¦  «        }|r#t          | |                     d¦  «        ¦  «        S t          j        d
|¦  «        }|rGt          | |                     d¦  «        ¦  «        t          | |                     d¦  «        ¦  «        z   S t          j        d|¦  «        }|rKt          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        z  dz   dz  S t          j        d|¦  «        }|rEt          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        z   S t          j        d|¦  «        }|r"t          |                     d¦  «        ¦  «        S |dk    s|dk    r| dz  d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|¦  «        }|rCt          t          |                     d¦  «        ¦  «        |                     d¦  «        ¦  «        S t          j        d|¦  «        }|rCt          t          |                     d¦  «        ¦  «        |                     d¦  «        ¦  «        S t          j        d|¦  «        }|r#t          | |                     d¦  «        ¦  «        S t          j        d|¦  «        }|rCt          t          |                     d¦  «        ¦  «        |                     d¦  «        ¦  «        S t          d|z   ¦  «        ‚)z[ size of one vector in an index in dimension d
    constructed with factory string indexkeyÚFlaté   z,RFlatNzIVF\d+(_HNSW32)?,(.*)$é   zIVF\d+\(.*\)?,(.*)$é   zIMI\d+x2,(.*)$z(.*),Refine\((.*)\)$zPQ(\d+)x(\d+)(fs|fsr)?$é   é   zPQ(\d+)\+(\d+)$zPQ(\d+)$ÚHNSW32zHNSW32,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Úmos      úY/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/faiss/contrib/factory_tools.pyr   r   
   sº  € ð �6ÒÐØ�1‰uˆà×Ò˜Ñ"Ô"ð CØ�1‰u•} Q¨°µ3°x±=´=°.°Ô(AÑBÔBÑBÐBå	ŒÐ+¨XÑ	6Ô	6€BØ	ð -Ý˜Q §¢¨¡¤Ñ,Ô,Ð,å	ŒÐ*¨HÑ	5Ô	5€BØ	ð -Ý˜Q §¢¨¡¤Ñ,Ô,Ð,å	ŒÐ# XÑ	.Ô	.€BØ	ð -Ý˜Q §¢¨¡¤Ñ,Ô,Ð,å	ŒÐ*¨HÑ	5Ô	5€BØ	ð MÝ˜Q §¢¨¡¤Ñ,Ô,­}¸QÀÇÂÈÁÄÑ/LÔ/LÑLÐLå	ŒÐ-¨xÑ	8Ô	8€BØ	ð >Ý�B—H’H˜Q‘K”KÑ Ô ¥3 r§x¢x°¡{¤{Ñ#3Ô#3Ñ3°aÑ7¸AÑ=Ð=å	ŒÐ&¨Ñ	1Ô	1€BØ	ð 5Ý�B—H’H˜Q‘K”KÑ Ô ¥3 r§x¢x°¡{¤{Ñ#3Ô#3Ñ3Ð4å	Œ�+˜xÑ	(Ô	(€BØ	ð  Ý�2—8’8˜A‘;”;ÑÔÐà�8ÒÐ˜x¨=Ò8Ð8Ø�1‰u�v‰~Ðà�5ÒÐØˆØ	�UÒ	Ð	Ø�A‘˜!‰|ÐØ	�UÒ	Ð	Ø�A‘˜‘	˜aÑÐØ	�XÒ	Ð	Ø�1‰uˆØ	�XÒ	Ð	Ø�1‰uˆå	ŒÐ% xÑ	0Ô	0€BØ	ð <Ý�S §¢¨!¡¤Ñ-Ô-¨r¯xªx¸©{¬{Ñ;Ô;Ð;Ý	ŒÐ(¨(Ñ	3Ô	3€BØ	ð <Ý�S §¢¨!¡¤Ñ-Ô-¨r¯xªx¸©{¬{Ñ;Ô;Ð;Ý	Œ�/ 8Ñ	,Ô	,€BØ	ð -Ý˜Q §¢¨¡¤Ñ,Ô,Ð,Ý	ŒÐ" HÑ	-Ô	-€BØ	ð <Ý�S §¢¨!¡¤Ñ-Ô-¨r¯xªx¸©{¬{Ñ;Ô;Ð;Ý
�¨Ñ1Ñ
2Ô
2Ð2ó    c                 óF   — | j         j                             d¦  «        dz  S )Nr   r   )ÚhnswÚcum_nneighbor_per_levelÚat)Úindexs    r   Ú
get_hnsw_Mr$   M   s    € ØŒ:Ô-×0Ò0°Ñ3Ô3°qÑ8Ð8r   c           
      óL	  — t          j        | ¦  «        } t          | t           j        ¦  «        rdS t          | t           j        ¦  «        �rxt          j        | j        ¦  «        }t          |t           j        ¦  «        rd| j        › �}n‡t          |t           j        ¦  «        rd|j        j	        › d|j        j
        › �}nPt          |t           j        ¦  «        rd| j        › dt          |¦  «        › �}nd| j        › dt          |¦  «        › d�}t          | t           j        ¦  «        r|dz   S t          | t           j        ¦  «        r|d	z   S t          | t           j        ¦  «        r|d
| j        j	        › d| j        j
        › �z   S t          | t           j        ¦  «        r |d
| j        j	        › d| j        j
        › d�z   S �nÔt          | t           j        ¦  «        �r | j                             ¦   «         dk    rt+          ¦   «         ‚t          j        | j                             d¦  «        ¦  «        }t          |t           j        ¦  «        rd|j	        › d|j        › �}nƒt          |t           j        ¦  «        rd|j        j        › �}nYt          |t           j        ¦  «        r1|j        dk    sJ ‚d|j        rdndz   t?          |j        ¦  «        z   }nt+          ¦   «         ‚|› dt          | j         ¦  «        › �S t          | t           j        ¦  «        rdt          | ¦  «        › �S t          | t           j!        ¦  «        r,t          | j"        ¦  «        › dt          | j#        ¦  «        › d�S t          | t           j$        ¦  «        rd| j        j	        › d| j        j
        › d�S t          | t           j%        ¦  «        rd| j        j	        › d| j        j
        › �S t          | t           j&        ¦  «        rd| j'        rdndz   | j(        rdndz   S t          | t           j)        ¦  «        rlt           j*        j+        dt           j*        j,        dt           j*        j-        dt           j*        j.        dt           j*        j/        di}d || j0        j1                 › �S t+          ¦   «         ‚)!zE
    attempts to get the factory string the index was built with
    r   ÚIVFÚIMIÚxÚ_HNSWú(ú)z,Flatz,SQ8z,PQÚfsr   r   ÚOPQÚ_ÚITQÚPCAÚRÚ ú,ÚHNSWz,Refine(ÚPQÚLSHÚrÚtÚ8Ú4Ú6Úfp16Úbf16ÚSQ)2ÚfaissÚdowncast_indexÚ
isinstanceÚ	IndexFlatÚIndexIVFÚ	quantizerÚnlistÚMultiIndexQuantizerÚpqÚMÚnbitsÚ	IndexHNSWr$   Úreverse_index_factoryÚIndexIVFFlatÚIndexIVFScalarQuantizerÚ
IndexIVFPQÚIndexIVFPQFastScanÚ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ÚScalarQuantizerÚQT_8bitÚQT_4bitÚQT_6bitÚQT_fp16ÚQT_bf16ÚsqÚqtype)r#   rD   ÚprefixÚvtÚsqtypess        r   rK   rK   Q   sw  € õ Ô  Ñ'Ô'€EÝ�%�œÑ)Ô)ð =.ØˆvÝ	�E�5œ>Ñ	*Ô	*ñ ;.ÝÔ(¨¬Ñ9Ô9ˆ	å�i¥¤Ñ1Ô1ð 	MØ(˜5œ;Ð(Ð(ˆFˆFÝ˜	¥5Ô#<Ñ=Ô=ð 	MØ@˜9œ<œ>Ð@Ð@¨I¬LÔ,>Ð@Ð@ˆFˆFÝ˜	¥5¤?Ñ3Ô3ð 	MØD˜5œ;ÐDÐD­Z¸	Ñ-BÔ-BÐDÐDˆFˆFàL˜5œ;ÐLÐLÕ)>¸yÑ)IÔ)IÐLÐLÐLˆFå�e�UÔ/Ñ0Ô0ð 	$Ø˜GÑ#Ð#Ý�e�UÔ:Ñ;Ô;ð 	#Ø˜F‘?Ð"Ý�e�UÔ-Ñ.Ô.ð 	@ØÐ? %¤(¤*Ð?Ð?¨u¬x¬~Ð?Ð?Ñ?Ð?Ý�e�UÔ5Ñ6Ô6ð 	BØÐA %¤(¤*ÐAÐA¨u¬x¬~ÐAÐAÐAÑAÐAñ	Bõ 
�E�5Ô2Ñ	3Ô	3ñ &.ØŒ;×ÒÑÔ Ò"Ð"Ý%Ñ'Ô'Ð'ÝÔ+¨E¬K¯NªN¸1Ñ,=Ô,=Ñ>Ô>ˆÝ�b�%œ/Ñ*Ô*ð 	(Ø,˜2œ4Ð,Ð, "¤(Ð,Ð,ˆFˆFÝ˜�EÔ.Ñ/Ô/ð 	(Ø)˜2œ6œ<Ð)Ð)ˆFˆFÝ˜�EœOÑ,Ô,ð 	(Ø”> QÒ&Ð&Ð&Ð&Ø RÔ%7Ð?˜c˜c¸RÑ@Å3ÀrÄxÁ=Ä=ÑPˆFˆFå%Ñ'Ô'Ð'ØÐ?Ð?Õ0°´Ñ=Ô=Ð?Ð?Ð?å	�E�5œ?Ñ	+Ô	+ð .Ø)•j Ñ'Ô'Ð)Ð)Ð)å	�E�5Ô,Ñ	-Ô	-ð .Ý'¨Ô(8Ñ9Ô9ÐoÐoÕCXÐY^ÔYkÑClÔClÐoÐoÐoÐoå	�E�5Ô0Ñ	1Ô	1ð .Ø3�E”H”JÐ3Ð3 ¤¤Ð3Ð3Ð3Ð3å	�E�5œ=Ñ	)Ô	)ð .Ø1�E”H”JÐ1Ð1 ¤¤Ð1Ð1Ð1å	�E�5œ>Ñ	*Ô	*ð .Ø˜uÔ0Ð8˜˜°bÑ9ÀEÔDZÐ=b¸S¸SÐ`bÑcÐcå	�E�5Ô5Ñ	6Ô	6ð .åÔ!Ô)¨3ÝÔ!Ô)¨3ÝÔ!Ô)¨3ÝÔ!Ô)¨6ÝÔ!Ô)¨6ð
ˆð .�G˜EœHœNÔ+Ð-Ð-Ð-å
Ñ
Ô
Ðr   )r?   r   r   r$   rK   © r   r   ú<module>rr      sY   ðð €€€Ø 	€	€	€	ð@3ð @3ð @3ðF9ð 9ð 9ðD ð D ð D ð D ð D r   