code: def numba_funcify_LogSoftmax(op, node, **kwargs):
      x_at = node.inputs[0]
      x_dtype = x_at.type.numpy_dtype
      x_dtype = numba.np.numpy_support.from_dtype(x_dtype)
      axis = op.axis
  
      if axis is not None:
          axis = normalize_axis_index(axis, x_at.ndim)
          reduce_max_py = create_axis_reducer(
              scalar_maximum,
              -np.inf,
              axis,
              x_at.ndim,
              x_dtype,
              keepdims=True,
          )
          reduce_sum_py = create_axis_reducer(
              add_as, 0.0, axis, x_at.ndim, x_dtype, keepdims=True
          )
  
          jit_fn = numba_basic.numba_njit(
              boundscheck=False, fastmath=config.numba__fastmath
          )
          reduce_max = jit_fn(reduce_max_py)
          reduce_sum = jit_fn(reduce_sum_py)
      else:
          reduce_max = np.max
          reduce_sum = np.sum
  
      def log_softmax_py_fn(x):
          xdev = x - reduce_max(x)
          lsm = xdev - np.log(reduce_sum(np.exp(xdev)))
          return lsm
  
      log_softmax = jit_compile_reducer(node, log_softmax_py_fn)
      return log_softmax
  
imports: import base64
  import pickle
  from functools import singledispatch
  from numbers import Number
  from textwrap import indent
  from typing import Any, Callable, Optional, Union
  import numba
  import numpy
  from numba import TypingError, types
  from numba.core import cgutils
  from numba.core.extending import overload
  from numba.np import arrayobj
  from numpy.core.numeric import normalize_axis_index, normalize_axis_tuple
  from pytensor import config
  from pytensor.graph.basic import Apply
  from pytensor.graph.op import Op
  from pytensor.link.numba.dispatch import basic
  from pytensor.link.numba.dispatch import elemwise_codegen
  from pytensor.link.numba.dispatch.basic import create_numba_signature, create_tuple_creator, numba_funcify, numba_njit, use_optimized_cheap_pass
  from pytensor.link.utils import compile_function_src, get_name_for_object
  from pytensor.scalar.basic import AND, OR, XOR, Add, Composite, IntDiv, Mean, Mul, ScalarMaximum, ScalarMinimum, Sub, TrueDiv, scalar_maximum
  from pytensor.scalar.basic import add
  from pytensor.tensor.elemwise import CAReduce, DimShuffle, Elemwise
  from pytensor.tensor.math import MaxAndArgmax, MulWithoutZeros, Sum
  from pytensor.tensor.special import LogSoftmax, Softmax, SoftmaxGrad
  from pytensor.tensor.type import scalar
label_desc: Use image node_id 26 for calling a global function with example usage: numba_funcify_LogSoftmax(op, node) and returns: log_softmax, lsm