code: def _dst(x, type, n=None, axis=-1, overwrite_x=False, normalize=None):
      """
      Return Discrete Sine Transform of arbitrary type sequence x.
  
      Parameters
      ----------
      x : array_like
          input array.
      n : int, optional
          Length of the transform.
      axis : int, optional
          Axis along which the dst is computed. (default=-1)
      overwrite_x : bool, optional
          If True the contents of x can be destroyed. (default=False)
  
      Returns
      -------
      z : real ndarray
  
      """
      x0, n, copy_made = __fix_shape(x, n, axis, "DST")
      if type == 1 and n < 2:
          raise ValueError("DST-I is not defined for size < 2")
      overwrite_x = overwrite_x or copy_made
      nm = _get_norm_mode(normalize)
      if np.iscomplexobj(x0):
          return _raw_dst(
              x0.real, type, n, axis, nm, overwrite_x
          ) + 1j * _raw_dst(x0.imag, type, n, axis, nm, overwrite_x)
      else:
          return _raw_dst(x0, type, n, axis, nm, overwrite_x)
  
imports: from __future__ import division, print_function, absolute_import
  import numpy
  from scipy.fftpack import _fftpack
  from scipy.fftpack.basic import _datacopied, _fix_shape, _asfarray
  from scipy.fftpack.helper import _init_nd_shape_and_axes
  import atexit
label_desc: Use image node_id 17 for calling a global function with example usage: _dst(x, type, n, axis, overwrite_x, normalize) and returns: unknown, _raw_dst