o
    ÓÙ¾i#  ã                   @   sZ   d dl mZ d dlmZmZ d dlmZ ej	ddejde	de	de
d	e
d
dfdd„ƒZdS )é    N)ÚFloat32Ú
const_exprTFÚarrÚiÚjÚ	ascendingÚuse_selectionÚreturnc           	      C   sÞ   t |ƒr | | | | }}||k| A r|| |< || |< dS dS t | jtkƒr)tntj}t | jtkƒr5tntjj	}t |ƒrV|| | | | ƒ|| | | | ƒ| |< | |< dS || | | | ƒ|| | | | ƒ| |< | |< dS )zNCompare and swap elements at indices i and j in ascending or descending order.N)
r   Úelement_typer   ÚminÚutilsÚfminÚmaxÚcuteÚarchÚfmax)	r   r   r   r   r   ÚaÚbÚmin_fnÚmax_fn© r   úD/home/ubuntu/.local/lib/python3.10/site-packages/quack/sort/utils.pyÚcompare_and_swap   s   þ22r   )TF)Úcutlass.cuter   Úcutlassr   r   Úquack.utilsr   ÚjitÚTensorÚintÚboolr   r   r   r   r   Ú<module>   s$    ÿÿÿÿÿÿþ