o
    µ3Ih½  ã                   @   sŠ   d Z ddlmZmZ ddlZddlmZ eeejej	ej
ejf  Zdededefdd	„Zdededefd
d„Zdededefdd„ZdS )z4
These functions match what the spec of hnswlib is.
é    )ÚUnionÚcastN)ÚNDArrayÚxÚyÚreturnc                 C   s   t j | | ¡d  ¡ S )Né   )ÚnpÚlinalgÚnormÚitem©r   r   © r   úa/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/chromadb/utils/distance_functions.pyÚl2   s   r   c                 C   sV   d}| j tjks|j tjkrd}ttdt | |¡tj | ¡tj |¡ |    ¡ ƒS )Ng ÂëþKH´9gH¯¼šò×z>ç      ð?)	Údtyper	   Úfloat16r   ÚfloatÚdotr
   r   r   )r   r   ÚNORM_EPSr   r   r   Úcosine   s   *ür   c                 C   s   t tdt | |¡  ¡ ƒS )Nr   )r   r   r	   r   r   r   r   r   r   Úip   s   r   )Ú__doc__Útypingr   r   Únumpyr	   Únumpy.typingr   Úint32Úfloat32Úint16r   ÚVectorr   r   r   r   r   r   r   r   Ú<module>   s    