class_docstr: .. warning::
  
      This class is deprecated, to be removed in PyOpenCL 2018.x.
  
  .. versionadded:: 2011.2
  
  .. attribute:: state
  
      A :class:`pyopencl.array.Array` containing the state of the generator.
  
  .. attribute:: nskip
  
      nskip is an integer which can (optionally) be defined in the kernel
      code as RANLUXCL_NSKIP. If this is done the generator will be faster
      for luxury setting 0 and 1, or when the p-value is manually set to a
      multiple of 24.
class_docstr_tok: ["..","warning",":",":","This","class","is","deprecated",",","to","be","removed","in","PyOpenCL","2018.x",".","..","versionadded",":",":","2011.2","..","attribute",":",":","state","A",":","class",":","`","pyopencl.array.Array","`","containing","the","state","of","the","generator",".","..","attribute",":",":","nskip","nskip","is","an","integer","which","can","(","optionally",")","be","defined","in","the","kernel","code","as","RANLUXCL_NSKIP",".","If","this","is","done","the","generator","will","be","faster","for","luxury","setting","0","and","1",",","or","when","the","p-value","is","manually","set","to","a","multiple","of","24","."]
docstr: Fill *ary* with normally distributed numbers with mean *mu* and
  standard deviation *sigma*.
  
  .. versionchanged:: 2014.1.1
  
      Added return value.
docstr_tok: ["Fill","*","ary","*","with","normally","distributed","numbers","with","mean","*","mu","*","and","standard","deviation","*","sigma","*",".","..","versionchanged",":",":","2014.1.1","Added","return","value","."]
code: def fill_normal(self, ary, mu=0, sigma=1, queue=None):
      """Fill *ary* with normally distributed numbers with mean *mu* and
      standard deviation *sigma*.
  
      .. versionchanged:: 2014.1.1
  
          Added return value.
      """
  
      if queue is None:
          queue = ary.queue
  
      knl, size_multiplier = self.get_gen_kernel(ary.dtype, "normal")
      evt = knl(
          queue,
          (self.num_work_items,),
          self.wg_size,
          self.state.data,
          ary.data,
          ary.size * size_multiplier,
          sigma,
          mu,
          wait_for=ary.events,
      )
      ary.add_event(evt)
      self.state.add_event(evt)
      return evt
  
imports: import pyopencl
  import pyopencl.array
  import pyopencl.cltypes
  from pyopencl.tools import first_arg_dependent_memoize
  from pytools import memoize_method
  import numpy
label_desc: Use image node_id 6 for calling the RanluxGenerator obj's underlying member method code with example usage: obj.fill_normal(ary, mu, sigma, queue) and returns: evt