001package com.nativelibs4java.opencl.util.fft;
002
003import com.nativelibs4java.opencl.*;
004import com.nativelibs4java.opencl.CLPlatform.DeviceFeature;
005import com.nativelibs4java.util.*;
006import java.io.File;
007import java.io.IOException;
008import java.nio.FloatBuffer;
009
010/**
011 * Slow OpenCL Fourier Transform that works in all cases (simple precision floating point numbers)
012 */
013public class FloatDFT extends AbstractDFT<Float, float[]> {
014
015    final FloatDFTProgram program;
016
017    public FloatDFT(CLContext context) throws IOException, CLException {
018        super(context, Float.class);
019        program = new FloatDFTProgram(context);
020    }
021    public FloatDFT() throws IOException {
022        this(JavaCL.createBestContext());
023    }
024
025    @Override
026    protected CLEvent dft(CLQueue queue, CLBuffer<Float> inBuf, CLBuffer<Float> outBuf, int length, int sign, int[] dims, CLEvent... events) throws CLException {
027        return program.dft(queue, inBuf, outBuf, length, sign, dims, null, events);
028    }
029}