code: public static int cufftExecC2R(cufftHandle plan, Pointer cIdata, Pointer rOdata)
      {
          return checkResult(cufftExecC2RNative(plan, cIdata, rOdata));
      }
docs: <pre>
  Executes a CUFFT complex-to-real (implicitly inverse) transform plan.
  
  cufftResult cufftExecC2R( cufftHandle plan, cufftComplex *idata, cufftReal *odata );
  
  CUFFT uses as input data the GPU memory pointed to by the idata
  parameter. The input array holds only the non-redundant complex
  Fourier coefficients. This function stores the real output values in the
  odata array. If idata and odata are the same, this method does an inplace
  transform. (See CUFFT documentation for details on real data FFTs.)
  
  Input
  ----
  plan The cufftHandle object for the plan to update
  idata Pointer to the complex input data (in GPU memory) to transform
  odata Pointer to the real output data (in GPU memory)
  
  Output
  ----
  odata Contains the real-valued output data
  
  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 and/or odata 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>