     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; 

        return bfFFTC2C1d(
            (void**)&(input->data), (void**)&(output->data),
            input->shape[0], input->dtype,
            input->space);
    else if(input->ndim == 2)
        return bfFFTC2C2d(
            (void**)&(input->data), (void**)&(output->data),
            input->shape[0], input->shape[1], input->dtype,
            input->space);
    return BF_STATUS_INTERNAL_ERROR;
}


 *  Returns whether or not the operation was a success.
 */
BFstatus bfFFT(
    BFarray *input, BFarray *output, int direction)
{
    // TODO: Move plan here.
    // TODO: Make user pass FFT_R2C
    // TODO: Provide same functionality as in cufft_nyquist_packed.cu
    // TODO: Set Ben's callbacks.
    // TODO: Use planMany instead of plan1d.
