code: public static int curandGeneratePoisson(curandGenerator generator, Pointer outputPtr, long n, double lambda)
      {
          return checkResult(curandGeneratePoissonNative(generator, outputPtr, n, lambda));
      }
docs: <pre>
  Generate Poisson-distributed unsigned ints.
  
  Use generator to generate n unsigned int results into device memory at
  outputPtr.  The device memory must have been previously allocated and must 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 32-bit unsigned int point values with Poisson distribution,
  with lambda lambda.
  
  @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 n - Number of unsigned ints to generate
  @param lambda - lambda for the Poisson distribution
  
  @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 or sm does not support double precision
  - CURAND_STATUS_OUT_OF_RANGE if lambda is non-positive or greater than 400,000
  - CURAND_STATUS_SUCCESS if the results were generated successfully
  </pre>