def fateman_poly_F_2(n):
 Y = [Symbol(('y_' + str(i))) for i in range(0, (n + 1))]
 y_0 = Y[0]
 u = Add(*[y for y in Y[1:]])
 H = Poly((((y_0 + u) + 1) ** 2), *Y)
 F = Poly((((y_0 - u) - 2) ** 2), *Y)
 G = Poly((((y_0 + u) + 2) ** 2), *Y)
 return ((H * F), (H * G), H)

def fateman_poly_F_2 ( n ) : Y = [ Symbol ( ( 'y_' + str ( i ) ) ) for i in range ( 0 , ( n + 1 ) ) ] y_0 = Y [ 0 ] u = Add ( * [ y for y in Y [ 1 : ] ] ) H = Poly ( ( ( ( y_0 + u ) + 1 ) ** 2 ) , * Y ) F = Poly ( ( ( ( y_0 - u ) - 2 ) ** 2 ) , * Y ) G = Poly ( ( ( ( y_0 + u ) + 2 ) ** 2 ) , * Y ) return ( ( H * F ) , ( H * G ) , H )
fatemans gcd benchmark: linearly dense quartic inputs .