o
    žD®f~  ã                   @   sH   d Z ddlmZ ddlmZmZ ddlmZ g d¢Zedƒdd„ ƒZ	d	S )
z
Miscellaneous utils.
é    )Úasarray)Únormalize_axis_tupleÚnormalize_axis_index)Ú
set_module)Úbyte_boundsr   r   znumpy.lib.array_utilsc           
      C   s¢   | j }|d d }|d }|d }t| ƒjj}| }}|du r*|| j| 7 }||fS t||ƒD ]\}}	|	dk r@||d |	 7 }q/||d |	 7 }q/||7 }||fS )aC  
    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
    --------
    >>> 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ÚshapeNé   )Ú__array_interface__r   ÚdtypeÚitemsizeÚsizeÚzip)
ÚaÚaiÚa_dataÚastridesÚashapeÚbytes_aÚa_lowÚa_highr	   Ústride© r   úT/home/ubuntu/webapp/venv/lib/python3.10/site-packages/numpy/lib/_array_utils_impl.pyr      s   !úr   N)
Ú__doc__Únumpy._corer   Únumpy._core.numericr   r   Únumpy._utilsr   Ú__all__r   r   r   r   r   Ú<module>   s    