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

 *       of transformed data
 *  Returns whether or not the operation was a success.
 */
BFstatus bfFFTC2C2d(
    void** input_data, void** output_data, 
    BFsize nelements_x, BFsize nelements_y, 
    unsigned dtype, BFspace space)
{
    cufftComplex* idata = *((cufftComplex**)input_data);
    cufftComplex* odata = *((cufftComplex**)output_data);
    cufftHandle plan;
    cufftPlan2d(&plan, nelements_x, nelements_y, CUFFT_C2C);
    cufftExecC2C(plan, idata, odata, CUFFT_FORWARD);
    return BF_STATUS_SUCCESS;
}

/*! \brief Calls a complex FFT function based on 
 *          specifications in BFarray
 *
 *  inputs:
 *  input - pointer to BFarray that contains data to be

} BFarray;

typedef float BFcomplex[2];
typedef float BFreal;

/*! \brief Calls a 1 dimensional CUDA FFT.
 *
