code: def backward(self, indexes, grad_outputs):
      x, W = self.get_retained_inputs()
      (gy,) = grad_outputs
      ret = []
      with chainer.using_config("use_ideep", self._config_use_ideep):
          if 0 in indexes:
              (gx,) = LinearGradData().apply((W, gy))
              ret.append(chainer.functions.cast(gx, x.dtype))
          if 1 in indexes:
              (gW,) = LinearGradWeight(W.dtype).apply((x, gy))
              ret.append(chainer.functions.cast(gW, W.dtype))
          if 2 in indexes:
              gb = chainer.functions.sum(gy, axis=0)
              ret.append(gb)
  
      return ret
  
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 7 for calling the LinearFunction obj's underlying member method code with example usage: obj.backward(indexes, grad_outputs) and returns: ret