code: def forward(self, inputs):
      self._config_use_ideep = chainer.config.use_ideep
      if intel64.should_use_ideep(
          ">=auto"
      ) and intel64.inputs_all_ready(inputs):
          # iDeep implementation
          return self._forward_ideep(inputs)
  
      # Generic implementation
      if len(inputs) == 3:
          x, W, b = inputs
      else:
          (x, W), b = inputs, None
  
      # NumPy raises an error when the array is not contiguous.
      # See: https://github.com/chainer/chainer/issues/2744
      # TODO(niboshi): Remove this code when NumPy is fixed.
      if (
          isinstance(x, numpy.ndarray)
          and not (x.flags.c_contiguous or x.flags.f_contiguous)
          and 1 in x.shape
      ):
          x = numpy.ascontiguousarray(x)
  
      # In order to be compatible with the "static graph" feature, it is
      # required that all output arrays of this forward
      # function be allocated explicitly:
      xp = backend.get_array_module(x)
      y = xp.empty((x.shape[0], W.shape[0]), dtype=x.dtype)
  
      # This is required because all of the "static_*()" functions
      # use the convention that any output arrays are supplied
      # as input arguments to the function. That is because it is
      # not allowed for a "static_*()" function to return anything
      # other than `None`. The reason is to prevent dynamic allocation
      # of output arrays during execution of the static schedule
      # because it would break the model.
      self.static_linear_no_bias(
          xp, x.dtype == W.dtype, inputs=[x, W], outputs=[y]
      )
      if len(inputs) == 3:
          self.static_add_bias(inputs=[b], outputs=[y])
  
      self.retain_inputs((0, 1))  # b is not retained
      return (y,)
  
imports: import numpy
  from chainer import backend
  from chainer.backends import intel64
  from chainer import function_node
  import chainer.functions
  from chainer.graph_optimizations import static_code
  from chainer import utils
  from chainer.utils import type_check
  import chainerx
label_desc: Use image node_id 5 for calling the LinearFunction obj's underlying member method code with example usage: obj.forward(inputs) and returns: y, self