Ë
    °Œj]  ã                   óR   — d dl Zd dlZd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Z	d	„ Z
d
„ Zd„ Zy)é    Nc                 óx  — t        j                  | «      } | j                  |«      }t        j                  |d¬«      }dx}}	 | j                  |«      }|dkD  r4t        j                  t        j                  |«      ||j                  «       | j                  |«      }| j                  t         j                  j                  k7  r$t        j                  || j                  fd¬«      }n@| j                  }| j                  }||z   dz
  |z  }	t        j                  |	||z  |fd¬«      }|dkD  r4t        j                  t        j                  |«      ||j                  «       |�| j                  ||«       |�| j!                  ||«       ||fS # |�| j                  ||«       |�| j!                  ||«       w w xY w)zxreturns the inverted lists content as a pair of (list_ids, list_codes).
    The codes are reshaped to a proper size
    Úint64©ÚdtypeNr   Úuint8é   )ÚfaissÚdowncast_InvertedListsÚ	list_sizeÚnpÚzerosÚget_idsÚmemcpyÚswig_ptrÚnbytesÚ	get_codesÚ	code_sizeÚInvertedListsÚINVALID_CODE_SIZEÚn_per_blockÚ
block_sizeÚrelease_idsÚrelease_codes)
ÚinvlistsÚlÚlsÚlist_idsÚidsÚcodesÚ
list_codesÚnpbÚbsÚls_rounds
             úe/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/faiss/contrib/inspect_tools.pyÚget_invlistr%   
   s‘  € ô ×+Ñ+¨HÓ5€HØ	×	Ñ	˜AÓ	€BÜ�x‰x˜ 'Ô*€HØÐ€Cˆ%ð-Ø×Ñ˜qÓ!ˆØ�Š6Ü�L‰LœŸ™¨Ó1°3¸¿¹ÔHØ×"Ñ" 1Ó%ˆØ×Ñ¤×!4Ñ!4×!FÑ!FÒFÜŸ™ 2 x×'9Ñ'9Ð":À'ÔJ‰Jð ×&Ñ&ˆCØ×$Ñ$ˆBØ˜S™ 1™¨Ñ,ˆHÜŸ™ 8¨R°3©Y¸Ð"<ÀGÔLˆJØ�Š6Ü�L‰LœŸ™¨
Ó3°U¸J×<MÑ<MÔNàˆ?Ø× Ñ   CÔ(ØÐØ×"Ñ" 1 eÔ,Ø�ZÐÐøð	 ˆ?Ø× Ñ   CÔ(ØÐØ×"Ñ" 1 eÕ,ð ús   ÁDF Æ+F9c                 óš   — t        j                  t        | j                  «      D �cg c]  }| j	                  |«      ‘Œ c}d¬«      S c c}w )z/return the array of sizes of the inverted listsr   r   )r   ÚarrayÚrangeÚnlistr   )r   Úis     r$   Úget_invlist_sizesr+   )   s@   € ä�8‰8Ü(-¨h¯n©nÔ(=Ó>Ñ(= 1ˆ×	Ñ	˜AÕ	Ð(=Ñ>Àgôð ùÚ>s   §Ac           	      ón   — | j                   j                  D ]  }t        |› dt        | |«      › �«       Œ y)z1list values all fields of an object known to SWIGz = N)Ú	__class__Ú__swig_getmethods__ÚprintÚgetattr)ÚobjÚnames     r$   Úprint_object_fieldsr3   0   s3   € ð —‘×1Ô1ˆÜ���cœ' # tÓ,Ð-Ð.Õ/ñ 2ó    c                 ó¢   — t        j                  | j                  «      }|j                  | j                  | j
                  | j                  «      S )z#return the PQ centroids as an array)r	   Úvector_to_arrayÚ	centroidsÚreshapeÚMÚksubÚdsub)ÚpqÚcens     r$   Úget_pq_centroidsr>   7   s5   € ä
×
Ñ
 §¡Ó
-€CØ�;‰;�r—t‘t˜RŸW™W b§g¡gÓ.Ð.r4   c                 óÎ   — t        j                  | j                  «      }t        j                  | j                  «      j	                  | j
                  | j                  «      }||fS )znextract matrix + bias from the PCA object
    works for any linear transform (OPQ, random rotation, etc.)
    )r	   r6   ÚbÚAr8   Úd_outÚd_in)Úpcar@   rA   s      r$   Úget_LinearTransform_matrixrE   =   sJ   € ô 	×Ñ˜cŸe™eÓ$€AÜ×Ñ˜cŸe™eÓ$×,Ñ,¨S¯Y©Y¸¿¹ÓA€AØˆaˆ4€Kr4   c                 óL  — | j                   \  }}|�|j                   |fk(  sJ ‚t        j                  |||du«      }t        j                  | j	                  «       |j
                  «       |� t        j                  ||j                  «       d|_        |j                  «        |S )z@make a linear transform from a matrix and a bias term (optional)NT)	Úshaper	   ÚLinearTransformÚcopy_array_to_vectorÚravelrA   r@   Ú
is_trainedÚset_is_orthonormal)rA   r@   rB   rC   Últs        r$   Úmake_LinearTransform_matrixrN   F   s‹   € à—'‘'�K€Eˆ4Ø€}Ø�w‰w˜5˜(Ò"Ð"Ð"Ü	×	Ñ	˜t U¨A°T¨MÓ	:€BÜ	×Ñ˜qŸw™w›y¨"¯$©$Ô/Ø€}Ü×"Ñ" 1 b§d¡dÔ+Ø€B„MØ×ÑÔØ€Ir4   c                 ó  — t        j                  | j                  «      j                  d| j                  «      }t        j                  | j
                  «      }t        | j                  «      D �cg c]  }|||   ||dz       ‘Œ c}S c c}w )z,return to codebooks of an additive quantizeréÿÿÿÿr   )r	   r6   Ú	codebooksr8   ÚdÚcodebook_offsetsr(   r9   )ÚaqrQ   Úcor*   s       r$   Ú get_additive_quantizer_codebooksrV   T   sp   € ä×%Ñ% b§l¡lÓ3×;Ñ;¸BÀÇÁÓE€IÜ	×	Ñ	˜r×2Ñ2Ó	3€BÜ27¸¿¹´+Ó>±+¨QˆI�b˜‘e˜b  Q¡™iÒ(°+Ñ>Ð>ùÒ>s   Á0Bc                 óª   — t        j                  | j                  «      j                  d«      }|j	                  | j
                  | j                  «      S )z/copy and return the data matrix in an IndexFlatÚfloat32)r	   r6   r   Úviewr8   ÚntotalrR   )ÚindexÚxbs     r$   Úget_flat_datar]   [   s:   € ä	×	Ñ	˜uŸ{™{Ó	+×	0Ñ	0°Ó	;€BØ�:‰:�e—l‘l E§G¡GÓ,Ð,r4   c                 óˆ   — t        j                  | j                  «      j                  | j                  | j
                  «      S )z0get the codes from an indexFlatCodes as an array)r	   r6   r   r8   rZ   r   )Ú
index_flats    r$   Úget_flat_codesr`   a   s7   € ä× Ñ  ×!1Ñ!1Ó2×:Ñ:Ø×Ñ˜:×/Ñ/óð r4   c                 óü   — | j                  «       }t        j                  |j                  |j                  fd¬«      }t        j                  t        j                  |«      |j                  |j                  «       |S )zdget the neighbor list for the vectors stored in the NSG structure, as
    a N-by-K matrix of indicesÚint32r   )
Úget_final_graphr   r   ÚNÚKr	   r   r   Údatar   )ÚnsgÚgraphÚ	neighborss      r$   Úget_NSG_neighborsrj   h   sX   € ð ×ÑÓ!€EÜ—‘˜%Ÿ'™' 5§7¡7Ð+°7Ô;€IÜ	‡L�L”—‘ 	Ó*¨E¯J©J¸	×8HÑ8HÔIØÐr4   )N)Únumpyr   r	   r%   r+   r3   r>   rE   rN   rV   r]   r`   rj   © r4   r$   Ú<module>rm      s?   ðó Û ò ò>ò0ò/òóò?ò-òór4   