code: def glu(x: ArrayLike, axis: int = -1) -> Array:
      r"""Gated linear unit activation function.
  
      Computes the function:
  
      .. math::
        \mathrm{glu}(x) =  x\left[\ldots, 0:\frac{n}{2}, \ldots\right] \cdot
          \mathrm{sigmoid} \left( x\left[\ldots, \frac{n}{2}:n, \ldots\right]
            \right)
  
      where the array is split into two along ``axis``. The size of the ``axis``
      dimension must be divisible by two.
  
      Args:
        x : input array
        axis: the axis along which the split should be computed (default: -1)
  
      Returns:
        An array.
  
      See also:
        :func:`sigmoid`
      """
      numpy_util.check_arraylike("glu", x)
      x_arr = jnp.asarray(x)
      size = x_arr.shape[axis]
      assert size % 2 == 0, "axis size must be divisible by 2"
      x1, x2 = jnp.split(x_arr, 2, axis)
      return x1 * sigmoid(x2)
  
imports: from __future__ import annotations
  from functools import partial
  import operator
  import numpy
  from typing import Any
  import jax
  import jax.numpy
  from jax import custom_jvp
  from jax import lax
  from jax._src import config
  from jax._src import core
  from jax._src import dtypes
  from jax._src import util
  from jax._src.core import AxisName
  from jax._src.numpy import util
  from jax._src.typing import Array, ArrayLike
  from jax._src.ops.special import logsumexp
label_desc: Use image node_id 14 for calling a global function with example usage: glu(x, axis) and returns: unknown