class_docstr: Distribution, critical values and p-values from tables
  
  currently only 1 extra parameter, e.g. sample size
  
  Parameters
  ----------
  alpha : array_like, 1d
      probabiliy in the table, could be either sf (right tail) or cdf (left
      tail)
  size : array_like, 1d
      The sample sizes for the table
  crit_table : array_like, 2d
      The sample sizes in the table
      array with critical values for sample size in rows and probability in
      columns
  asymptotic : callable, optional
      Callable function with the form fn(nobs) that returns len(alpha)
      critical values where the critical value in position i corresponds to
      alpha[i]
  min_nobs : int, optional
      Minimum number of observations to use the asymptotic distribution. If
      not provided, uses max(size).
  max_nobs : int, optional
      Maximum number of observations to use the tabular distribution. If not
      provided, uses max(size)
  
  Notes
  -----
  size and alpha must be sorted and increasing.
  
  If both min_nobs and max_nobs are provided, then
  the critical values from the tabular distribution and the asymptotic
  distribution are linearly blended using the formula
  :math:`w cv_a + (1-w) cv_t` where the weight is
  :math:`w = (n - a_{min}) / (a_{max} - a_{min})`. This ensures the
  transition between the tabular and the asymptotic critical values is
  continuous. If these are not provided, then the asymptotic critical value
  is used for nobs > max(size).
docstr: Rows of the table, linearly interpolated for given sample size
  
  Parameters
  ----------
  n : float
      sample size, second parameter of the table
  
  Returns
  -------
  critv : ndarray, 1d
      critical values (ppf) corresponding to a row of the table
  
  Notes
  -----
  This is used in two step interpolation, or if we want to know the
  critical values for all alphas for any sample size that we can obtain
  through interpolation
code: def _critvals(self, n):
      """
      Rows of the table, linearly interpolated for given sample size
  
      Parameters
      ----------
      n : float
          sample size, second parameter of the table
  
      Returns
      -------
      critv : ndarray, 1d
          critical values (ppf) corresponding to a row of the table
  
      Notes
      -----
      This is used in two step interpolation, or if we want to know the
      critical values for all alphas for any sample size that we can obtain
      through interpolation
      """
      if n > self.max_size:
          if self.asymptotic is not None:
              cv = self.asymptotic(n)
          else:
              raise ValueError(
                  "n is above max(size) and no asymptotic "
                  "distribtuion is provided"
              )
      else:
          cv = [p(n) for p in self.polyn]
          if n > self.min_nobs:
              w = (n - self.min_nobs) / (self.max_nobs - self.min_nobs)
              w = min(1.0, w)
              a_cv = self.asymptotic(n)
              cv = w * a_cv + (1 - w) * cv
  
      return cv
  
file_path: statsmodels/statsmodels/stats/tabledist.py
imports: import numpy
  from scipy.interpolate import interp1d, interp2d, Rbf
  from statsmodels.tools.decorators import cache_readonly
label_desc: Use image node_id 5 for calling the TableDist obj's underlying member method code with example usage: obj._critvals(n) and returns: cv