code: def forward_gpu(self, x):
      self.retain_inputs((0,))
      return (
          cuda.elementwise(
              "T x",
              "T y",
              """
              if (x > 0) {
                  y = log1p(-normcdf(-x));
              } else {
                  y = log(0.5 * erfcx(-sqrt(0.5) * x)) - 0.5 * x * x;
              }
              """,
              "elementwise_log_ndtr",
          )(x[0]),
      )
  
file_path: chainer/chainer/functions/math/log_ndtr.py
imports: import numpy
  from chainer.backends import cuda
  from chainer import function_node
  from chainer.functions.math import erfcx
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 4 for calling the LogNdtr obj's underlying member method code with example usage: obj.forward_gpu(x) and returns: cuda