code: def test_elwise_kernel(ctx_factory):
      context = ctx_factory()
      queue = cl.CommandQueue(context)
  
      from pyopencl.clrandom import rand as clrand
  
      a_gpu = clrand(queue, (50,), np.float32)
      b_gpu = clrand(queue, (50,), np.float32)
  
      from pyopencl.elementwise import ElementwiseKernel
  
      lin_comb = ElementwiseKernel(
          context,
          "float a, float *x, float b, float *y, float *z",
          "z[i] = a*x[i] + b*y[i]",
          "linear_combination",
      )
  
      c_gpu = cl.array.empty_like(a_gpu)
      lin_comb(5, a_gpu, 6, b_gpu, c_gpu)
  
      assert la.norm((c_gpu - (5 * a_gpu + 6 * b_gpu)).get()) < 1e-5
  
imports: import numpy
  import numpy.linalg
  import sys
  from pytools import memoize
  from test_array import general_clrand
  import pytest
  import pyopencl
  import pyopencl.array
  from pyopencl.tools import pytest_generate_tests_for_pyopencl
  from pyopencl.characterize import has_double_support, has_struct_arg_count_bug
  from pyopencl.scan import InclusiveScanKernel, ExclusiveScanKernel, GenericScanKernel, GenericDebugScanKernel
  from pyopencl.characterize import get_pocl_version
label_desc: Use image node_id 1 for calling a global function with example usage: test_elwise_kernel(ctx_factory) without return types