Ë
    iKêj  ã                   óÊ  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZmZ  ed«      ej$                  k(  sJ ‚dZded	ed
ededeegef   f
d„Zdeez  deez  defd„Zededededefd„«       Zededededefd„«       Zdeez  deez  deez  deez  fd„Z ed«      Z ed«      ZdZ e j:                  e«      sJ ‚ e j<                  de«      dk(  sJ ‚y)é    N)ÚCallable)Ú
float_info)Úoverload)
Úcount_between_floatsÚfloat_ofÚfloat_to_intÚint_to_floatÚis_negativeÚ	next_downÚnext_down_normalÚnext_upÚnext_up_normalÚwidth_smallest_normalsé@   l   ÿÿÿ Ú	min_valueÚ	max_valueÚ	allow_nanÚsmallest_nonzero_magnitudeÚreturnc                ó¢   ‡ ‡‡‡‡‡— ddl mŠ t        ‰ ‰«      sJ ‚t        ‰‰ z
  t        j
                  «      Šdt        dt        fˆˆˆˆ ˆˆfd„}|S )zN
    Return a function that clamps positive floats into the given bounds.
    r   )Úchoice_permittedÚfr   c                 óØ   •—  ‰| ‰‰‰‰dœ«      r| S t        t        | «      «      t        z  }‰‰|t        z  z  z   } dt        | «      cxk  r‰k  rn n‰} ‰‰kD  r| dz  } t        ‰| ‰«      S )N)r   r   r   r   r   éÿÿÿÿ)r   ÚabsÚmantissa_maskÚclamp)r   Úmantr   r   r   r   Ú
range_sizer   s     €€€€€€ú_/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/hypothesis/internal/floats.pyÚfloat_clamperz)make_float_clamper.<locals>.float_clamper1   sŒ   ø€ ÙØà&Ø&Ø&Ø.Hñ	ô
ð ˆHô œC ›FÓ#¤mÑ3ˆØ˜
 d¬]Ñ&:Ñ;Ñ;ˆð Œs�1‹vÔ2Ð2Õ2Ø*ˆAð
 *¨IÒ5Ø�R‘�ô �Y  9Ó-Ð-ó    )Ú%hypothesis.internal.conjecture.choicer   Úsign_aware_lteÚminr   ÚmaxÚfloat)r   r   r   r   r!   r   r   s   ```` @@r    Úmake_float_clamperr(   "   sN   ý€ õ Gä˜) YÔ/Ð/Ð/Ü�Y Ñ*¬J¯N©NÓ;€Jð.œð .¤5÷ .ò .ð< Ðr"   ÚxÚyc                 óŠ   — | dcxk(  r|k(  r4n | |k  S t        j                  d| «      t        j                  d|«      k  S | |k  S )z5Less-than-or-equals, but strictly orders -0.0 and 0.0ç        g      ð?)ÚmathÚcopysign)r)   r*   s     r    r$   r$   R   sD   € àˆC„}�1„}ð �A‰vˆô �}‰}˜S !Ó$¬¯©°c¸1Ó(=Ñ=Ð=à�A‰vˆr"   ÚlowerÚvalueÚupperc                  ó   — y ©N© ©r/   r0   r1   s      r    r   r   Z   s   € Ø69r"   c                  ó   — y r3   r4   r5   s      r    r   r   \   s   € Ø>Ar"   c                 ó>   — t        | |«      s| S t        ||«      s|S |S )z‚Given a value and lower/upper bounds, 'clamp' the value so that
    it satisfies lower <= value <= upper.  NaN is mapped to lower.)r$   r5   s      r    r   r   ^   s'   € ô ˜% Ô'ØˆÜ˜% Ô'ØˆØ€Lr"   r,   l        À l          é   )r-   Úcollections.abcr   Úsysr   Útypingr   Ú"hypothesis._native.internal.floatsr   r   r   r	   r
   r   r   r   r   r   r%   r   r'   Úboolr(   Úintr$   r   ÚSMALLEST_SUBNORMALÚSIGNALING_NANÚMAX_PRECISE_INTEGERÚisnanr.   r4   r"   r    ú<module>rC      se  ðó Ý $Ý Ý ÷÷ ÷ ñ ˜bÓ! Z§^¡^Ò3Ð 3Ð3à€ð-Øð-àð-ð ð	-ð
 !&ð-ð ˆuˆg�uˆnÑó-ð`�e˜c‘kð  e¨c¡kð °dó ð 
Ø 9�Ð 9˜SÐ 9¨Ð 9°Ò 9ó 
Ø 9Ø	Ø A�Ð A˜uÐ A¨UÐ A°uÒ Aó 
Ø Að�˜‘ð  U¨S¡[ð ¸À¹ð ÈÐQTÉó ñ ˜S“\Ð ÙÐ2Ó3€ØÐ Ø€t‡z�z�-Ô Ð  Ð Ø€t‡}�}�Q˜Ó&¨!Ò+Ð +Ñ+r"   