     my_data.ndim = 2;
     my_data.strides[0] = 3*sizeof(BFcomplex);
     my_data.strides[1] = sizeof(BFcomplex);
-    if (bfFFT(&my_data, &my_data) != BF_STATUS_SUCCESS)
+    if (bfFFT(&my_data, &my_data, FFT_FORWARD) != BF_STATUS_SUCCESS)
     {
         printf("bfFFT failed!\n");
         return; 

BFstatus bfFFTC2C1d(
    void** input_data, void** output_data, 
    BFsize nelements, unsigned dtype,
    BFspace space)
{
    cufftComplex* idata = *((cufftComplex**)input_data);
    cufftComplex* odata = *((cufftComplex**)output_data);
    cufftHandle plan;
    cufftPlan1d(&plan, nelements, CUFFT_C2C, 1);
    cufftExecC2C(plan, idata, odata, CUFFT_FORWARD);
    return BF_STATUS_SUCCESS;
}


BFstatus bfFFTC2C2d(
    void** input_data, void** output_data, 
    BFsize nelements_x, BFsize nelements_y, 
    unsigned dtype, BFspace space, int direction)
{
    cufftComplex* idata = *((cufftComplex**)input_data);
    cufftComplex* odata = *((cufftComplex**)output_data);
    cufftHandle plan;
    cufftPlan2d(&plan, nelements_x, nelements_y, CUFFT_C2C);
    cufftExecC2C(plan, idata, odata, direction);
    return BF_STATUS_SUCCESS;
}

