Shared2017-11-24-151057.sagewsOpen in CoCalc
Authors: Oswaldo Velásquez Castañón, VICTOR RACSO GALVAN OYOLA, Marco León, Miguel Miní, Josias Ruegg
Views : 24
# Visualización de curvas elípticas. Prueba de asociatividad de la suma
E = EllipticCurve([-5, 4]) E
Elliptic Curve defined by y^2 = x^3 - 5*x + 4 over Rational Field
P = E.plot(thickness=7,rgbcolor=(0.1,0.7,0.1)) P.show(figsize=[6,10 ])
Error in lines 1-1 Traceback (most recent call last): File "/cocalc/lib/python2.7/site-packages/smc_sagews/sage_server.py", line 1191, in execute flags=compile_flags), namespace, locals) File "", line 1, in <module> AttributeError: 'function' object has no attribute 'plot'
E = EllipticCurve(GF(37), [1,0]) E
Elliptic Curve defined by y^2 = x^3 + x over Finite Field of size 37
E.plot(pointsize=45)
E = EllipticCurve([-5,4]) P = E([1,0]); Q = E([0,2]) P + Q
(3 : 4 : 1)
P + P
(0 : 1 : 0)
P + P + P
(1 : 0 : 1)
Q + Q
(25/16 : -3/64 : 1)
Q + Q + Q
(96/625 : -28106/15625 : 1)
Q + Q + Q + Q
(352225/576 : 209039023/13824 : 1)
R.<x1,y1,x2,y2,x3,y3,a,b> = QQ[] R
Multivariate Polynomial Ring in x1, y1, x2, y2, x3, y3, a, b over Rational Field
rels = [y1^2 - (x1^3 + a*x1 + b), y2^2 - (x2^3 + a*x2 + b), y3^2 - (x3^3 + a*x3 + b)] Q = R.quotient(rels) def op(P1,P2): x1,y1 = P1; x2,y2 = P2 lam = (y1 - y2)/(x1 - x2); nu = y1 - lam*x1 x3 = lam^2 - x1 - x2; y3 = -lam*x3 - nu return (x3, y3)
P1 = (x1,y1); P2 = (x2,y2); P3 = (x3,y3) Z = op(P1, op(P2,P3)); W = op(op(P1,P2),P3) Z W
((-x1^3*x2^4 - x1^2*x2^5 + x1*x2^6 + x2^7 + 4*x1^3*x2^3*x3 + 3*x1^2*x2^4*x3 - 2*x1*x2^5*x3 - x2^6*x3 - 6*x1^3*x2^2*x3^2 - 2*x1^2*x2^3*x3^2 - x1*x2^4*x3^2 - 3*x2^5*x3^2 + 4*x1^3*x2*x3^3 - 2*x1^2*x2^2*x3^3 + 4*x1*x2^3*x3^3 + 3*x2^4*x3^3 - x1^3*x3^4 + 3*x1^2*x2*x3^4 - x1*x2^2*x3^4 + 3*x2^3*x3^4 - x1^2*x3^5 - 2*x1*x2*x3^5 - 3*x2^2*x3^5 + x1*x3^6 - x2*x3^6 + x3^7 + y1^2*x2^4 - 2*y1*x2^4*y2 + x1^2*x2^2*y2^2 - 2*x1*x2^3*y2^2 - 2*x2^4*y2^2 - 4*y1^2*x2^3*x3 + 2*y1*x2^3*y2*x3 - 2*x1^2*x2*y2^2*x3 + 2*x1*x2^2*y2^2*x3 + 2*x2^3*y2^2*x3 + 6*y1^2*x2^2*x3^2 + 6*y1*x2^2*y2*x3^2 + x1^2*y2^2*x3^2 + 2*x1*x2*y2^2*x3^2 + 3*x2^2*y2^2*x3^2 - 4*y1^2*x2*x3^3 - 10*y1*x2*y2*x3^3 - 2*x1*y2^2*x3^3 - 4*x2*y2^2*x3^3 + y1^2*x3^4 + 4*y1*y2*x3^4 + y2^2*x3^4 + 4*y1*x2^4*y3 - 2*x1^2*x2^2*y2*y3 + 4*x1*x2^3*y2*y3 + 2*x2^4*y2*y3 - 10*y1*x2^3*x3*y3 + 4*x1^2*x2*y2*x3*y3 - 4*x1*x2^2*y2*x3*y3 - 2*x2^3*y2*x3*y3 + 6*y1*x2^2*x3^2*y3 - 2*x1^2*y2*x3^2*y3 - 4*x1*x2*y2*x3^2*y3 + 2*y1*x2*x3^3*y3 + 4*x1*y2*x3^3*y3 - 2*x2*y2*x3^3*y3 - 2*y1*x3^4*y3 + 2*y2*x3^4*y3 + x1^2*x2^2*y3^2 - 2*x1*x2^3*y3^2 + x2^4*y3^2 - 2*x1^2*x2*x3*y3^2 + 2*x1*x2^2*x3*y3^2 - 4*x2^3*x3*y3^2 + x1^2*x3^2*y3^2 + 2*x1*x2*x3^2*y3^2 + 3*x2^2*x3^2*y3^2 - 2*x1*x3^3*y3^2 + 2*x2*x3^3*y3^2 - 2*x3^4*y3^2 + 2*y1*x2*y2^3 + x1*y2^4 + x2*y2^4 - 2*y1*y2^3*x3 - y2^4*x3 - 6*y1*x2*y2^2*y3 - 4*x1*y2^3*y3 - 2*x2*y2^3*y3 + 6*y1*y2^2*x3*y3 + 2*y2^3*x3*y3 + 6*y1*x2*y2*y3^2 + 6*x1*y2^2*y3^2 - 6*y1*y2*x3*y3^2 - 2*y1*x2*y3^3 - 4*x1*y2*y3^3 + 2*x2*y2*y3^3 + 2*y1*x3*y3^3 - 2*y2*x3*y3^3 + x1*y3^4 - x2*y3^4 + x3*y3^4)/(x1^2*x2^4 + 2*x1*x2^5 + x2^6 - 4*x1^2*x2^3*x3 - 6*x1*x2^4*x3 - 2*x2^5*x3 + 6*x1^2*x2^2*x3^2 + 4*x1*x2^3*x3^2 - x2^4*x3^2 - 4*x1^2*x2*x3^3 + 4*x1*x2^2*x3^3 + 4*x2^3*x3^3 + x1^2*x3^4 - 6*x1*x2*x3^4 - x2^2*x3^4 + 2*x1*x3^5 - 2*x2*x3^5 + x3^6 - 2*x1*x2^2*y2^2 - 2*x2^3*y2^2 + 4*x1*x2*y2^2*x3 + 2*x2^2*y2^2*x3 - 2*x1*y2^2*x3^2 + 2*x2*y2^2*x3^2 - 2*y2^2*x3^3 + 4*x1*x2^2*y2*y3 + 4*x2^3*y2*y3 - 8*x1*x2*y2*x3*y3 - 4*x2^2*y2*x3*y3 + 4*x1*y2*x3^2*y3 - 4*x2*y2*x3^2*y3 + 4*y2*x3^3*y3 - 2*x1*x2^2*y3^2 - 2*x2^3*y3^2 + 4*x1*x2*x3*y3^2 + 2*x2^2*x3*y3^2 - 2*x1*x3^2*y3^2 + 2*x2*x3^2*y3^2 - 2*x3^3*y3^2 + y2^4 - 4*y2^3*y3 + 6*y2^2*y3^2 - 4*y2*y3^3 + y3^4), (-x1^3*y1*x2^6 + 3*x1*y1*x2^8 + 2*y1*x2^9 + 2*x1^3*x2^6*y2 + 3*x1^2*x2^7*y2 - x2^9*y2 + 6*x1^3*y1*x2^5*x3 - 12*x1*y1*x2^7*x3 - 6*y1*x2^8*x3 - 6*x1^3*x2^5*y2*x3 - 6*x1^2*x2^6*y2*x3 - 15*x1^3*y1*x2^4*x3^2 + 12*x1*y1*x2^6*x3^2 - 9*x1^2*x2^5*y2*x3^2 + 6*x2^7*y2*x3^2 + 20*x1^3*y1*x2^3*x3^3 + 12*x1*y1*x2^5*x3^3 + 16*y1*x2^6*x3^3 + 20*x1^3*x2^3*y2*x3^3 + 30*x1^2*x2^4*y2*x3^3 - 2*x2^6*y2*x3^3 - 15*x1^3*y1*x2^2*x3^4 - 30*x1*y1*x2^4*x3^4 - 12*y1*x2^5*x3^4 - 30*x1^3*x2^2*y2*x3^4 - 15*x1^2*x2^3*y2*x3^4 - 12*x2^5*y2*x3^4 + 6*x1^3*y1*x2*x3^5 + 12*x1*y1*x2^3*x3^5 - 12*y1*x2^4*x3^5 + 18*x1^3*x2*y2*x3^5 - 18*x1^2*x2^2*y2*x3^5 + 6*x2^4*y2*x3^5 - x1^3*y1*x3^6 + 12*x1*y1*x2^2*x3^6 + 16*y1*x2^3*x3^6 - 4*x1^3*y2*x3^6 + 21*x1^2*x2*y2*x3^6 + 10*x2^3*y2*x3^6 - 12*x1*y1*x2*x3^7 - 6*x1^2*y2*x3^7 - 6*x2^2*y2*x3^7 + 3*x1*y1*x3^8 - 6*y1*x2*x3^8 - 3*x2*y2*x3^8 + 2*y1*x3^9 + 2*y2*x3^9 - 4*x1^3*x2^6*y3 - 6*x1^2*x2^7*y3 + 2*x2^9*y3 + 18*x1^3*x2^5*x3*y3 + 21*x1^2*x2^6*x3*y3 - 3*x2^8*x3*y3 - 30*x1^3*x2^4*x3^2*y3 - 18*x1^2*x2^5*x3^2*y3 - 6*x2^7*x3^2*y3 + 20*x1^3*x2^3*x3^3*y3 - 15*x1^2*x2^4*x3^3*y3 + 10*x2^6*x3^3*y3 + 30*x1^2*x2^3*x3^4*y3 + 6*x2^5*x3^4*y3 - 6*x1^3*x2*x3^5*y3 - 9*x1^2*x2^2*x3^5*y3 - 12*x2^4*x3^5*y3 + 2*x1^3*x3^6*y3 - 6*x1^2*x2*x3^6*y3 - 2*x2^3*x3^6*y3 + 3*x1^2*x3^7*y3 + 6*x2^2*x3^7*y3 - x3^9*y3 + y1^3*x2^6 - 3*y1^2*x2^6*y2 - 6*x1*y1*x2^5*y2^2 - 3*y1*x2^6*y2^2 - 2*x1^3*x2^3*y2^3 - 6*x1^2*x2^4*y2^3 + 3*x2^6*y2^3 - 6*y1^3*x2^5*x3 + 9*y1^2*x2^5*y2*x3 + 18*x1*y1*x2^4*y2^2*x3 + 12*y1*x2^5*y2^2*x3 + 6*x1^3*x2^2*y2^3*x3 + 9*x1^2*x2^3*y2^3*x3 + 15*y1^3*x2^4*x3^2 - 12*x1*y1*x2^3*y2^2*x3^2 - 12*y1*x2^4*y2^2*x3^2 - 6*x1^3*x2*y2^3*x3^2 + 9*x1^2*x2^2*y2^3*x3^2 - 12*x2^4*y2^3*x3^2 - 20*y1^3*x2^3*x3^3 - 30*y1^2*x2^3*y2*x3^3 - 12*x1*y1*x2^2*y2^2*x3^3 - 12*y1*x2^3*y2^2*x3^3 + 2*x1^3*y2^3*x3^3 - 21*x1^2*x2*y2^3*x3^3 + 5*x2^3*y2^3*x3^3 + 15*y1^3*x2^2*x3^4 + 45*y1^2*x2^2*y2*x3^4 + 18*x1*y1*x2*y2^2*x3^4 + 33*y1*x2^2*y2^2*x3^4 + 9*x1^2*y2^3*x3^4 + 12*x2^2*y2^3*x3^4 - 6*y1^3*x2*x3^5 - 27*y1^2*x2*y2*x3^5 - 6*x1*y1*y2^2*x3^5 - 24*y1*x2*y2^2*x3^5 - 9*x2*y2^3*x3^5 + y1^3*x3^6 + 6*y1^2*y2*x3^6 + 6*y1*y2^2*x3^6 + y2^3*x3^6 + 6*y1^2*x2^6*y3 + 12*x1*y1*x2^5*y2*y3 + 6*x1^3*x2^3*y2^2*y3 + 21*x1^2*x2^4*y2^2*y3 - 9*x2^6*y2^2*y3 - 27*y1^2*x2^5*x3*y3 - 36*x1*y1*x2^4*y2*x3*y3 - 6*y1*x2^5*y2*x3*y3 - 18*x1^3*x2^2*y2^2*x3*y3 - 39*x1^2*x2^3*y2^2*x3*y3 + 6*x2^5*y2^2*x3*y3 + 45*y1^2*x2^4*x3^2*y3 + 24*x1*y1*x2^3*y2*x3^2*y3 + 24*y1*x2^4*y2*x3^2*y3 + 18*x1^3*x2*y2^2*x3^2*y3 - 9*x1^2*x2^2*y2^2*x3^2*y3 + 21*x2^4*y2^2*x3^2*y3 - 30*y1^2*x2^3*x3^3*y3 + 24*x1*y1*x2^2*y2*x3^3*y3 - 36*y1*x2^3*y2*x3^3*y3 - 6*x1^3*y2^2*x3^3*y3 + 51*x1^2*x2*y2^2*x3^3*y3 - 15*x2^3*y2^2*x3^3*y3 - 36*x1*y1*x2*y2*x3^4*y3 + 24*y1*x2^2*y2*x3^4*y3 - 24*x1^2*y2^2*x3^4*y3 - 6*x2^2*y2^2*x3^4*y3 + 9*y1^2*x2*x3^5*y3 + 12*x1*y1*y2*x3^5*y3 - 6*y1*x2*y2*x3^5*y3 - 3*x2*y2^2*x3^5*y3 - 3*y1^2*x3^6*y3 + 6*y2^2*x3^6*y3 - 6*x1*y1*x2^5*y3^2 + 6*y1*x2^6*y3^2 - 6*x1^3*x2^3*y2*y3^2 - 24*x1^2*x2^4*y2*y3^2 + 6*x2^6*y2*y3^2 + 18*x1*y1*x2^4*x3*y3^2 - 24*y1*x2^5*x3*y3^2 + 18*x1^3*x2^2*y2*x3*y3^2 + 51*x1^2*x2^3*y2*x3*y3^2 - 3*x2^5*y2*x3*y3^2 - 12*x1*y1*x2^3*x3^2*y3^2 + 33*y1*x2^4*x3^2*y3^2 - 18*x1^3*x2*y2*x3^2*y3^2 - 9*x1^2*x2^2*y2*x3^2*y3^2 - 6*x2^4*y2*x3^2*y3^2 - 12*x1*y1*x2^2*x3^3*y3^2 - 12*y1*x2^3*x3^3*y3^2 + 6*x1^3*y2*x3^3*y3^2 - 39*x1^2*x2*y2*x3^3*y3^2 - 15*x2^3*y2*x3^3*y3^2 + 18*x1*y1*x2*x3^4*y3^2 - 12*y1*x2^2*x3^4*y3^2 + 21*x1^2*y2*x3^4*y3^2 + 21*x2^2*y2*x3^4*y3^2 - 6*x1*y1*x3^5*y3^2 + 12*y1*x2*x3^5*y3^2 + 6*x2*y2*x3^5*y3^2 - 3*y1*x3^6*y3^2 - 9*y2*x3^6*y3^2 + 2*x1^3*x2^3*y3^3 + 9*x1^2*x2^4*y3^3 + x2^6*y3^3 - 6*x1^3*x2^2*x3*y3^3 - 21*x1^2*x2^3*x3*y3^3 - 9*x2^5*x3*y3^3 + 6*x1^3*x2*x3^2*y3^3 + 9*x1^2*x2^2*x3^2*y3^3 + 12*x2^4*x3^2*y3^3 - 2*x1^3*x3^3*y3^3 + 9*x1^2*x2*x3^3*y3^3 + 5*x2^3*x3^3*y3^3 - 6*x1^2*x3^4*y3^3 - 12*x2^2*x3^4*y3^3 + 3*x3^6*y3^3 + 3*y1^2*x2^3*y2^3 + 3*x1*y1*x2^2*y2^4 + 3*x1^2*x2*y2^5 - 3*x2^3*y2^5 - 9*y1^2*x2^2*y2^3*x3 - 6*x1*y1*x2*y2^4*x3 - 6*y1*x2^2*y2^4*x3 - 3*x1^2*y2^5*x3 + 9*y1^2*x2*y2^3*x3^2 + 3*x1*y1*y2^4*x3^2 + 12*y1*x2*y2^4*x3^2 + 6*x2*y2^5*x3^2 - 3*y1^2*y2^3*x3^3 - 6*y1*y2^4*x3^3 - 3*y2^5*x3^3 - 9*y1^2*x2^3*y2^2*y3 - 12*x1*y1*x2^2*y2^3*y3 + 6*y1*x2^3*y2^3*y3 - 15*x1^2*x2*y2^4*y3 + 12*x2^3*y2^4*y3 + 27*y1^2*x2^2*y2^2*x3*y3 + 24*x1*y1*x2*y2^3*x3*y3 + 6*y1*x2^2*y2^3*x3*y3 + 15*x1^2*y2^4*x3*y3 - 3*x2^2*y2^4*x3*y3 - 27*y1^2*x2*y2^2*x3^2*y3 - 12*x1*y1*y2^3*x3^2*y3 - 30*y1*x2*y2^3*x3^2*y3 - 15*x2*y2^4*x3^2*y3 + 9*y1^2*y2^2*x3^3*y3 + 18*y1*y2^3*x3^3*y3 + 6*y2^4*x3^3*y3 + 9*y1^2*x2^3*y2*y3^2 + 18*x1*y1*x2^2*y2^2*y3^2 - 18*y1*x2^3*y2^2*y3^2 + 30*x1^2*x2*y2^3*y3^2 - 15*x2^3*y2^3*y3^2 - 27*y1^2*x2^2*y2*x3*y3^2 - 36*x1*y1*x2*y2^2*x3*y3^2 + 18*y1*x2^2*y2^2*x3*y3^2 - 30*x1^2*y2^3*x3*y3^2 + 3*x2^2*y2^3*x3*y3^2 + 27*y1^2*x2*y2*x3^2*y3^2 + 18*x1*y1*y2^2*x3^2*y3^2 + 18*y1*x2*y2^2*x3^2*y3^2 + 9*x2*y2^3*x3^2*y3^2 - 9*y1^2*y2*x3^3*y3^2 - 18*y1*y2^2*x3^3*y3^2 + 3*y2^3*x3^3*y3^2 - 3*y1^2*x2^3*y3^3 - 12*x1*y1*x2^2*y2*y3^3 + 18*y1*x2^3*y2*y3^3 - 30*x1^2*x2*y2^2*y3^3 + 3*x2^3*y2^2*y3^3 + 9*y1^2*x2^2*x3*y3^3 + 24*x1*y1*x2*y2*x3*y3^3 - 30*y1*x2^2*y2*x3*y3^3 + 30*x1^2*y2^2*x3*y3^3 + 9*x2^2*y2^2*x3*y3^3 - 9*y1^2*x2*x3^2*y3^3 - 12*x1*y1*y2*x3^2*y3^3 + 6*y1*x2*y2*x3^2*y3^3 + 3*x2*y2^2*x3^2*y3^3 + 3*y1^2*x3^3*y3^3 + 6*y1*y2*x3^3*y3^3 - 15*y2^2*x3^3*y3^3 + 3*x1*y1*x2^2*y3^4 - 6*y1*x2^3*y3^4 + 15*x1^2*x2*y2*y3^4 + 6*x2^3*y2*y3^4 - 6*x1*y1*x2*x3*y3^4 + 12*y1*x2^2*x3*y3^4 - 15*x1^2*y2*x3*y3^4 - 15*x2^2*y2*x3*y3^4 + 3*x1*y1*x3^2*y3^4 - 6*y1*x2*x3^2*y3^4 - 3*x2*y2*x3^2*y3^4 + 12*y2*x3^3*y3^4 - 3*x1^2*x2*y3^5 - 3*x2^3*y3^5 + 3*x1^2*x3*y3^5 + 6*x2^2*x3*y3^5 - 3*x3^3*y3^5 + y1*y2^6 + y2^7 - 6*y1*y2^5*y3 - 5*y2^6*y3 + 15*y1*y2^4*y3^2 + 9*y2^5*y3^2 - 20*y1*y2^3*y3^3 - 5*y2^4*y3^3 + 15*y1*y2^2*y3^4 - 5*y2^3*y3^4 - 6*y1*y2*y3^5 + 9*y2^2*y3^5 + y1*y3^6 - 5*y2*y3^6 + y3^7)/(-x1^3*x2^6 - 3*x1^2*x2^7 - 3*x1*x2^8 - x2^9 + 6*x1^3*x2^5*x3 + 15*x1^2*x2^6*x3 + 12*x1*x2^7*x3 + 3*x2^8*x3 - 15*x1^3*x2^4*x3^2 - 27*x1^2*x2^5*x3^2 - 12*x1*x2^6*x3^2 + 20*x1^3*x2^3*x3^3 + 15*x1^2*x2^4*x3^3 - 12*x1*x2^5*x3^3 - 8*x2^6*x3^3 - 15*x1^3*x2^2*x3^4 + 15*x1^2*x2^3*x3^4 + 30*x1*x2^4*x3^4 + 6*x2^5*x3^4 + 6*x1^3*x2*x3^5 - 27*x1^2*x2^2*x3^5 - 12*x1*x2^3*x3^5 + 6*x2^4*x3^5 - x1^3*x3^6 + 15*x1^2*x2*x3^6 - 12*x1*x2^2*x3^6 - 8*x2^3*x3^6 - 3*x1^2*x3^7 + 12*x1*x2*x3^7 - 3*x1*x3^8 + 3*x2*x3^8 - x3^9 + 3*x1^2*x2^4*y2^2 + 6*x1*x2^5*y2^2 + 3*x2^6*y2^2 - 12*x1^2*x2^3*y2^2*x3 - 18*x1*x2^4*y2^2*x3 - 6*x2^5*y2^2*x3 + 18*x1^2*x2^2*y2^2*x3^2 + 12*x1*x2^3*y2^2*x3^2 - 3*x2^4*y2^2*x3^2 - 12*x1^2*x2*y2^2*x3^3 + 12*x1*x2^2*y2^2*x3^3 + 12*x2^3*y2^2*x3^3 + 3*x1^2*y2^2*x3^4 - 18*x1*x2*y2^2*x3^4 - 3*x2^2*y2^2*x3^4 + 6*x1*y2^2*x3^5 - 6*x2*y2^2*x3^5 + 3*y2^2*x3^6 - 6*x1^2*x2^4*y2*y3 - 12*x1*x2^5*y2*y3 - 6*x2^6*y2*y3 + 24*x1^2*x2^3*y2*x3*y3 + 36*x1*x2^4*y2*x3*y3 + 12*x2^5*y2*x3*y3 - 36*x1^2*x2^2*y2*x3^2*y3 - 24*x1*x2^3*y2*x3^2*y3 + 6*x2^4*y2*x3^2*y3 + 24*x1^2*x2*y2*x3^3*y3 - 24*x1*x2^2*y2*x3^3*y3 - 24*x2^3*y2*x3^3*y3 - 6*x1^2*y2*x3^4*y3 + 36*x1*x2*y2*x3^4*y3 + 6*x2^2*y2*x3^4*y3 - 12*x1*y2*x3^5*y3 + 12*x2*y2*x3^5*y3 - 6*y2*x3^6*y3 + 3*x1^2*x2^4*y3^2 + 6*x1*x2^5*y3^2 + 3*x2^6*y3^2 - 12*x1^2*x2^3*x3*y3^2 - 18*x1*x2^4*x3*y3^2 - 6*x2^5*x3*y3^2 + 18*x1^2*x2^2*x3^2*y3^2 + 12*x1*x2^3*x3^2*y3^2 - 3*x2^4*x3^2*y3^2 - 12*x1^2*x2*x3^3*y3^2 + 12*x1*x2^2*x3^3*y3^2 + 12*x2^3*x3^3*y3^2 + 3*x1^2*x3^4*y3^2 - 18*x1*x2*x3^4*y3^2 - 3*x2^2*x3^4*y3^2 + 6*x1*x3^5*y3^2 - 6*x2*x3^5*y3^2 + 3*x3^6*y3^2 - 3*x1*x2^2*y2^4 - 3*x2^3*y2^4 + 6*x1*x2*y2^4*x3 + 3*x2^2*y2^4*x3 - 3*x1*y2^4*x3^2 + 3*x2*y2^4*x3^2 - 3*y2^4*x3^3 + 12*x1*x2^2*y2^3*y3 + 12*x2^3*y2^3*y3 - 24*x1*x2*y2^3*x3*y3 - 12*x2^2*y2^3*x3*y3 + 12*x1*y2^3*x3^2*y3 - 12*x2*y2^3*x3^2*y3 + 12*y2^3*x3^3*y3 - 18*x1*x2^2*y2^2*y3^2 - 18*x2^3*y2^2*y3^2 + 36*x1*x2*y2^2*x3*y3^2 + 18*x2^2*y2^2*x3*y3^2 - 18*x1*y2^2*x3^2*y3^2 + 18*x2*y2^2*x3^2*y3^2 - 18*y2^2*x3^3*y3^2 + 12*x1*x2^2*y2*y3^3 + 12*x2^3*y2*y3^3 - 24*x1*x2*y2*x3*y3^3 - 12*x2^2*y2*x3*y3^3 + 12*x1*y2*x3^2*y3^3 - 12*x2*y2*x3^2*y3^3 + 12*y2*x3^3*y3^3 - 3*x1*x2^2*y3^4 - 3*x2^3*y3^4 + 6*x1*x2*x3*y3^4 + 3*x2^2*x3*y3^4 - 3*x1*x3^2*y3^4 + 3*x2*x3^2*y3^4 - 3*x3^3*y3^4 + y2^6 - 6*y2^5*y3 + 15*y2^4*y3^2 - 20*y2^3*y3^3 + 15*y2^2*y3^4 - 6*y2*y3^5 + y3^6)) ((x1^7 - x1^6*x2 - 3*x1^5*x2^2 + 3*x1^4*x2^3 + 3*x1^3*x2^4 - 3*x1^2*x2^5 - x1*x2^6 + x2^7 + x1^6*x3 - 2*x1^5*x2*x3 - x1^4*x2^2*x3 + 4*x1^3*x2^3*x3 - x1^2*x2^4*x3 - 2*x1*x2^5*x3 + x2^6*x3 - x1^5*x3^2 + 3*x1^4*x2*x3^2 - 2*x1^3*x2^2*x3^2 - 2*x1^2*x2^3*x3^2 + 3*x1*x2^4*x3^2 - x2^5*x3^2 - x1^4*x3^3 + 4*x1^3*x2*x3^3 - 6*x1^2*x2^2*x3^3 + 4*x1*x2^3*x3^3 - x2^4*x3^3 - 2*x1^4*y1^2 + 2*x1^3*y1^2*x2 + 3*x1^2*y1^2*x2^2 - 4*x1*y1^2*x2^3 + y1^2*x2^4 + 2*x1^4*y1*y2 - 2*x1^3*y1*x2*y2 - 2*x1*y1*x2^3*y2 + 2*y1*x2^4*y2 + x1^4*y2^2 - 4*x1^3*x2*y2^2 + 3*x1^2*x2^2*y2^2 + 2*x1*x2^3*y2^2 - 2*x2^4*y2^2 - 2*x1^3*y1^2*x3 + 2*x1^2*y1^2*x2*x3 + 2*x1*y1^2*x2^2*x3 - 2*y1^2*x2^3*x3 + 4*x1^3*y1*y2*x3 - 4*x1^2*y1*x2*y2*x3 - 4*x1*y1*x2^2*y2*x3 + 4*y1*x2^3*y2*x3 - 2*x1^3*y2^2*x3 + 2*x1^2*x2*y2^2*x3 + 2*x1*x2^2*y2^2*x3 - 2*x2^3*y2^2*x3 + x1^2*y1^2*x3^2 - 2*x1*y1^2*x2*x3^2 + y1^2*x2^2*x3^2 - 2*x1^2*y1*y2*x3^2 + 4*x1*y1*x2*y2*x3^2 - 2*y1*x2^2*y2*x3^2 + x1^2*y2^2*x3^2 - 2*x1*x2*y2^2*x3^2 + x2^2*y2^2*x3^2 - 2*x1^4*y1*y3 + 2*x1^3*y1*x2*y3 + 6*x1^2*y1*x2^2*y3 - 10*x1*y1*x2^3*y3 + 4*y1*x2^4*y3 + 4*x1^4*y2*y3 - 10*x1^3*x2*y2*y3 + 6*x1^2*x2^2*y2*y3 + 2*x1*x2^3*y2*y3 - 2*x2^4*y2*y3 + x1^4*y3^2 - 4*x1^3*x2*y3^2 + 6*x1^2*x2^2*y3^2 - 4*x1*x2^3*y3^2 + x2^4*y3^2 + x1*y1^4 - y1^4*x2 - 2*x1*y1^3*y2 + 2*y1^3*x2*y2 + 2*x1*y1*y2^3 - 2*y1*x2*y2^3 - x1*y2^4 + x2*y2^4 + y1^4*x3 - 4*y1^3*y2*x3 + 6*y1^2*y2^2*x3 - 4*y1*y2^3*x3 + y2^4*x3 + 2*x1*y1^3*y3 - 2*y1^3*x2*y3 - 6*x1*y1^2*y2*y3 + 6*y1^2*x2*y2*y3 + 6*x1*y1*y2^2*y3 - 6*y1*x2*y2^2*y3 - 2*x1*y2^3*y3 + 2*x2*y2^3*y3)/(x1^6 - 2*x1^5*x2 - x1^4*x2^2 + 4*x1^3*x2^3 - x1^2*x2^4 - 2*x1*x2^5 + x2^6 + 2*x1^5*x3 - 6*x1^4*x2*x3 + 4*x1^3*x2^2*x3 + 4*x1^2*x2^3*x3 - 6*x1*x2^4*x3 + 2*x2^5*x3 + x1^4*x3^2 - 4*x1^3*x2*x3^2 + 6*x1^2*x2^2*x3^2 - 4*x1*x2^3*x3^2 + x2^4*x3^2 - 2*x1^3*y1^2 + 2*x1^2*y1^2*x2 + 2*x1*y1^2*x2^2 - 2*y1^2*x2^3 + 4*x1^3*y1*y2 - 4*x1^2*y1*x2*y2 - 4*x1*y1*x2^2*y2 + 4*y1*x2^3*y2 - 2*x1^3*y2^2 + 2*x1^2*x2*y2^2 + 2*x1*x2^2*y2^2 - 2*x2^3*y2^2 - 2*x1^2*y1^2*x3 + 4*x1*y1^2*x2*x3 - 2*y1^2*x2^2*x3 + 4*x1^2*y1*y2*x3 - 8*x1*y1*x2*y2*x3 + 4*y1*x2^2*y2*x3 - 2*x1^2*y2^2*x3 + 4*x1*x2*y2^2*x3 - 2*x2^2*y2^2*x3 + y1^4 - 4*y1^3*y2 + 6*y1^2*y2^2 - 4*y1*y2^3 + y2^4), (x1^9*y1 - 6*x1^7*y1*x2^2 + 2*x1^6*y1*x2^3 + 12*x1^5*y1*x2^4 - 6*x1^4*y1*x2^5 - 10*x1^3*y1*x2^6 + 6*x1^2*y1*x2^7 + 3*x1*y1*x2^8 - 2*y1*x2^9 - 2*x1^9*y2 + 3*x1^8*x2*y2 + 6*x1^7*x2^2*y2 - 10*x1^6*x2^3*y2 - 6*x1^5*x2^4*y2 + 12*x1^4*x2^5*y2 + 2*x1^3*x2^6*y2 - 6*x1^2*x2^7*y2 + x2^9*y2 - 3*x1^7*y1*x3^2 + 6*x1^6*y1*x2*x3^2 + 9*x1^5*y1*x2^2*x3^2 - 30*x1^4*y1*x2^3*x3^2 + 15*x1^3*y1*x2^4*x3^2 + 18*x1^2*y1*x2^5*x3^2 - 21*x1*y1*x2^6*x3^2 + 6*y1*x2^7*x3^2 + 6*x1^7*y2*x3^2 - 21*x1^6*x2*y2*x3^2 + 18*x1^5*x2^2*y2*x3^2 + 15*x1^4*x2^3*y2*x3^2 - 30*x1^3*x2^4*y2*x3^2 + 9*x1^2*x2^5*y2*x3^2 + 6*x1*x2^6*y2*x3^2 - 3*x2^7*y2*x3^2 - 2*x1^6*y1*x3^3 + 6*x1^5*y1*x2*x3^3 - 20*x1^3*y1*x2^3*x3^3 + 30*x1^2*y1*x2^4*x3^3 - 18*x1*y1*x2^5*x3^3 + 4*y1*x2^6*x3^3 + 4*x1^6*y2*x3^3 - 18*x1^5*x2*y2*x3^3 + 30*x1^4*x2^2*y2*x3^3 - 20*x1^3*x2^3*y2*x3^3 + 6*x1*x2^5*y2*x3^3 - 2*x2^6*y2*x3^3 - 2*x1^9*y3 + 6*x1^8*x2*y3 - 16*x1^6*x2^3*y3 + 12*x1^5*x2^4*y3 + 12*x1^4*x2^5*y3 - 16*x1^3*x2^6*y3 + 6*x1*x2^8*y3 - 2*x2^9*y3 - 3*x1^8*x3*y3 + 12*x1^7*x2*x3*y3 - 12*x1^6*x2^2*x3*y3 - 12*x1^5*x2^3*x3*y3 + 30*x1^4*x2^4*x3*y3 - 12*x1^3*x2^5*x3*y3 - 12*x1^2*x2^6*x3*y3 + 12*x1*x2^7*x3*y3 - 3*x2^8*x3*y3 + x1^6*x3^3*y3 - 6*x1^5*x2*x3^3*y3 + 15*x1^4*x2^2*x3^3*y3 - 20*x1^3*x2^3*x3^3*y3 + 15*x1^2*x2^4*x3^3*y3 - 6*x1*x2^5*x3^3*y3 + x2^6*x3^3*y3 - 3*x1^6*y1^3 + 12*x1^4*y1^3*x2^2 - 5*x1^3*y1^3*x2^3 - 12*x1^2*y1^3*x2^4 + 9*x1*y1^3*x2^5 - y1^3*x2^6 + 9*x1^6*y1^2*y2 - 6*x1^5*y1^2*x2*y2 - 21*x1^4*y1^2*x2^2*y2 + 15*x1^3*y1^2*x2^3*y2 + 6*x1^2*y1^2*x2^4*y2 + 3*x1*y1^2*x2^5*y2 - 6*y1^2*x2^6*y2 - 6*x1^6*y1*y2^2 + 3*x1^5*y1*x2*y2^2 + 6*x1^4*y1*x2^2*y2^2 + 15*x1^3*y1*x2^3*y2^2 - 21*x1^2*y1*x2^4*y2^2 - 6*x1*y1*x2^5*y2^2 + 9*y1*x2^6*y2^2 - x1^6*y2^3 + 9*x1^5*x2*y2^3 - 12*x1^4*x2^2*y2^3 - 5*x1^3*x2^3*y2^3 + 12*x1^2*x2^4*y2^3 - 3*x2^6*y2^3 + 6*x1^4*y1^3*x3^2 - 9*x1^3*y1^3*x2*x3^2 - 9*x1^2*y1^3*x2^2*x3^2 + 21*x1*y1^3*x2^3*x3^2 - 9*y1^3*x2^4*x3^2 - 21*x1^4*y1^2*y2*x3^2 + 39*x1^3*y1^2*x2*y2*x3^2 + 9*x1^2*y1^2*x2^2*y2*x3^2 - 51*x1*y1^2*x2^3*y2*x3^2 + 24*y1^2*x2^4*y2*x3^2 + 24*x1^4*y1*y2^2*x3^2 - 51*x1^3*y1*x2*y2^2*x3^2 + 9*x1^2*y1*x2^2*y2^2*x3^2 + 39*x1*y1*x2^3*y2^2*x3^2 - 21*y1*x2^4*y2^2*x3^2 - 9*x1^4*y2^3*x3^2 + 21*x1^3*x2*y2^3*x3^2 - 9*x1^2*x2^2*y2^3*x3^2 - 9*x1*x2^3*y2^3*x3^2 + 6*x2^4*y2^3*x3^2 + 2*x1^3*y1^3*x3^3 - 6*x1^2*y1^3*x2*x3^3 + 6*x1*y1^3*x2^2*x3^3 - 2*y1^3*x2^3*x3^3 - 6*x1^3*y1^2*y2*x3^3 + 18*x1^2*y1^2*x2*y2*x3^3 - 18*x1*y1^2*x2^2*y2*x3^3 + 6*y1^2*x2^3*y2*x3^3 + 6*x1^3*y1*y2^2*x3^3 - 18*x1^2*y1*x2*y2^2*x3^3 + 18*x1*y1*x2^2*y2^2*x3^3 - 6*y1*x2^3*y2^2*x3^3 - 2*x1^3*y2^3*x3^3 + 6*x1^2*x2*y2^3*x3^3 - 6*x1*x2^2*y2^3*x3^3 + 2*x2^3*y2^3*x3^3 + 3*x1^6*y1^2*y3 - 12*x1^5*y1^2*x2*y3 + 12*x1^4*y1^2*x2^2*y3 + 12*x1^3*y1^2*x2^3*y3 - 33*x1^2*y1^2*x2^4*y3 + 24*x1*y1^2*x2^5*y3 - 6*y1^2*x2^6*y3 + 6*x1^5*y1*x2*y2*y3 - 24*x1^4*y1*x2^2*y2*y3 + 36*x1^3*y1*x2^3*y2*y3 - 24*x1^2*y1*x2^4*y2*y3 + 6*x1*y1*x2^5*y2*y3 - 6*x1^6*y2^2*y3 + 24*x1^5*x2*y2^2*y3 - 33*x1^4*x2^2*y2^2*y3 + 12*x1^3*x2^3*y2^2*y3 + 12*x1^2*x2^4*y2^2*y3 - 12*x1*x2^5*y2^2*y3 + 3*x2^6*y2^2*y3 + 6*x1^5*y1^2*x3*y3 - 18*x1^4*y1^2*x2*x3*y3 + 12*x1^3*y1^2*x2^2*x3*y3 + 12*x1^2*y1^2*x2^3*x3*y3 - 18*x1*y1^2*x2^4*x3*y3 + 6*y1^2*x2^5*x3*y3 - 12*x1^5*y1*y2*x3*y3 + 36*x1^4*y1*x2*y2*x3*y3 - 24*x1^3*y1*x2^2*y2*x3*y3 - 24*x1^2*y1*x2^3*y2*x3*y3 + 36*x1*y1*x2^4*y2*x3*y3 - 12*y1*x2^5*y2*x3*y3 + 6*x1^5*y2^2*x3*y3 - 18*x1^4*x2*y2^2*x3*y3 + 12*x1^3*x2^2*y2^2*x3*y3 + 12*x1^2*x2^3*y2^2*x3*y3 - 18*x1*x2^4*y2^2*x3*y3 + 6*x2^5*y2^2*x3*y3 + 3*x1^6*y1*y3^2 - 9*x1^5*y1*x2*y3^2 + 30*x1^3*y1*x2^3*y3^2 - 45*x1^2*y1*x2^4*y3^2 + 27*x1*y1*x2^5*y3^2 - 6*y1*x2^6*y3^2 - 6*x1^6*y2*y3^2 + 27*x1^5*x2*y2*y3^2 - 45*x1^4*x2^2*y2*y3^2 + 30*x1^3*x2^3*y2*y3^2 - 9*x1*x2^5*y2*y3^2 + 3*x2^6*y2*y3^2 - x1^6*y3^3 + 6*x1^5*x2*y3^3 - 15*x1^4*x2^2*y3^3 + 20*x1^3*x2^3*y3^3 - 15*x1^2*x2^4*y3^3 + 6*x1*x2^5*y3^3 - x2^6*y3^3 + 3*x1^3*y1^5 - 6*x1*y1^5*x2^2 + 3*y1^5*x2^3 - 12*x1^3*y1^4*y2 + 3*x1^2*y1^4*x2*y2 + 15*x1*y1^4*x2^2*y2 - 6*y1^4*x2^3*y2 + 15*x1^3*y1^3*y2^2 - 3*x1^2*y1^3*x2*y2^2 - 9*x1*y1^3*x2^2*y2^2 - 3*y1^3*x2^3*y2^2 - 3*x1^3*y1^2*y2^3 - 9*x1^2*y1^2*x2*y2^3 - 3*x1*y1^2*x2^2*y2^3 + 15*y1^2*x2^3*y2^3 - 6*x1^3*y1*y2^4 + 15*x1^2*y1*x2*y2^4 + 3*x1*y1*x2^2*y2^4 - 12*y1*x2^3*y2^4 + 3*x1^3*y2^5 - 6*x1^2*x2*y2^5 + 3*x2^3*y2^5 - 3*x1*y1^5*x3^2 + 3*y1^5*x2*x3^2 + 15*x1*y1^4*y2*x3^2 - 15*y1^4*x2*y2*x3^2 - 30*x1*y1^3*y2^2*x3^2 + 30*y1^3*x2*y2^2*x3^2 + 30*x1*y1^2*y2^3*x3^2 - 30*y1^2*x2*y2^3*x3^2 - 15*x1*y1*y2^4*x3^2 + 15*y1*x2*y2^4*x3^2 + 3*x1*y2^5*x3^2 - 3*x2*y2^5*x3^2 + 6*x1^2*y1^4*x2*y3 - 12*x1*y1^4*x2^2*y3 + 6*y1^4*x2^3*y3 - 6*x1^3*y1^3*y2*y3 - 6*x1^2*y1^3*x2*y2*y3 + 30*x1*y1^3*x2^2*y2*y3 - 18*y1^3*x2^3*y2*y3 + 18*x1^3*y1^2*y2^2*y3 - 18*x1^2*y1^2*x2*y2^2*y3 - 18*x1*y1^2*x2^2*y2^2*y3 + 18*y1^2*x2^3*y2^2*y3 - 18*x1^3*y1*y2^3*y3 + 30*x1^2*y1*x2*y2^3*y3 - 6*x1*y1*x2^2*y2^3*y3 - 6*y1*x2^3*y2^3*y3 + 6*x1^3*y2^4*y3 - 12*x1^2*x2*y2^4*y3 + 6*x1*x2^2*y2^4*y3 - 3*x1^2*y1^4*x3*y3 + 6*x1*y1^4*x2*x3*y3 - 3*y1^4*x2^2*x3*y3 + 12*x1^2*y1^3*y2*x3*y3 - 24*x1*y1^3*x2*y2*x3*y3 + 12*y1^3*x2^2*y2*x3*y3 - 18*x1^2*y1^2*y2^2*x3*y3 + 36*x1*y1^2*x2*y2^2*x3*y3 - 18*y1^2*x2^2*y2^2*x3*y3 + 12*x1^2*y1*y2^3*x3*y3 - 24*x1*y1*x2*y2^3*x3*y3 + 12*y1*x2^2*y2^3*x3*y3 - 3*x1^2*y2^4*x3*y3 + 6*x1*x2*y2^4*x3*y3 - 3*x2^2*y2^4*x3*y3 - 3*x1^3*y1^3*y3^2 + 9*x1^2*y1^3*x2*y3^2 - 9*x1*y1^3*x2^2*y3^2 + 3*y1^3*x2^3*y3^2 + 9*x1^3*y1^2*y2*y3^2 - 27*x1^2*y1^2*x2*y2*y3^2 + 27*x1*y1^2*x2^2*y2*y3^2 - 9*y1^2*x2^3*y2*y3^2 - 9*x1^3*y1*y2^2*y3^2 + 27*x1^2*y1*x2*y2^2*y3^2 - 27*x1*y1*x2^2*y2^2*y3^2 + 9*y1*x2^3*y2^2*y3^2 + 3*x1^3*y2^3*y3^2 - 9*x1^2*x2*y2^3*y3^2 + 9*x1*x2^2*y2^3*y3^2 - 3*x2^3*y2^3*y3^2 - y1^7 + 5*y1^6*y2 - 9*y1^5*y2^2 + 5*y1^4*y2^3 + 5*y1^3*y2^4 - 9*y1^2*y2^5 + 5*y1*y2^6 - y2^7 - y1^6*y3 + 6*y1^5*y2*y3 - 15*y1^4*y2^2*y3 + 20*y1^3*y2^3*y3 - 15*y1^2*y2^4*y3 + 6*y1*y2^5*y3 - y2^6*y3)/(x1^9 - 3*x1^8*x2 + 8*x1^6*x2^3 - 6*x1^5*x2^4 - 6*x1^4*x2^5 + 8*x1^3*x2^6 - 3*x1*x2^8 + x2^9 + 3*x1^8*x3 - 12*x1^7*x2*x3 + 12*x1^6*x2^2*x3 + 12*x1^5*x2^3*x3 - 30*x1^4*x2^4*x3 + 12*x1^3*x2^5*x3 + 12*x1^2*x2^6*x3 - 12*x1*x2^7*x3 + 3*x2^8*x3 + 3*x1^7*x3^2 - 15*x1^6*x2*x3^2 + 27*x1^5*x2^2*x3^2 - 15*x1^4*x2^3*x3^2 - 15*x1^3*x2^4*x3^2 + 27*x1^2*x2^5*x3^2 - 15*x1*x2^6*x3^2 + 3*x2^7*x3^2 + x1^6*x3^3 - 6*x1^5*x2*x3^3 + 15*x1^4*x2^2*x3^3 - 20*x1^3*x2^3*x3^3 + 15*x1^2*x2^4*x3^3 - 6*x1*x2^5*x3^3 + x2^6*x3^3 - 3*x1^6*y1^2 + 6*x1^5*y1^2*x2 + 3*x1^4*y1^2*x2^2 - 12*x1^3*y1^2*x2^3 + 3*x1^2*y1^2*x2^4 + 6*x1*y1^2*x2^5 - 3*y1^2*x2^6 + 6*x1^6*y1*y2 - 12*x1^5*y1*x2*y2 - 6*x1^4*y1*x2^2*y2 + 24*x1^3*y1*x2^3*y2 - 6*x1^2*y1*x2^4*y2 - 12*x1*y1*x2^5*y2 + 6*y1*x2^6*y2 - 3*x1^6*y2^2 + 6*x1^5*x2*y2^2 + 3*x1^4*x2^2*y2^2 - 12*x1^3*x2^3*y2^2 + 3*x1^2*x2^4*y2^2 + 6*x1*x2^5*y2^2 - 3*x2^6*y2^2 - 6*x1^5*y1^2*x3 + 18*x1^4*y1^2*x2*x3 - 12*x1^3*y1^2*x2^2*x3 - 12*x1^2*y1^2*x2^3*x3 + 18*x1*y1^2*x2^4*x3 - 6*y1^2*x2^5*x3 + 12*x1^5*y1*y2*x3 - 36*x1^4*y1*x2*y2*x3 + 24*x1^3*y1*x2^2*y2*x3 + 24*x1^2*y1*x2^3*y2*x3 - 36*x1*y1*x2^4*y2*x3 + 12*y1*x2^5*y2*x3 - 6*x1^5*y2^2*x3 + 18*x1^4*x2*y2^2*x3 - 12*x1^3*x2^2*y2^2*x3 - 12*x1^2*x2^3*y2^2*x3 + 18*x1*x2^4*y2^2*x3 - 6*x2^5*y2^2*x3 - 3*x1^4*y1^2*x3^2 + 12*x1^3*y1^2*x2*x3^2 - 18*x1^2*y1^2*x2^2*x3^2 + 12*x1*y1^2*x2^3*x3^2 - 3*y1^2*x2^4*x3^2 + 6*x1^4*y1*y2*x3^2 - 24*x1^3*y1*x2*y2*x3^2 + 36*x1^2*y1*x2^2*y2*x3^2 - 24*x1*y1*x2^3*y2*x3^2 + 6*y1*x2^4*y2*x3^2 - 3*x1^4*y2^2*x3^2 + 12*x1^3*x2*y2^2*x3^2 - 18*x1^2*x2^2*y2^2*x3^2 + 12*x1*x2^3*y2^2*x3^2 - 3*x2^4*y2^2*x3^2 + 3*x1^3*y1^4 - 3*x1^2*y1^4*x2 - 3*x1*y1^4*x2^2 + 3*y1^4*x2^3 - 12*x1^3*y1^3*y2 + 12*x1^2*y1^3*x2*y2 + 12*x1*y1^3*x2^2*y2 - 12*y1^3*x2^3*y2 + 18*x1^3*y1^2*y2^2 - 18*x1^2*y1^2*x2*y2^2 - 18*x1*y1^2*x2^2*y2^2 + 18*y1^2*x2^3*y2^2 - 12*x1^3*y1*y2^3 + 12*x1^2*y1*x2*y2^3 + 12*x1*y1*x2^2*y2^3 - 12*y1*x2^3*y2^3 + 3*x1^3*y2^4 - 3*x1^2*x2*y2^4 - 3*x1*x2^2*y2^4 + 3*x2^3*y2^4 + 3*x1^2*y1^4*x3 - 6*x1*y1^4*x2*x3 + 3*y1^4*x2^2*x3 - 12*x1^2*y1^3*y2*x3 + 24*x1*y1^3*x2*y2*x3 - 12*y1^3*x2^2*y2*x3 + 18*x1^2*y1^2*y2^2*x3 - 36*x1*y1^2*x2*y2^2*x3 + 18*y1^2*x2^2*y2^2*x3 - 12*x1^2*y1*y2^3*x3 + 24*x1*y1*x2*y2^3*x3 - 12*y1*x2^2*y2^3*x3 + 3*x1^2*y2^4*x3 - 6*x1*x2*y2^4*x3 + 3*x2^2*y2^4*x3 - y1^6 + 6*y1^5*y2 - 15*y1^4*y2^2 + 20*y1^3*y2^3 - 15*y1^2*y2^4 + 6*y1*y2^5 - y2^6))
(Q(Z[0].numerator()*W[0].denominator() - Z[0].denominator()*W[0].numerator())) == 0
True
(Q(Z[1].numerator()*W[1].denominator() - Z[1].denominator()*W[1].numerator())) == 0
True
def ecm(N, B=10^3, trials=10): m = prod([p^int(math.log(B)/math.log(p)) for p in prime_range(B+1)]) R = Integers(N) # Hacer creer a Sage creer que R es un cuerpo: R.is_field = lambda : True for _ in range(trials): while True: a = R.random_element() if gcd(4*a.lift()^3 + 27, N) == 1: break try: m * EllipticCurve([a, 1])([0,1]) except ZeroDivisionError, msg: # msg: "Inversa de <int> no existe" return gcd(Integer(str(msg).split()[2]), N) return 1
{"done":true} set_random_seed(2) ecm(5959, B=20)
{'done': True} 101
pe = next_prime(10^20) qe = next_prime(10^18) ecm(pe*qe, B=10^5)
1