def polynomial_equation(xnorm, ynorm, znorm, coeff):
    """
    Compute polynomial equation

    :param xnorm: Normalized longitude (for inverse) or column (for direct) position
    :type xnorm: float 64
    :param ynorm: Normalized latitude (for inverse) or line (for direct) position
    :type ynorm: float 64
    :param znorm: Normalized altitude position
    :type znorm: float 64
    :param coeff: coefficients
    :type coeff: 1D np.array dtype np.float 64
    :return: rational
    :rtype: float 64
    """
    rational = (
        coeff[0]
        + coeff[1] * xnorm
        + coeff[2] * ynorm
        + coeff[3] * znorm
        + coeff[4] * xnorm * ynorm
        + coeff[5] * xnorm * znorm
        + coeff[6] * ynorm * znorm
        + coeff[7] * xnorm**2
        + coeff[8] * ynorm**2
        + coeff[9] * znorm**2
        + coeff[10] * xnorm * ynorm * znorm
        + coeff[11] * xnorm**3
        + coeff[12] * xnorm * ynorm**2
        + coeff[13] * xnorm * znorm**2
        + coeff[14] * xnorm**2 * ynorm
        + coeff[15] * ynorm**3
        + coeff[16] * ynorm * znorm**2
        + coeff[17] * xnorm**2 * znorm
        + coeff[18] * ynorm**2 * znorm
        + coeff[19] * znorm**3
    )

    return rational