code: public static int cufftExecC2C(cufftHandle plan, Pointer cIdata, Pointer cOdata, int direction)
      {
          return checkResult(cufftExecC2CNative(plan, cIdata, cOdata, direction));
      }
docs: <pre>
  Executes a CUFFT complex-to-complex transform plan.
  
  cufftResult cufftExecC2C( cufftHandle plan, cufftComplex *idata, cufftComplex *odata, int direction );
  
  CUFFT uses as input data the GPU memory pointed to by the idata parameter. This
  function stores the Fourier coefficients in the odata array. If idata and
  odata are the same, this method does an in-place transform.
  
  Input
  ----
  plan      The cufftHandle object for the plan to update
  idata     Pointer to the input data (in GPU memory) to transform
  odata     Pointer to the output data (in GPU memory)
  direction The transform direction: CUFFT_FORWARD or CUFFT_INVERSE
  
  Output
  ----
  odata Contains the complex Fourier coefficients
  
  Return Values
  ----
  CUFFT_SETUP_FAILED  CUFFT library failed to initialize.
  CUFFT_INVALID_PLAN  The plan parameter is not a valid handle.
  CUFFT_INVALID_VALUE The idata, odata, and/or direction parameter is not valid.
  CUFFT_EXEC_FAILED   CUFFT failed to execute the transform on GPU.
  CUFFT_SUCCESS       CUFFT successfully executed the FFT plan
  
  JCUFFT_INTERNAL_ERROR If an internal JCufft error occurred
  <pre>