code: def get_unary_func_kernel(
      context, func_name, in_dtype, out_dtype=None
  ):
      if out_dtype is None:
          out_dtype = in_dtype
  
      return get_elwise_kernel(
          context,
          [
              VectorArg(out_dtype, "z", with_offset=True),
              VectorArg(in_dtype, "y", with_offset=True),
          ],
          f"z[i] = {func_name}(y[i])",
          name=f"{func_name}_kernel",
      )
  
imports: import enum
  from typing import Any, List, Optional, Tuple, Union
  import numpy
  import pyopencl
  from pyopencl.tools import context_dependent_memoize
  from pyopencl.tools import dtype_to_ctype, DtypedArgument, VectorArg, ScalarArg, KernelTemplateBase, dtype_to_c_struct
  from pytools import memoize_method
label_desc: Use image node_id 26 for calling a global function with example usage: get_unary_func_kernel(context, func_name, in_dtype, out_dtype) and returns: get_elwise_kernel