parameters: (x, expk, buf, out)
return_statement: return out.view(x.size())
docstring: compute discrete sine transformation
      yk = \sum_{n=0}^{N-1} x_n cos(pi/N*(n+1/2)*(k+1))
docstring_summary: compute discrete sine transformation
      yk = \sum_{n=0}^{N-1} x_n cos(pi/N*(n+1/2)*(k+1))
docstring_tokens: compute discrete sine transformation yk = \ sum_ { n = 0 } ^ { N - 1 } x_n cos ( pi / N * ( n + 1 / 2 ) * ( k + 1 ))
function: def dst(x, expk, buf, out):
      """compute discrete sine transformation
      yk = \sum_{n=0}^{N-1} x_n cos(pi/N*(n+1/2)*(k+1))
      """
      if x.is_cuda:
          dct_cuda.dst(x.view([-1, x.size(-1)]), expk, buf, out)
      else:
          dct_cpp.dst(x.view([-1, x.size(-1)]), expk, buf, out, torch.get_num_threads())
      return out.view(x.size())
function_tokens: def dst ( x , expk , buf , out ) : if x . is_cuda : dct_cuda . dst ( x . view ( [ - 1 , x . size ( - 1 ) ] ) , expk , buf , out ) else : dct_cpp . dst ( x . view ( [ - 1 , x . size ( - 1 ) ] ) , expk , buf , out , torch . get_num_threads ( ) ) return out . view ( x . size ( ) )