package edu.stanford.rsl.conrad.volume3d;
/**
* Class to wrap different FFT libraries
* @author akmaier
*
*/
public abstract class FFTVolumeHandle {
protected boolean debug = false;
public FFTVolumeHandle(VolumeOperator operator){
this.operator = operator;
}
protected VolumeOperator operator;
/**
* Performs a forward Fast Fourier Transform of the Volume
* @param vol the Volume
*/
public abstract void forwardTransform(Volume3D vol);
/**
* Performs a normalized inverse Fast Fourier Transform of the Volume
* @param vol the Volume
*/
public abstract void inverseTransform(Volume3D vol);
public void setVolumeOperator(VolumeOperator operator){
this.operator = operator;
}
/**
* Cleans up the memory. Relevant for FFT implementations which depend on native code.
*/
public abstract void cleanUp();
/**
* Sets the maximal number of threads used for the FFT.
* @param number
*/
public abstract void setThreadNumber(int number);
}
/*
* Copyright (C) 2010-2014 Andreas Maier
* CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
*/