package com.nativelibs4java.opencl.util.fft;
import com.nativelibs4java.opencl.*;
import com.nativelibs4java.opencl.CLPlatform.DeviceFeature;
import com.nativelibs4java.util.*;
import java.io.File;
import java.io.IOException;
import java.nio.FloatBuffer;
/**
* Slow OpenCL Fourier Transform that works in all cases (simple precision floating point numbers)
*/
public class FloatDFT extends AbstractDFT<Float, float[]> {
final FloatDFTProgram program;
public FloatDFT(CLContext context) throws IOException, CLException {
super(context, Float.class);
program = new FloatDFTProgram(context);
}
public FloatDFT() throws IOException {
this(JavaCL.createBestContext());
}
@Override
protected CLEvent dft(CLQueue queue, CLBuffer<Float> inBuf, CLBuffer<Float> outBuf, int length, int sign, int[] dims, CLEvent... events) throws CLException {
return program.dft(queue, inBuf, outBuf, length, sign, dims, null, events);
}
}