(moved over from sage-support...) On Jan 14, 2008, at 10:28 PM, David Harvey wrote:
> What would be *really* nice is if we could work directly in the > fraction field of the quotient of R.<x1,y1,x2,y2,x3,y3,a,b> by the > appropriate ideal. (Does that even make sense? Is the ideal prime?) I > tried to do this but Sage gave up pretty quickly on me. A nice encore > would be to do this using Sage's elliptic curve class to do the > actual arithmetic. After all EllipticCurves can be defined over any > field.... > > Here's my dream session: > > sage: R.<x1,y1,x2,y2,x3,y3,a,b> = QQ[] > sage: I = R.ideal(y1^2 - x1^3 - a*x1 - b, y2^2 - x2^3 - a*x2 - b, > y3^2 - x3^3 - a*x3 - b) > sage: S = FractionField(R.quotient(I)) # currently barfs > sage: E = EllipticCurve(S, [a, b]) > sage: P1 = E(x1, y1) > sage: P2 = E(x2, y2) > sage: P3 = E(x3, y3) > sage: (P1 + P2) + P3 == P1 + (P2 + P3) > True Ha ha ha I can almost make this work. I edited sage/rings/ideal.py so that is_prime() always returns True and is_maximal() function always returns False (not a good long-term solution.....) Then: sage: R.<x1,y1,x2,y2,x3,y3,a,b> = QQ[] sage: I = R.ideal(y1^2 - x1^3 - a*x1 - b, y2^2 - x2^3 - a*x2 - b, y3^2 - x3^3 - a*x3 - b) sage: S = FractionField(R.quotient(I)) sage: S Fraction Field of Quotient of Multivariate Polynomial Ring in x1, y1, x2, y2, x3, y3, a, b over Rational Field by the ideal (-x1^3 + y1^2 - x1*a - b, -x2^3 + y2^2 - x2*a - b, -x3^3 + y3^2 - x3*a - b) sage: E = EllipticCurve(S, [a, b]) sage: E Elliptic Curve defined by y^2 = x^3 + abar*x + bbar over Fraction Field of Quotient of Multivariate Polynomial Ring in x1, y1, x2, y2, x3, y3, a, b over Rational Field by the ideal (-x1^3 + y1^2 - x1*a - b, -x2^3 + y2^2 - x2*a - b, -x3^3 + y3^2 - x3*a - b) sage: P1 = E(x1, y1) sage: P1 (x1bar : y1bar : 1) sage: P2 = E(x2, y2) sage: P3 = E(x3, y3) sage: P1 + P2 ((x1bar^2*x2bar + x1bar*x2bar^2 - 2*y1bar*y2bar + x1bar*abar + x2bar*abar + 2*bbar)/(x1bar^2 - 2*x1bar*x2bar + x2bar^2) : (-3*y1bar^3*x2bar^2 + x1bar^2*y1bar^2*y2bar + x1bar*y1bar^2*x2bar*y2bar - 5*y1bar^2*x2bar^2*y2bar + 5*x1bar^2*y1bar*y2bar^2 - x1bar*y1bar*x2bar*y2bar^2 - y1bar*x2bar^2*y2bar^2 + 3*x1bar^2*y2bar^3 - 6*x1bar^2*y1bar*x2bar*abar + 9*x1bar*y1bar*x2bar^2*abar - 9*x1bar^2*x2bar*y2bar*abar + 6*x1bar*x2bar^2*y2bar*abar - y1bar^3*abar + 2*y1bar^2*y2bar*abar - 2*y1bar*y2bar^2*abar + y2bar^3*abar + x1bar*y1bar*abar^2 + 2*y1bar*x2bar*abar^2 - 2*x1bar*y2bar*abar^2 - x2bar*y2bar*abar^2 - 9*x1bar^2*y1bar*bbar + 9*x1bar*y1bar*x2bar*bbar - 9*x1bar*x2bar*y2bar*bbar + 9*x2bar^2*y2bar*bbar + 3*y1bar*abar*bbar - 3*y2bar*abar*bbar)/ (x1bar^2*y1bar^2 - 5*x1bar*y1bar^2*x2bar + 10*y1bar^2*x2bar^2 - 10*x1bar^2*y2bar^2 + 5*x1bar*x2bar*y2bar^2 - x2bar^2*y2bar^2 + 15*x1bar^2*x2bar*abar - 15*x1bar*x2bar^2*abar - y1bar^2*abar + y2bar^2*abar + x1bar*abar^2 - x2bar*abar^2 + 9*x1bar^2*bbar - 9*x2bar^2*bbar) : 1) sage: Q1 = (P1 + P2) + P3 .... but then it chickens out. Sage thinks for about 90s, chews up 400MB RAM, then singular takes over and just sits there for a while. Maybe it's doing a multivariate gcd somewhere? Dunno. Funny thing is that singular doesn't use much memory at all. I killed it after 10 minutes. Any ideas? david --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---
