def get_S_polynomial(poly0, poly1): gamma_ex = np.maximum(poly0.get_multidegree(), poly1.get_multidegree()) poly_gamma = Polynomial([Monomial(1, gamma_ex)]) a0 = poly_gamma.divide_by_leading_term(poly0) a1 = poly_gamma.divide_by_leading_term(poly1) S_poly = (a0 * poly0) - (a1 * poly1) return S_poly