rete Sine Transform along the specified axes.

Parameters
----------
x : array_like
    The input array.
type : {1, 2, 3, 4}, optional
    Type of the DST (see Notes). Default type is 2.
shape : int or array_like of ints or None, optional
    The shape of the result.  If both `shape` and `axes` (see below) are
    None, `shape` is ``x.shape``; if `shape` is None but `axes` is
    not None, then `shape` is ``numpy.take(x.shape, axes, axis=0)``.
    If ``shape[i] > x.shape[i]``, the ith dimension is padded with zeros.
    If ``shape[i] < x.shape[i]``, the ith dimension is truncated to
    length ``shape[i]``.
    If any element of `shape` is -1, the size of the corresponding
    dimension of `x` is used.
axes : int or array_like of ints or None, optional
    Axes along which the DCT is computed.
    The default is over all axes.
norm : {None, 'ortho'}, optional
    Normalization mode (see Notes). Default is None.
overwrite_x : bool, optional
    If True, the contents of `x` can be destroyed; the default is False.

Returns
-------
y : ndarray of real
    The transformed input array.

See Also
--------
idstn : Inverse multidimensional DST

Notes
-----
For full details of the DST types and normalization modes, as well as
references, see `dst`.

Examples
--------
>>> import numpy as np
>>> from scipy.fftpack import dstn, idstn
>>> rng = np.random.default_rng()
>>> y = rng.standard_normal((16, 16))
>>> np.allclose(y, idstn(dstn(y, norm='ortho'), norm='ortho'))
True

)