edu.emory.mathcs.jtransforms.dst

## Class FloatDST_3D

• ```public class FloatDST_3D
extends Object```
Computes 3D Discrete Sine Transform (DST) of single 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
```FloatDST_3D(int slices, int rows, int columns)```
Creates new instance of FloatDST_3D.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`void` ```forward(float[][][] a, boolean scale)```
Computes the 3D forward DST (DST-II) leaving the result in `a` .
`void` ```forward(float[] a, boolean scale)```
Computes the 3D forward DST (DST-II) leaving the result in `a` .
`void` ```inverse(float[][][] a, boolean scale)```
Computes the 3D inverse DST (DST-III) leaving the result in `a`.
`void` ```inverse(float[] a, boolean scale)```
Computes the 3D inverse DST (DST-III) leaving the result in `a`.
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### Constructor Detail

• #### FloatDST_3D

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

• #### forward

```public void forward(float[] 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(float[][][] 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(float[] 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(float[][][] 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