def __init__(self, x_list, y_list, intercept_limit=None, slope_limit=None, lower_extrap=False):
    '\n        The interpolation constructor to make a new linear spline interpolation.\n\n        Parameters\n        ----------\n        x_list : np.array\n            List of x values composing the grid.\n        y_list : np.array\n            List of y values, representing f(x) at the points in x_list.\n        intercept_limit : float\n            Intercept of limiting linear function.\n        slope_limit : float\n            Slope of limiting linear function.\n        lower_extrap : boolean\n            Indicator for whether lower extrapolation is allowed.  False means\n            f(x) = NaN for x < min(x_list); True means linear extrapolation.\n\n        Returns\n        -------\n        new instance of LinearInterp\n\n        NOTE: When no input is given for the limiting linear function, linear\n        extrapolation is used above the highest gridpoint.\n        '
    self.x_list = np.array(x_list)
    self.y_list = np.array(y_list)
    self.lower_extrap = lower_extrap
    self.x_n = self.x_list.size
    if ((intercept_limit is not None) and (slope_limit is not None)):
        slope_at_top = ((y_list[(- 1)] - y_list[(- 2)]) / (x_list[(- 1)] - x_list[(- 2)]))
        level_diff = ((intercept_limit + (slope_limit * x_list[(- 1)])) - y_list[(- 1)])
        slope_diff = (slope_limit - slope_at_top)
        self.decay_extrap_A = level_diff
        self.decay_extrap_B = ((- slope_diff) / level_diff)
        self.intercept_limit = intercept_limit
        self.slope_limit = slope_limit
        self.decay_extrap = True
    else:
        self.decay_extrap = False
The interpolation constructor to make a new linear spline interpolation.

Parameters
----------
x_list : np.array
    List of x values composing the grid.
y_list : np.array
    List of y values, representing f(x) at the points in x_list.
intercept_limit : float
    Intercept of limiting linear function.
slope_limit : float
    Slope of limiting linear function.
lower_extrap : boolean
    Indicator for whether lower extrapolation is allowed.  False means
    f(x) = NaN for x < min(x_list); True means linear extrapolation.

Returns
-------
new instance of LinearInterp

NOTE: When no input is given for the limiting linear function, linear
extrapolation is used above the highest gridpoint.
def __init__(self, x_list, y_list, intercept_limit=None, slope_limit=None, lower_extrap=False):
    '\n        The interpolation constructor to make a new linear spline interpolation.\n\n        Parameters\n        ----------\n        x_list : np.array\n            List of x values composing the grid.\n        y_list : np.array\n            List of y values, representing f(x) at the points in x_list.\n        intercept_limit : float\n            Intercept of limiting linear function.\n        slope_limit : float\n            Slope of limiting linear function.\n        lower_extrap : boolean\n            Indicator for whether lower extrapolation is allowed.  False means\n            f(x) = NaN for x < min(x_list); True means linear extrapolation.\n\n        Returns\n        -------\n        new instance of LinearInterp\n\n        NOTE: When no input is given for the limiting linear function, linear\n        extrapolation is used above the highest gridpoint.\n        '
    self.x_list = np.array(x_list)
    self.y_list = np.array(y_list)
    self.lower_extrap = lower_extrap
    self.x_n = self.x_list.size
    if ((intercept_limit is not None) and (slope_limit is not None)):
        slope_at_top = ((y_list[(- 1)] - y_list[(- 2)]) / (x_list[(- 1)] - x_list[(- 2)]))
        level_diff = ((intercept_limit + (slope_limit * x_list[(- 1)])) - y_list[(- 1)])
        slope_diff = (slope_limit - slope_at_top)
        self.decay_extrap_A = level_diff
        self.decay_extrap_B = ((- slope_diff) / level_diff)
        self.intercept_limit = intercept_limit
        self.slope_limit = slope_limit
        self.decay_extrap = True
    else:
        self.decay_extrap = False