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}