def METHOD_NAME(numeric [:] params,
                        numeric [:] y,
                        numeric [:] yhat,
                        numeric [:,:] xhat,
                        long [:] is_fixed,
                        numeric [:] fixed_values,
                        bool use_beta_star=False,
                        bool use_gamma_star=False):
    """Smoothing with additive trend and multiplicative season"""
    cdef numeric alpha, beta_star, gamma_star, phi
    cdef Py_ssize_t i, n, m, prev
    # get params
    alpha, beta_star, gamma_star, phi, m, n = _initialize_ets_smooth(
        params, xhat, is_fixed, fixed_values, use_beta_star, use_gamma_star
    )
    # smooth
    for i in range(n):
        prev = (n+i-1) % n
        # s[t-m] = xhat[prev, 2+m-1]
        yhat[i] = (xhat[prev, 0] + phi * xhat[prev, 1]) * xhat[prev, 2+m-1]
        # l_t = a * (y_t / s_t-m) + (1-a) * (l_t-1 + phi*b_t-1)
        xhat[i, 0] = (alpha * (y[i] / xhat[prev, 2+m-1])
                      + (1 - alpha) * (xhat[prev, 0] + phi * xhat[prev, 1]))
        # b_t = (b*) * (l_t - l_t-1) + (1 - (b*)) * phi * b_t-1
        xhat[i, 1] = (beta_star * (xhat[i, 0] - xhat[prev, 0])
                      + (1 - beta_star) * phi * xhat[prev, 1])
        # s_t = g * (y_t / (l_t-1 - phi*b_t-1)) + (1 - g) * s_t-m
        xhat[i, 2] = (gamma_star * (y[i] / xhat[i, 0])
                      + (1 - gamma_star) * xhat[prev, 2+m-1])
        xhat[i, 3:] = xhat[prev, 2:2+m-1]