class_docstr: Class surrounding CURAND kernels from CUDA 3.2.
  It allows for generating random numbers with uniform
  and normal probability function of various types.
class_docstr_tok: ["Class","surrounding","CURAND","kernels","from","CUDA","3.2",".","It","allows","for","generating","random","numbers","with","uniform","and","normal","probability","function","of","various","types","."]
code: def state(self):
      if self._state is None:
          from pycuda.characterize import sizeof
  
          data_type_size = sizeof(
              self.state_type, "#include <curand_kernel.h>"
          )
  
          self._state = drv.mem_alloc(
              self.block_count
              * self.generators_per_block
              * data_type_size
          )
  
      return self._state
  
imports: import numpy
  import pycuda.compiler
  import pycuda.driver
  import pycuda.gpuarray
  from pytools import memoize_method
label_desc: Use image node_id 5 for calling the _RandomNumberGeneratorBase obj's underlying member method code with example usage: obj.state() and returns: self