
    `i	                     :    d dl mZ d dlmZ ddZd Zd Zd	dZdS )
    )_core)_routines_manipulationc                 .    t          j        | ||          S )a\  Moves the specified axis backwards to the given place.

    Args:
        a (cupy.ndarray): Array to move the axis.
        axis (int): The axis to move.
        start (int): The place to which the axis is moved.

    Returns:
        cupy.ndarray: A view of ``a`` that the axis is moved to ``start``.

    .. seealso:: :func:`numpy.rollaxis`

    )r   rollaxis)aaxisstarts      p/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupy/_manipulation/transpose.pyr   r      s     >!T5)))    c                 .    |                      ||          S )a-  Swaps the two axes.

    Args:
        a (cupy.ndarray): Array to swap the axes.
        axis1 (int): The first axis to swap.
        axis2 (int): The second axis to swap.

    Returns:
        cupy.ndarray: A view of ``a`` that the two axes are swapped.

    .. seealso:: :func:`numpy.swapaxes`

    )swapaxes)r   axis1axis2s      r
   r   r      s     ::eU###r   c                     t          |d          s&t          |d          st          j        | ||          S t          j        | ||          S )aG  Moves axes of an array to new positions.

    Other axes remain in their original order.

    Args:
        a (cupy.ndarray): Array whose axes should be reordered.
        source (int or sequence of int):
            Original positions of the axes to move. These must be unique.
        destination (int or sequence of int):
            Destination positions for each of the original axes. These must
            also be unique.

    Returns:
        cupy.ndarray:
        Array with moved axes. This array is a view of the input array.

    .. seealso:: :func:`numpy.moveaxis`

    __len__)hasattrr   _move_single_axisr   moveaxis)r   sourcedestinations      r
   r   r   (   sR    , FI&& P'+y*I*I P%76;OOO>!V[111r   Nc                 ,    |                      |          S )af  Permutes the dimensions of an array.

    Args:
        a (cupy.ndarray): Array to permute the dimensions.
        axes (tuple of ints): Permutation of the dimensions. This function
            reverses the shape by default.

    Returns:
        cupy.ndarray: A view of ``a`` that the dimensions are permuted.

    .. seealso:: :func:`numpy.transpose`

    )	transpose)r   axess     r
   r   r   C   s     ;;tr   )r   )N)cupyr   
cupy._corer   r   r   r   r    r   r
   <module>r      sy          - - - - - -* * * *"$ $ $$2 2 26     r   