code: def hard_silu(x: ArrayLike) -> Array:
      r"""Hard SiLU (swish) activation function
  
      Computes the element-wise function
  
      .. math::
        \mathrm{hard\_silu}(x) = x \cdot \mathrm{hard\_sigmoid}(x)
  
      Both :func:`hard_silu` and :func:`hard_swish` are aliases for the same
      function.
  
      Args:
        x : input array
  
      Returns:
        An array.
  
      See also:
        :func:`hard_sigmoid`
      """
      numpy_util.check_arraylike("hard_silu", x)
      x_arr = jnp.asarray(x)
      return x_arr * hard_sigmoid(x_arr)
  
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 25 for calling a global function with example usage: hard_silu(x) and returns: unknown