clFFT  2.0
clFFT.h
Go to the documentation of this file.
1 /* ************************************************************************
2  * Copyright 2013-2015 Advanced Micro Devices, Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  * ************************************************************************/
16 
17 
26 #pragma once
27 #if !defined( CLFFT_H )
28 #define CLFFT_H
29 
30 #if defined(__APPLE__) || defined(__MACOSX)
31  #include <OpenCL/cl.h>
32 #else
33  #include <CL/cl.h>
34 #endif
35 
36 #include "clFFT.version.h"
37 
45 #if defined( _WIN32 )
46  #if !defined( __cplusplus )
47  #define inline __inline
48  #endif
49 
50  #if defined( CLFFT_STATIC )
51  #define CLFFTAPI
52  #elif defined( CLFFT_EXPORTS )
53  #define CLFFTAPI __declspec( dllexport )
54  #else
55  #define CLFFTAPI __declspec( dllimport )
56  #endif
57 #else
58  #define CLFFTAPI
59 #endif
60 
61 /* In general, you cannot use namespaces for strict C compliance, so we prefix our public accessible names
62  * with the string clfft
63  */
64 
65 /* All functions return pre-defined error codes, and do NOT throw exceptions to the caller.
66  */
67 
75 {
76  CLFFT_INVALID_GLOBAL_WORK_SIZE = CL_INVALID_GLOBAL_WORK_SIZE,
77  CLFFT_INVALID_MIP_LEVEL = CL_INVALID_MIP_LEVEL,
78  CLFFT_INVALID_BUFFER_SIZE = CL_INVALID_BUFFER_SIZE,
79  CLFFT_INVALID_GL_OBJECT = CL_INVALID_GL_OBJECT,
80  CLFFT_INVALID_OPERATION = CL_INVALID_OPERATION,
81  CLFFT_INVALID_EVENT = CL_INVALID_EVENT,
82  CLFFT_INVALID_EVENT_WAIT_LIST = CL_INVALID_EVENT_WAIT_LIST,
83  CLFFT_INVALID_GLOBAL_OFFSET = CL_INVALID_GLOBAL_OFFSET,
84  CLFFT_INVALID_WORK_ITEM_SIZE = CL_INVALID_WORK_ITEM_SIZE,
85  CLFFT_INVALID_WORK_GROUP_SIZE = CL_INVALID_WORK_GROUP_SIZE,
86  CLFFT_INVALID_WORK_DIMENSION = CL_INVALID_WORK_DIMENSION,
87  CLFFT_INVALID_KERNEL_ARGS = CL_INVALID_KERNEL_ARGS,
88  CLFFT_INVALID_ARG_SIZE = CL_INVALID_ARG_SIZE,
89  CLFFT_INVALID_ARG_VALUE = CL_INVALID_ARG_VALUE,
90  CLFFT_INVALID_ARG_INDEX = CL_INVALID_ARG_INDEX,
91  CLFFT_INVALID_KERNEL = CL_INVALID_KERNEL,
92  CLFFT_INVALID_KERNEL_DEFINITION = CL_INVALID_KERNEL_DEFINITION,
93  CLFFT_INVALID_KERNEL_NAME = CL_INVALID_KERNEL_NAME,
94  CLFFT_INVALID_PROGRAM_EXECUTABLE = CL_INVALID_PROGRAM_EXECUTABLE,
95  CLFFT_INVALID_PROGRAM = CL_INVALID_PROGRAM,
96  CLFFT_INVALID_BUILD_OPTIONS = CL_INVALID_BUILD_OPTIONS,
97  CLFFT_INVALID_BINARY = CL_INVALID_BINARY,
98  CLFFT_INVALID_SAMPLER = CL_INVALID_SAMPLER,
99  CLFFT_INVALID_IMAGE_SIZE = CL_INVALID_IMAGE_SIZE,
100  CLFFT_INVALID_IMAGE_FORMAT_DESCRIPTOR = CL_INVALID_IMAGE_FORMAT_DESCRIPTOR,
101  CLFFT_INVALID_MEM_OBJECT = CL_INVALID_MEM_OBJECT,
102  CLFFT_INVALID_HOST_PTR = CL_INVALID_HOST_PTR,
103  CLFFT_INVALID_COMMAND_QUEUE = CL_INVALID_COMMAND_QUEUE,
104  CLFFT_INVALID_QUEUE_PROPERTIES = CL_INVALID_QUEUE_PROPERTIES,
105  CLFFT_INVALID_CONTEXT = CL_INVALID_CONTEXT,
106  CLFFT_INVALID_DEVICE = CL_INVALID_DEVICE,
107  CLFFT_INVALID_PLATFORM = CL_INVALID_PLATFORM,
108  CLFFT_INVALID_DEVICE_TYPE = CL_INVALID_DEVICE_TYPE,
109  CLFFT_INVALID_VALUE = CL_INVALID_VALUE,
110  CLFFT_MAP_FAILURE = CL_MAP_FAILURE,
111  CLFFT_BUILD_PROGRAM_FAILURE = CL_BUILD_PROGRAM_FAILURE,
112  CLFFT_IMAGE_FORMAT_NOT_SUPPORTED = CL_IMAGE_FORMAT_NOT_SUPPORTED,
113  CLFFT_IMAGE_FORMAT_MISMATCH = CL_IMAGE_FORMAT_MISMATCH,
114  CLFFT_MEM_COPY_OVERLAP = CL_MEM_COPY_OVERLAP,
115  CLFFT_PROFILING_INFO_NOT_AVAILABLE = CL_PROFILING_INFO_NOT_AVAILABLE,
116  CLFFT_OUT_OF_HOST_MEMORY = CL_OUT_OF_HOST_MEMORY,
117  CLFFT_OUT_OF_RESOURCES = CL_OUT_OF_RESOURCES,
118  CLFFT_MEM_OBJECT_ALLOCATION_FAILURE = CL_MEM_OBJECT_ALLOCATION_FAILURE,
119  CLFFT_COMPILER_NOT_AVAILABLE = CL_COMPILER_NOT_AVAILABLE,
120  CLFFT_DEVICE_NOT_AVAILABLE = CL_DEVICE_NOT_AVAILABLE,
121  CLFFT_DEVICE_NOT_FOUND = CL_DEVICE_NOT_FOUND,
122  CLFFT_SUCCESS = CL_SUCCESS,
123  //-------------------------- Extended status codes for clfft ----------------------------------------
124  CLFFT_BUGCHECK = 4*1024,
133  CLFFT_ENDSTATUS /* The last value of the enum, and marks the length of clfftStatus. */
134 };
135 typedef enum clfftStatus_ clfftStatus;
136 
138 typedef enum clfftDim_
139 {
140  CLFFT_1D = 1,
144 } clfftDim;
145 
147 typedef enum clfftLayout_
148 {
155 } clfftLayout;
156 
159 typedef enum clfftPrecision_
160 {
166 } clfftPrecision;
167 
169 typedef enum clfftDirection_
170 {
173  CLFFT_MINUS = -1,
176 } clfftDirection;
177 
180 {
184 } clfftResultLocation;
185 
192 } clfftResultTransposed;
193 
195 #define CLFFT_DUMP_PROGRAMS 0x1
196 
203 {
204  cl_uint major;
205  cl_uint minor;
206  cl_uint patch;
209  cl_ulong debugFlags;
213 };
214 typedef struct clfftSetupData_ clfftSetupData;
215 
218 typedef enum clfftCallbackType_
219 {
222 }clfftCallbackType;
223 
225 typedef size_t clfftPlanHandle;
226 
227 #ifdef __cplusplus
228 extern "C" {
229 #endif
230 
235  __inline clfftStatus clfftInitSetupData( clfftSetupData* setupData )
236  {
237  setupData->major = clfftVersionMajor;
238  setupData->minor = clfftVersionMinor;
239  setupData->patch = clfftVersionPatch;
240  setupData->debugFlags = 0;
241 
242  return CLFFT_SUCCESS;
243  }
244 
251  CLFFTAPI clfftStatus clfftSetup( const clfftSetupData* setupData );
252 
257  CLFFTAPI clfftStatus clfftTeardown( );
258 
266  CLFFTAPI clfftStatus clfftGetVersion( cl_uint* major, cl_uint* minor, cl_uint* patch );
267 
277  CLFFTAPI clfftStatus clfftCreateDefaultPlan( clfftPlanHandle* plHandle, cl_context context, const clfftDim dim,
278  const size_t* clLengths );
279 
288  CLFFTAPI clfftStatus clfftCopyPlan( clfftPlanHandle* out_plHandle, cl_context new_context, clfftPlanHandle in_plHandle );
289 
314  CLFFTAPI clfftStatus clfftBakePlan( clfftPlanHandle plHandle, cl_uint numQueues, cl_command_queue* commQueueFFT,
315  void (CL_CALLBACK *pfn_notify)(clfftPlanHandle plHandle, void *user_data), void* user_data );
316 
323  CLFFTAPI clfftStatus clfftDestroyPlan( clfftPlanHandle* plHandle );
324 
332  CLFFTAPI clfftStatus clfftGetPlanContext( const clfftPlanHandle plHandle, cl_context* context );
333 
341  CLFFTAPI clfftStatus clfftGetPlanPrecision( const clfftPlanHandle plHandle, clfftPrecision* precision );
342 
349  CLFFTAPI clfftStatus clfftSetPlanPrecision( clfftPlanHandle plHandle, clfftPrecision precision );
350 
359  CLFFTAPI clfftStatus clfftGetPlanScale( const clfftPlanHandle plHandle, clfftDirection dir, cl_float* scale );
360 
369  CLFFTAPI clfftStatus clfftSetPlanScale( clfftPlanHandle plHandle, clfftDirection dir, cl_float scale );
370 
378  CLFFTAPI clfftStatus clfftGetPlanBatchSize( const clfftPlanHandle plHandle, size_t* batchSize );
379 
387  CLFFTAPI clfftStatus clfftSetPlanBatchSize( clfftPlanHandle plHandle, size_t batchSize );
388 
397  CLFFTAPI clfftStatus clfftGetPlanDim( const clfftPlanHandle plHandle, clfftDim* dim, cl_uint* size );
398 
405  CLFFTAPI clfftStatus clfftSetPlanDim( clfftPlanHandle plHandle, const clfftDim dim );
406 
415  CLFFTAPI clfftStatus clfftGetPlanLength( const clfftPlanHandle plHandle, const clfftDim dim, size_t* clLengths );
416 
424  CLFFTAPI clfftStatus clfftSetPlanLength( clfftPlanHandle plHandle, const clfftDim dim, const size_t* clLengths );
425 
433  CLFFTAPI clfftStatus clfftGetPlanInStride( const clfftPlanHandle plHandle, const clfftDim dim, size_t* clStrides );
434 
444  CLFFTAPI clfftStatus clfftSetPlanInStride( clfftPlanHandle plHandle, const clfftDim dim, size_t* clStrides );
445 
453  CLFFTAPI clfftStatus clfftGetPlanOutStride( const clfftPlanHandle plHandle, const clfftDim dim, size_t* clStrides );
454 
464  CLFFTAPI clfftStatus clfftSetPlanOutStride( clfftPlanHandle plHandle, const clfftDim dim, size_t* clStrides );
465 
475  CLFFTAPI clfftStatus clfftGetPlanDistance( const clfftPlanHandle plHandle, size_t* iDist, size_t* oDist );
476 
486  CLFFTAPI clfftStatus clfftSetPlanDistance( clfftPlanHandle plHandle, size_t iDist, size_t oDist );
487 
495  CLFFTAPI clfftStatus clfftGetLayout( const clfftPlanHandle plHandle, clfftLayout* iLayout, clfftLayout* oLayout );
496 
504  CLFFTAPI clfftStatus clfftSetLayout( clfftPlanHandle plHandle, clfftLayout iLayout, clfftLayout oLayout );
505 
513  CLFFTAPI clfftStatus clfftGetResultLocation( const clfftPlanHandle plHandle, clfftResultLocation* placeness );
514 
522  CLFFTAPI clfftStatus clfftSetResultLocation( clfftPlanHandle plHandle, clfftResultLocation placeness );
523 
531  CLFFTAPI clfftStatus clfftGetPlanTransposeResult( const clfftPlanHandle plHandle, clfftResultTransposed * transposed );
532 
540  CLFFTAPI clfftStatus clfftSetPlanTransposeResult( clfftPlanHandle plHandle, clfftResultTransposed transposed );
541 
542 
550  CLFFTAPI clfftStatus clfftGetTmpBufSize( const clfftPlanHandle plHandle, size_t* buffersize );
551 
565  CLFFTAPI clfftStatus clfftSetPlanCallback(clfftPlanHandle plHandle, const char* funcName, const char* funcString,
566  int localMemSize, clfftCallbackType callbackType, cl_mem *userdata, int numUserdataBuffers);
567 
568 
591  CLFFTAPI clfftStatus clfftEnqueueTransform(
592  clfftPlanHandle plHandle,
593  clfftDirection dir,
594  cl_uint numQueuesAndEvents,
595  cl_command_queue* commQueues,
596  cl_uint numWaitEvents,
597  const cl_event* waitEvents,
598  cl_event* outEvents,
599  cl_mem* inputBuffers,
600  cl_mem* outputBuffers,
601  cl_mem tmpBuffer
602  );
603 
604 #ifdef __cplusplus
605 }
606 #endif
607 
608 #endif
clfftSetPlanDim
CLFFTAPI clfftStatus clfftSetPlanDim(clfftPlanHandle plHandle, const clfftDim dim)
Set the dimensionality of the data that is transformed.
clfftSetupData_::debugFlags
cl_ulong debugFlags
Definition: clFFT.h:209
ENDTRANSPOSED
@ ENDTRANSPOSED
Definition: clFFT.h:191
CLFFT_COMPLEX_PLANAR
@ CLFFT_COMPLEX_PLANAR
Definition: clFFT.h:150
CLFFT_PLUS
@ CLFFT_PLUS
Definition: clFFT.h:174
CLFFT_VERSION_MISMATCH
@ CLFFT_VERSION_MISMATCH
Definition: clFFT.h:129
clfftSetResultLocation
CLFFTAPI clfftStatus clfftSetResultLocation(clfftPlanHandle plHandle, clfftResultLocation placeness)
Set whether the input buffers are to be overwritten with results.
clfftResultTransposed_
clfftResultTransposed_
Determines whether the result is returned in original order. It is valid only for dimensions greater ...
Definition: clFFT.h:188
CLFFT_DOUBLE
@ CLFFT_DOUBLE
Definition: clFFT.h:162
clfftGetPlanInStride
CLFFTAPI clfftStatus clfftGetPlanInStride(const clfftPlanHandle plHandle, const clfftDim dim, size_t *clStrides)
Retrieve the distance between consecutive elements of input buffers in each dimension.
CLFFT_2D
@ CLFFT_2D
Definition: clFFT.h:141
clfftLayout_
clfftLayout_
Specify the expected layouts of the buffers.
Definition: clFFT.h:147
CLFFT_SINGLE_FAST
@ CLFFT_SINGLE_FAST
Definition: clFFT.h:163
clfftInitSetupData
__inline clfftStatus clfftInitSetupData(clfftSetupData *setupData)
Initialize a clfftSetupData struct for the client.
Definition: clFFT.h:235
CLFFT_FORWARD
@ CLFFT_FORWARD
Definition: clFFT.h:171
clfftSetupData_::major
cl_uint major
Definition: clFFT.h:204
ENDDIRECTION
@ ENDDIRECTION
Definition: clFFT.h:175
clfftSetLayout
CLFFTAPI clfftStatus clfftSetLayout(clfftPlanHandle plHandle, clfftLayout iLayout, clfftLayout oLayout)
Set the expected layout of the input and output buffers.
clfftSetupData_::patch
cl_uint patch
Definition: clFFT.h:206
clfftCopyPlan
CLFFTAPI clfftStatus clfftCopyPlan(clfftPlanHandle *out_plHandle, cl_context new_context, clfftPlanHandle in_plHandle)
Create a copy of an existing plan.
CLFFT_OUTOFPLACE
@ CLFFT_OUTOFPLACE
Definition: clFFT.h:182
CLFFT_BUGCHECK
@ CLFFT_BUGCHECK
Definition: clFFT.h:124
ENDDIMENSION
@ ENDDIMENSION
Definition: clFFT.h:143
clfftGetPlanDim
CLFFTAPI clfftStatus clfftGetPlanDim(const clfftPlanHandle plHandle, clfftDim *dim, cl_uint *size)
Retrieve the dimensionality of the data that is transformed.
clfftGetPlanLength
CLFFTAPI clfftStatus clfftGetPlanLength(const clfftPlanHandle plHandle, const clfftDim dim, size_t *clLengths)
Retrieve the length of each dimension of the FFT.
CLFFT_COMPLEX_INTERLEAVED
@ CLFFT_COMPLEX_INTERLEAVED
Definition: clFFT.h:149
clfftGetPlanBatchSize
CLFFTAPI clfftStatus clfftGetPlanBatchSize(const clfftPlanHandle plHandle, size_t *batchSize)
Retrieve the number of discrete arrays that the plan can concurrently handle.
CLFFT_FILE_NOT_FOUND
@ CLFFT_FILE_NOT_FOUND
Definition: clFFT.h:127
CLFFT_TRANSPOSED_NOTIMPLEMENTED
@ CLFFT_TRANSPOSED_NOTIMPLEMENTED
Definition: clFFT.h:126
CLFFT_INPLACE
@ CLFFT_INPLACE
Definition: clFFT.h:181
clfftResultLocation_
clfftResultLocation_
Specify wheter the input buffers are overwritten with results.
Definition: clFFT.h:179
CLFFT_NOTRANSPOSE
@ CLFFT_NOTRANSPOSE
Definition: clFFT.h:189
clfftGetPlanPrecision
CLFFTAPI clfftStatus clfftGetPlanPrecision(const clfftPlanHandle plHandle, clfftPrecision *precision)
Retrieve the floating point precision of the FFT data.
PRECALLBACK
@ PRECALLBACK
Definition: clFFT.h:220
CLFFT_SINGLE
@ CLFFT_SINGLE
Definition: clFFT.h:161
clfftDirection_
clfftDirection_
Specify the expected direction of each FFT, time or the frequency domains.
Definition: clFFT.h:169
clfftGetTmpBufSize
CLFFTAPI clfftStatus clfftGetTmpBufSize(const clfftPlanHandle plHandle, size_t *buffersize)
Get buffer size (in bytes), which may be needed internally for an intermediate buffer.
clfftSetPlanInStride
CLFFTAPI clfftStatus clfftSetPlanInStride(clfftPlanHandle plHandle, const clfftDim dim, size_t *clStrides)
Set the distance between consecutive elements of input buffers in each dimension.
clfftSetupData_::minor
cl_uint minor
Definition: clFFT.h:205
clfftEnqueueTransform
CLFFTAPI clfftStatus clfftEnqueueTransform(clfftPlanHandle plHandle, clfftDirection dir, cl_uint numQueuesAndEvents, cl_command_queue *commQueues, cl_uint numWaitEvents, const cl_event *waitEvents, cl_event *outEvents, cl_mem *inputBuffers, cl_mem *outputBuffers, cl_mem tmpBuffer)
Enqueue an FFT transform operation, and return immediately (non-blocking)
clfftGetPlanContext
CLFFTAPI clfftStatus clfftGetPlanContext(const clfftPlanHandle plHandle, cl_context *context)
Retrieve the OpenCL context of a previously created plan.
clfftStatus_
clfftStatus_
clfft error codes definition(incorporating OpenCL error definitions)
Definition: clFFT.h:74
clfftGetPlanScale
CLFFTAPI clfftStatus clfftGetPlanScale(const clfftPlanHandle plHandle, clfftDirection dir, cl_float *scale)
Retrieve the scaling factor that is applied to the FFT data.
clfftGetLayout
CLFFTAPI clfftStatus clfftGetLayout(const clfftPlanHandle plHandle, clfftLayout *iLayout, clfftLayout *oLayout)
Retrieve the expected layout of the input and output buffers.
clfftSetPlanOutStride
CLFFTAPI clfftStatus clfftSetPlanOutStride(clfftPlanHandle plHandle, const clfftDim dim, size_t *clStrides)
Set the distance between consecutive elements of output buffers in a dimension.
clfftPlanHandle
size_t clfftPlanHandle
An abstract handle to the object that represents the state of the FFT(s)
Definition: clFFT.h:225
CLFFT_3D
@ CLFFT_3D
Definition: clFFT.h:142
clfftGetVersion
CLFFTAPI clfftStatus clfftGetVersion(cl_uint *major, cl_uint *minor, cl_uint *patch)
Query the FFT library for version information.
clfftGetPlanTransposeResult
CLFFTAPI clfftStatus clfftGetPlanTransposeResult(const clfftPlanHandle plHandle, clfftResultTransposed *transposed)
Retrieve the final transpose setting of a multi-dimensional FFT.
CLFFT_TRANSPOSED
@ CLFFT_TRANSPOSED
Definition: clFFT.h:190
CLFFT_BACKWARD
@ CLFFT_BACKWARD
Definition: clFFT.h:172
CLFFT_INVALID_PLAN
@ CLFFT_INVALID_PLAN
Definition: clFFT.h:130
clfftDestroyPlan
CLFFTAPI clfftStatus clfftDestroyPlan(clfftPlanHandle *plHandle)
Release the resources of a plan.
clfftSetPlanPrecision
CLFFTAPI clfftStatus clfftSetPlanPrecision(clfftPlanHandle plHandle, clfftPrecision precision)
Set the floating point precision of the FFT data.
CLFFT_DEVICE_NO_DOUBLE
@ CLFFT_DEVICE_NO_DOUBLE
Definition: clFFT.h:131
clfftGetResultLocation
CLFFTAPI clfftStatus clfftGetResultLocation(const clfftPlanHandle plHandle, clfftResultLocation *placeness)
Retrieve whether the input buffers are to be overwritten with results.
POSTCALLBACK
@ POSTCALLBACK
Definition: clFFT.h:221
clfftSetPlanTransposeResult
CLFFTAPI clfftStatus clfftSetPlanTransposeResult(clfftPlanHandle plHandle, clfftResultTransposed transposed)
Set the final transpose setting of a multi-dimensional FFT.
ENDPRECISION
@ ENDPRECISION
Definition: clFFT.h:165
CLFFT_NOTIMPLEMENTED
@ CLFFT_NOTIMPLEMENTED
Definition: clFFT.h:125
ENDPLACE
@ ENDPLACE
Definition: clFFT.h:183
CLFFT_FILE_CREATE_FAILURE
@ CLFFT_FILE_CREATE_FAILURE
Definition: clFFT.h:128
clfftSetup
CLFFTAPI clfftStatus clfftSetup(const clfftSetupData *setupData)
Initialize the internal FFT resources.
CLFFT_REAL
@ CLFFT_REAL
Definition: clFFT.h:153
CLFFT_HERMITIAN_INTERLEAVED
@ CLFFT_HERMITIAN_INTERLEAVED
Definition: clFFT.h:151
clfftSetupData_
Data structure that can be passed to clfftSetup() to control the behavior of the FFT runtime.
Definition: clFFT.h:202
clfftBakePlan
CLFFTAPI clfftStatus clfftBakePlan(clfftPlanHandle plHandle, cl_uint numQueues, cl_command_queue *commQueueFFT, void(CL_CALLBACK *pfn_notify)(clfftPlanHandle plHandle, void *user_data), void *user_data)
Prepare the plan for execution.
clfftTeardown
CLFFTAPI clfftStatus clfftTeardown()
Release all internal resources.
ENDLAYOUT
@ ENDLAYOUT
Definition: clFFT.h:154
clfftCreateDefaultPlan
CLFFTAPI clfftStatus clfftCreateDefaultPlan(clfftPlanHandle *plHandle, cl_context context, const clfftDim dim, const size_t *clLengths)
Create a plan object initialized entirely with default values.
clfftGetPlanDistance
CLFFTAPI clfftStatus clfftGetPlanDistance(const clfftPlanHandle plHandle, size_t *iDist, size_t *oDist)
Retrieve the distance between array objects.
CLFFT_1D
@ CLFFT_1D
Definition: clFFT.h:140
clfftSetPlanLength
CLFFTAPI clfftStatus clfftSetPlanLength(clfftPlanHandle plHandle, const clfftDim dim, const size_t *clLengths)
Set the length of each dimension of the FFT.
CLFFT_DEVICE_MISMATCH
@ CLFFT_DEVICE_MISMATCH
Definition: clFFT.h:132
CLFFT_MINUS
@ CLFFT_MINUS
Definition: clFFT.h:173
clfftSetPlanBatchSize
CLFFTAPI clfftStatus clfftSetPlanBatchSize(clfftPlanHandle plHandle, size_t batchSize)
Set the number of discrete arrays that the plan can concurrently handle.
clfftDim_
clfftDim_
The dimension of the input and output buffers that is fed into all FFT transforms.
Definition: clFFT.h:138
CLFFT_HERMITIAN_PLANAR
@ CLFFT_HERMITIAN_PLANAR
Definition: clFFT.h:152
clfftSetPlanScale
CLFFTAPI clfftStatus clfftSetPlanScale(clfftPlanHandle plHandle, clfftDirection dir, cl_float scale)
Set the scaling factor that is applied to the FFT data.
clfftSetPlanCallback
CLFFTAPI clfftStatus clfftSetPlanCallback(clfftPlanHandle plHandle, const char *funcName, const char *funcString, int localMemSize, clfftCallbackType callbackType, cl_mem *userdata, int numUserdataBuffers)
Register the callback parameters.
CLFFT_DOUBLE_FAST
@ CLFFT_DOUBLE_FAST
Definition: clFFT.h:164
clfftPrecision_
clfftPrecision_
Specify the expected precision of each FFT.
Definition: clFFT.h:159
CLFFTAPI
#define CLFFTAPI
Definition: clFFT.h:58
clfftGetPlanOutStride
CLFFTAPI clfftStatus clfftGetPlanOutStride(const clfftPlanHandle plHandle, const clfftDim dim, size_t *clStrides)
Retrieve the distance between consecutive elements of output buffers in each dimension.
clfftCallbackType_
clfftCallbackType_
Type of Callback function.
Definition: clFFT.h:218
clfftSetPlanDistance
CLFFTAPI clfftStatus clfftSetPlanDistance(clfftPlanHandle plHandle, size_t iDist, size_t oDist)
Set the distance between array objects.