code: public static int cufftExecR2C(cufftHandle plan, Pointer rIdata, Pointer cOdata)
      {
          return checkResult(cufftExecR2CNative(plan, rIdata, cOdata));
      }
docs: <pre>
  Executes a CUFFT real-to-complex (implicitly forward) transform plan.
  
  cufftResult cufftExecR2C( cufftHandle plan, cufftReal *idata, cufftComplex *odata );
  
  CUFFT uses as input data the GPU memory pointed to by the idata
  parameter. This function stores the non-redundant Fourier coefficients
  in the odata array. If idata and odata are the same, this method does
  an in-place transform (See CUFFT documentation for details on real
  data FFTs.)
  
  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>