
    Kh                     T    S r SSKJr  SSKJrJr  SSKJr  / SQr\" S5      S 5       r	g)	z
Miscellaneous utils.
    )asarray)normalize_axis_tuplenormalize_axis_index)
set_module)byte_boundsr   r   znumpy.lib.array_utilsc                    U R                   nUS   S   nUS   nUS   n[        U 5      R                  R                  nU=pgUc  XpR                  U-  -  nXg4$ [        XC5       H!  u  pU	S:  a  XhS-
  U	-  -  nM  XxS-
  U	-  -  nM#     Xu-  nXg4$ )a  
Returns pointers to the end-points of an array.

Parameters
----------
a : ndarray
    Input array. It must conform to the Python-side of the array
    interface.

Returns
-------
(low, high) : tuple of 2 integers
    The first integer is the first byte of the array, the second
    integer is just past the last byte of the array.  If `a` is not
    contiguous it will not use every byte between the (`low`, `high`)
    values.

Examples
--------
>>> import numpy as np
>>> I = np.eye(2, dtype='f'); I.dtype
dtype('float32')
>>> low, high = np.lib.array_utils.byte_bounds(I)
>>> high - low == I.size*I.itemsize
True
>>> I = np.eye(2); I.dtype
dtype('float64')
>>> low, high = np.lib.array_utils.byte_bounds(I)
>>> high - low == I.size*I.itemsize
True

datar   stridesshape   )__array_interface__r   dtypeitemsizesizezip)
aaia_dataastridesashapebytes_aa_lowa_highr   strides
             M/var/www/html/env/lib/python3.13/site-packages/numpy/lib/_array_utils_impl.pyr   r      s    D 
		BZ]F)}H[Faj''GE&&7"" = !2MEz'6))7F**	 3
 	=    N)
__doc__numpy._corer   numpy._core.numericr   r   numpy._utilsr   __all__r    r   r   <module>r#      s4      J #
I #$2 %2r   