code: def get_elwise_kernel(
      context: cl.Context,
      arguments: Union[str, List[DtypedArgument]],
      operation: str,
      *,
      name: str = "elwise_kernel",
      options: Any = None,
      **kwargs: Any,
  ) -> cl.Kernel:
      """Return a L{pyopencl.Kernel} that performs the same scalar operation
      on one or several vectors.
      """
      func, arguments = get_elwise_kernel_and_types(
          context,
          arguments,
          operation,
          name=name,
          options=options,
          **kwargs,
      )
  
      return func
  
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 3 for calling a global function with example usage: get_elwise_kernel(context, arguments, operation) and returns: func