ó
    Ä
9jí  ã                  óJ   • S SK Jr  S SKrS SKJr  S	S jrS rS rS	S jrS r	g)
é    )ÚannotationsN)Ú_corec                ó0   • [         R                  " XU5      $ )a0  Splits an array into multiple sub arrays along a given axis.

This function is almost equivalent to :func:`cupy.split`. The only
difference is that this function allows an integer sections that does not
evenly divide the axis.

.. seealso:: :func:`cupy.split` for more detail, :func:`numpy.array_split`

)r   Úarray_split)ÚaryÚindices_or_sectionsÚaxiss      ÚR/home/wildlama/miniconda3/lib/python3.13/site-packages/cupy/_manipulation/split.pyr   r      s   € ô ×Ò˜S°tÓ<Ð<ó    c                óP   • U R                   S::  a  [        S5      e[        XS5      $ )z¹Splits an array into multiple sub arrays along the third axis.

This is equivalent to ``split`` with ``axis=2``.

.. seealso:: :func:`cupy.split` for more detail, :func:`numpy.dsplit`

é   z2Cannot dsplit an array with less than 3 dimensions©ÚndimÚ
ValueErrorÚsplit©r   r   s     r
   Údsplitr      ó(   € ð ‡xx1ƒ}ÜÐMÓNÐNÜ¨1Ó-Ð-r   c                óˆ   • U R                   S:X  a  [        S5      eU R                   S:X  a  [        XS5      $ [        XS5      $ )zòSplits an array into multiple sub arrays horizontally.

This is equivalent to ``split`` with ``axis=0`` if ``ary`` has one
dimension, and otherwise that with ``axis=1``.

.. seealso:: :func:`cupy.split` for more detail, :func:`numpy.hsplit`

r   z&Cannot hsplit a zero-dimensional arrayé   r   r   s     r
   Úhsplitr   "   s@   € ð ‡xx1ƒ}ÜÐAÓBÐBØ
‡xx1ƒ}ÜS¨qÓ1Ð1äS¨qÓ1Ð1r   c                óÊ   • U R                   U::  a  [        S5      eU R                  U   n[        R                  " U5      (       a  X1-  S:w  a  [        S5      e[        XU5      $ )as  Splits an array into multiple sub arrays along a given axis.

Args:
    ary (cupy.ndarray): Array to split.
    indices_or_sections (int or sequence of ints): A value indicating how
        to divide the axis. If it is an integer, then is treated as the
        number of sections, and the axis is evenly divided. Otherwise,
        the integers indicate indices to split at. Note that the sequence
        on the device memory is not allowed.
    axis (int): Axis along which the array is split.

Returns:
    A list of sub arrays. Each array is a view of the corresponding input
    array.

.. seealso:: :func:`numpy.split`

zAxis exceeds ndimr   zindices_or_sections must divide the size along the axes.
If you want to split the array into non-equally-sized arrays, use array_split instead.)r   Ú
IndexErrorÚshapeÚnumpyÚisscalarr   r   )r   r   r	   Úsizes       r
   r   r   3   se   € ð& ‡xx4ÓÜÐ,Ó-Ð-Ø9‰9T‰?€Dä‡~‚~Ð)×*Ñ*ØÑ%¨Ó*Üð3ó4ð 4ô s°Ó6Ð6r   c                óP   • U R                   S::  a  [        S5      e[        XS5      $ )z¹Splits an array into multiple sub arrays along the first axis.

This is equivalent to ``split`` with ``axis=0``.

.. seealso:: :func:`cupy.split` for more detail, :func:`numpy.dsplit`

r   z2Cannot vsplit an array with less than 2 dimensionsr   r   r   s     r
   Úvsplitr   S   r   r   )r   )
Ú
__future__r   r   Úcupyr   r   r   r   r   r   © r   r
   Ú<module>r#      s(   ðÝ "ã å ô
=ò
.ò2ô"7ó@
.r   