edu.emory.mathcs.jtransforms.dht

## Class DoubleDHT_3D

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

All Methods
Modifier and Type Method and Description
`void` `forward(double[] a)`
Computes the 3D real, forward DHT leaving the result in `a`.
`void` `forward(double[][][] a)`
Computes the 3D real, forward DHT leaving the result in `a`.
`void` ```inverse(double[][][] a, boolean scale)```
Computes the 3D real, inverse DHT leaving the result in `a`.
`void` ```inverse(double[] a, boolean scale)```
Computes the 3D real, inverse DHT 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

• #### DoubleDHT_3D

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

• #### forward

`public void forward(double[] a)`
Computes the 3D real, forward DHT 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
• #### forward

`public void forward(double[][][] a)`
Computes the 3D real, forward DHT leaving the result in `a`. The data is stored in 3D array.
Parameters:
`a` - data to transform
• #### inverse

```public void inverse(double[] a,
boolean scale)```
Computes the 3D real, inverse DHT 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 real, inverse DHT leaving the result in `a`. The data is stored in 3D array.
Parameters:
`a` - data to transform
`scale` - if true then scaling is performed