+
    Ail                     &    ^ RI tR tRRRR/R ltR# )    Nc                    \        V 4      ^8  dC   V ^ ,          ^,          R8X  d.   V ^,          V ^ ,          ,
          ^8X  d   \        P                  pM\        P                  pV! V 4      P	                  \
        4      # )a  Round coords while ensuring successive values are less than 1 apart.

When rounding coordinates for `line_nd`, we want coordinates that are less
than 1 apart (always the case, by design) to remain less than one apart.
However, NumPy rounds values to the nearest *even* integer, so:

>>> np.round([0.5, 1.5, 2.5, 3.5, 4.5])
array([0., 2., 2., 4., 4.])

So, for our application, we detect whether the above case occurs, and use
``np.floor`` if so. It is sufficient to detect that the first coordinate
falls on 0.5 and that the second coordinate is 1.0 apart, since we assume
by construction that the inter-point distance is less than or equal to 1
and that all successive points are equidistant.

Parameters
----------
coords : 1D array of float
    The coordinates array. We assume that all successive values are
    equidistant (``np.all(np.diff(coords) = coords[1] - coords[0])``)
    and that this distance is no more than 1
    (``np.abs(coords[1] - coords[0]) <= 1``).

Returns
-------
rounded : 1D array of int
    The array correctly rounded for an indexing operation, such that no
    successive indices will be more than 1 apart.

Examples
--------
>>> coords0 = np.array([0.5, 1.25, 2., 2.75, 3.5])
>>> _round_safe(coords0)
array([0, 1, 2, 3, 4])
>>> coords1 = np.arange(0.5, 8, 1)
>>> coords1
array([0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5])
>>> _round_safe(coords1)
array([0, 1, 2, 3, 4, 5, 6, 7])
g      ?)lennpfloorroundastypeint)coords_round_functions   & R/var/www/html/photoedit/myenv/lib/python3.14/site-packages/skimage/draw/draw_nd.py_round_safer      s[    R 6{Q6!9q=C/F1Iq	4IQ4N((((6"))#..    endpointFintegerTc          
        \         P                  ! V 4      p \         P                  ! V4      p\        \         P                  ! \         P                  ! \         P
                  ! W,
          4      4      4      4      pV'       d
   V^,          p\         P                  ! WWBR7      P                  pV'       dH   \        \        V 4      4       F  p\        WVR3,          4      WVR3&   K  	  VP                  \        4      p\        V4      # )a  Draw a single-pixel thick line in n dimensions.

The line produced will be ndim-connected. That is, two subsequent
pixels in the line will be either direct or diagonal neighbors in
n dimensions.

Parameters
----------
start : array-like, shape (N,)
    The start coordinates of the line.
stop : array-like, shape (N,)
    The end coordinates of the line.
endpoint : bool, optional
    Whether to include the endpoint in the returned line. Defaults
    to False, which allows for easy drawing of multi-point paths.
integer : bool, optional
    Whether to round the coordinates to integer. If True (default),
    the returned coordinates can be used to directly index into an
    array. `False` could be used for e.g. vector drawing.

Returns
-------
coords : tuple of arrays
    The coordinates of points on the line.

Examples
--------
>>> lin = line_nd((1, 1), (5, 2.5), endpoint=False)
>>> lin
(array([1, 2, 3, 4]), array([1, 1, 2, 2]))
>>> im = np.zeros((6, 5), dtype=int)
>>> im[lin] = 1
>>> im
array([[0, 0, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0]])
>>> line_nd([2, 1, 1], [5, 5, 2.5], endpoint=True)
(array([2, 3, 4, 4, 5]), array([1, 2, 3, 4, 5]), array([1, 1, 2, 2, 2]))
)numr   :NNN)r   asarrayr	   ceilmaxabslinspaceTranger   r   r   tuple)startstopr   r   npointsr
   dims   &&$$   r   line_ndr   4   s    V JJuE::dD"''"&&!5678G1[['EGGFU$C(Q8F6N % s#=r   )numpyr   r   r    r   r   <module>r"      s!    -/`8U 8D 8r   