
    i                     F    S SK JrJrJrJrJrJr  S SKJr  S\	S\	S\	4S jr
g)    )fabsinfisinfisnannansqrt)
float_infohareturnc                 r   [        U 5      (       a  [        $ [        U 5      (       a  [        U5      (       a  [        $ [        $ [	        U 5      n [	        U5      nX:  a  [        $ U [        [        R                  5      :  ab  U [        R                  S-  :  a/  [        X-
  5      [        U S-  US-  -   5      -  [        S5      -  nOg[        X-
  5      [        X-   5      -  nOKU [        [        R                  5      :  a  [        X-
  5      [        X-   5      -  nO[        X-
  X-   -  5      n[        X 5      $ )a  Given the lengths of the hypotenuse and a side of a right triangle,
return the length of the other side.

A companion to the C99 hypot() function.  Some care is needed to avoid
underflow in the case of small arguments, and overflow in the case of
large arguments as would occur for the naive implementation as
sqrt(h*h - a*a).  The behaviour with respect the non-finite arguments
(NaNs and infinities) is designed to be as consistent as possible with
the C99 hypot() specifications.

This function relies on the system ``sqrt`` function and so, like it,
may be inaccurate up to a relative error of (around) floating-point
epsilon.

Based on the C99 implementation https://gitlab.com/jjg/cathetus
   )	r   r   r   r   r   r   r	   maxmin)r
   r   bs      [/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/hypothesis/internal/cathetus.pycathetusr      s    " Qxx
Qxx88J JQAQAu
 	4
z~~!!QUd1q51q5=11DG;AQUd15k)A	
T*..!	!K$qu+%!%AE"#q9    N)mathr   r   r   r   r   r   sysr	   floatr    r   r   <module>r      s*    4 3 / /% /E /r   