edu.emory.mathcs.jtransforms.dst

Class DoubleDST_3D

• public class DoubleDST_3D
extends Object
Computes 3D Discrete Sine Transform (DST) of double precision data. The sizes of all three dimensions can be arbitrary numbers. This is a parallel implementation optimized for SMP systems.

Part of code is derived from General Purpose FFT Package written by Takuya Ooura (http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html)
Author:
Piotr Wendykier (piotr.wendykier@gmail.com)
• Constructor Summary

Constructors
Constructor and Description
DoubleDST_3D(int slices, int rows, int columns)
Creates new instance of DoubleDST_3D.
• Method Summary

All Methods
Modifier and Type Method and Description
void forward(double[][][] a, boolean scale)
Computes the 3D forward DST (DST-II) leaving the result in a .
void forward(double[] a, boolean scale)
Computes the 3D forward DST (DST-II) leaving the result in a .
void inverse(double[][][] a, boolean scale)
Computes the 3D inverse DST (DST-III) leaving the result in a.
void inverse(double[] a, boolean scale)
Computes the 3D inverse DST (DST-III) leaving the result in a.
• Constructor Detail

• DoubleDST_3D

public DoubleDST_3D(int slices,
int rows,
int columns)
Creates new instance of DoubleDST_3D.
Parameters:
slices - number of slices
rows - number of rows
columns - number of columns
• Method Detail

• forward

public void forward(double[] a,
boolean scale)
Computes the 3D forward DST (DST-II) leaving the result in a . The data is stored in 1D array addressed in slice-major, then row-major, then column-major, in order of significance, i.e. the element (i,j,k) of 3D array x[slices][rows][columns] is stored in a[i*sliceStride + j*rowStride + k], where sliceStride = rows * columns and rowStride = columns.
Parameters:
a - data to transform
scale - if true then scaling is performed
• forward

public void forward(double[][][] a,
boolean scale)
Computes the 3D forward DST (DST-II) leaving the result in a . The data is stored in 3D array.
Parameters:
a - data to transform
scale - if true then scaling is performed
• inverse

public void inverse(double[] a,
boolean scale)
Computes the 3D inverse DST (DST-III) leaving the result in a. The data is stored in 1D array addressed in slice-major, then row-major, then column-major, in order of significance, i.e. the element (i,j,k) of 3D array x[slices][rows][columns] is stored in a[i*sliceStride + j*rowStride + k], where sliceStride = rows * columns and rowStride = columns.
Parameters:
a - data to transform
scale - if true then scaling is performed
• inverse

public void inverse(double[][][] a,
boolean scale)
Computes the 3D inverse DST (DST-III) leaving the result in a. The data is stored in 3D array.
Parameters:
a - data to transform
scale - if true then scaling is performed