edu.emory.mathcs.jtransforms.dht
Class DoubleDHT_3D

java.lang.Object
  extended by edu.emory.mathcs.jtransforms.dht.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
DoubleDHT_3D(int slices, int rows, int columns)
          Creates new instance of DoubleDHT_3D.
 
Method Summary
 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


Copyright © 2012. All Rights Reserved.