class_docstr: Faster version of ArrayStep that requires the substep method that does not wrap
     the functions the step method uses.
  
  Works by setting shared variables before using the step. This eliminates the mapping
  and unmapping overhead as well as moving fewer variables around.
class_docstr_tok: ["Faster","version","of","ArrayStep","that","requires","the","substep","method","that","does","not","wrap","the","functions","the","step","method","uses",".","Works","by","setting","shared","variables","before","using","the","step",".","This","eliminates","the","mapping","and","unmapping","overhead","as","well","as","moving","fewer","variables","around","."]
docstr: Perform a single sample step in a raveled and concatenated parameter space.
docstr_tok: ["Perform","a","single","sample","step","in","a","raveled","and","concatenated","parameter","space","."]
code: def astep(self, q0: RaveledVars) -> Tuple[RaveledVars, StatsType]:
      """Perform a single sample step in a raveled and concatenated parameter space."""
  
imports: from abc import abstractmethod
  from typing import Callable, List, Tuple, Union, cast
  import numpy
  from numpy.random import uniform
  from pymc.blocking import DictToArrayBijection, PointType, RaveledVars, StatsType
  from pymc.model import modelcontext
  from pymc.step_methods.compound import BlockedStep
  from pymc.util import get_var_name
label_desc: Use image node_id 3 for calling the ArrayStepShared obj's underlying member method code with example usage: obj.astep(q0) without return types