code: def admissible(
      alpha: float, beta: float, gamma: float, phi: float, m: int
  ):
      if np.isnan(phi):
          phi = 1
      if phi < 0.0 or phi > 1 + 1e-8:
          return False
      if np.isnan(gamma):
          if alpha < 1 - 1 / phi or alpha > 1 + 1 / phi:
              return False
          if not np.isnan(beta):
              if beta < alpha * (phi - 1) or beta > (1 + phi) * (
                  2 - alpha
              ):
                  return False
      elif m > 1:  # seasonal model
          if np.isnan(beta):
              beta = 0
          if (
              gamma < max(1 - 1 / phi - alpha, 0)
              or gamma > 1 + 1 / phi - alpha
          ):
              return False
          if alpha < 1 - 1 / phi - gamma * (1 - m + phi + phi * m) / (
              2 * phi * m
          ):
              return False
          if beta < -(1 - phi) * (gamma / m + alpha):
              return False
          # End of easy test. Now use characteristic equation
          P = np.full(2 + m - 2 + 2, fill_value=np.nan)
          P[:2] = np.array(
              [
                  phi * (1 - alpha - gamma),
                  alpha + beta - alpha * phi + gamma - 1,
              ]
          )
          P[2 : (m - 2 + 2)] = np.repeat(
              alpha + beta - alpha * phi, m - 2
          )
          P[(m - 2 + 2) :] = np.array([alpha + beta - phi, 1])
          roots = np.polynomial.polynomial.polyroots(P)
          zeror = np.real(roots)
          zeroi = np.imag(roots)
          max_ = np.max(np.sqrt(zeror * zeror + zeroi * zeroi))
          if max_ > 1 + 1e-10:
              return False
      # passed all tests
      return True
  
imports: import math
  from collections import namedtuple
  from typing import Tuple
  import numpy
  from numba import njit
  from numba.typed import List
  from statsmodels.tsa.seasonal import seasonal_decompose
  from .utils import _calculate_intervals, CACHE, NOGIL
label_desc: Use image node_id 7 for calling a global function with example usage: admissible(alpha, beta, gamma, phi, m) and returns: True, False, False, False, False, False, False, False