code: def _compile_out_x(self):
      # 2D: int out_x_0 = i / (out_1) % out_0;
      #     int out_x_1 = i % out_1;
      def aux(out_x, outs):
          head = outs[0]
          tail = outs[1:]
          if tail:
              return "int {} = i / ({}) % {};".format(
                  out_x, conv_nd_kernel.mulexp(tail), head
              )
          else:
              return "int {} = i % {};".format(out_x, head)
  
      out_xs = conv_nd_kernel.vars("out_x", self.ndim)
      out_xs_decls = conv_nd_kernel.map_(
          aux, out_xs, conv_nd_kernel.succ_sublists(self.outs)
      )
      return out_xs_decls, out_xs
  
imports: from six import moves
  from chainer.backends import cuda
  from chainer.utils import conv_nd_kernel
label_desc: Use image node_id 12 for calling the PoolingNDKernelForward obj's underlying member method code with example usage: obj._compile_out_x() and returns: out_xs_decls,  out_xs, str, str