docs: def _check_params(ρ, χ, γ, σ, bounds, n):
      """
      Checks whether the parameters for the Nelder-Mead algorithm are valid.
      JIT-compiled in `nopython` mode using Numba.
  
      Parameters
      ----------
      ρ : scalar(float)
          Reflection parameter. Must be strictly greater than 0.
  
      χ : scalar(float)
          Expansion parameter. Must be strictly greater than max(1, ρ).
  
      γ : scalar(float)
          Contraction parameter. Must be stricly between 0 and 1.
  
      σ : scalar(float)
          Shrinkage parameter. Must be strictly between 0 and 1.
  
      bounds: ndarray(float, ndim=2)
          Sequence of (min, max) pairs for each element in x.
  
      n : scalar(int)
          Number of independent variables.
  
      """
      if ρ < 0:
          raise ValueError("ρ must be strictly greater than 0.")
      if χ < 1:
          raise ValueError("χ must be strictly greater than 1.")
      if χ < ρ:
          raise ValueError("χ must be strictly greater than ρ.")
      if γ < 0 or γ > 1:
          raise ValueError("γ must be strictly between 0 and 1.")
      if σ < 0 or σ > 1:
          raise ValueError("σ must be strictly between 0 and 1.")
  
      if not (bounds.shape == (0, 2) or bounds.shape == (n, 2)):
          raise ValueError("The shape of `bounds` is not valid.")
      if (np.atleast_2d(bounds)[:, 0] > np.atleast_2d(bounds)[:, 1]).any():
          raise ValueError("Lower bounds must be greater than upper bounds.")