code: public static int curandGenerateUniformDouble(curandGenerator generator, Pointer outputPtr, long num)
      {
          return checkResult(curandGenerateUniformDoubleNative(generator, outputPtr, num));
      }
docs: <pre>
  Generate uniformly distributed doubles.
  
  Use generator to generate num double results into the device memory at
  outputPtr.  The device memory must have been previously allocated and be
  large enough to hold all the results.  Launches are done with the stream
  set using ::curandSetStream(), or the null stream if no stream has been set.
  
  Results are 64-bit double precision floating point values between
  0.0 and 1.0, excluding 0.0 and including 1.0.
  
  @param generator - Generator to use
  @param outputPtr - Pointer to device memory to store CUDA-generated results, or
  Pointer to host memory to store CPU-generated results
  @param num - Number of doubles to generate
  
  @return
  
  CURAND_STATUS_NOT_INITIALIZED if the generator was never created
  CURAND_STATUS_PREEXISTING_FAILURE if there was an existing error from
  a previous kernel launch
  CURAND_STATUS_LAUNCH_FAILURE if the kernel launch failed for any reason
  CURAND_STATUS_LENGTH_NOT_MULTIPLE if the number of output samples is
  not a multiple of the quasirandom dimension
  CURAND_STATUS_DOUBLE_PRECISION_REQUIRED if the GPU does not support double precision
  CURAND_STATUS_SUCCESS if the results were generated successfully
  </pre>