dst(X, dims[, type=1])
Replaces the columns of a dense real matrix with their discrete sine transforms. The second argument, an integer between 1 and 4, denotes the type of transform (DST-I, DST-II, DST-III, DST-IV). These transforms are defined as follows (for a matrix with n rows).
![n∑-1
DST -I: X[k,:] := 2 X [j,:]sin(π (j + 1)(k+ 1)∕(n+ 1)), k = 0,...,n - 1.
j=0
n∑-1
DST -II: X[k,:] := 2 X [j,:]sin(π (j + 1∕2)(k+ 1)∕n), k = 0,...,n - 1.
j=0
k n∑-2
DST-III: X[k,:] := (- 1)X [n- 1,:]+ 2 X [j,:]sin(π(j + 1)(k+ 1∕2)∕n), k = 0,...,n - 1.
j=0
n∑-1
DST-IV: X[k,:] := 2 X [j,:]sin(π (j + 1∕2)(k+ 1∕2)∕n), k = 0,...,n - 1.
j=0](cvxopt97x.png)
idst(X, dims[, type=1])
Replaces the columns of a dense real matrix with the inverses of the discrete sine transforms defined above.
The module also includes a discrete N-dimensional sine transform. The input matrix is interpreted as an N-dimensional matrix stored in column-major order. The discrete N-dimensional sine transform computes the corresponding one-dimensional transform along each dimension. For example, the two-dimensional transform applies a one-dimensional transform to all the rows of the matrix, followed by a one-dimensional transform to all the columns of the matrix.
dstn(X[, dims=X.size[, type=2]])
Replaces a dense real matrix with its N-dimensional discrete sine transform. The dimensions of the N-dimensional matrix are given by the N-tuple dim. The two-dimensional transform is computed as dstn(X, X.size).
idstn(X[, dims=X.size[, type=2]])
Replaces a dense real N-dimensional matrix with its inverse N-dimensional discrete sine transform. The dimensions of the matrix are given by the tuple dim. The two-dimensional inverse transform is computed as idstn(X, X.size).