2907
Comment: summarize #7834
|
4543
summarize #6583
|
Deletions are marked like this. | Additions are marked like this. |
Line 30: | Line 30: |
* [[http://trac.sagemath.org/sage_trac/ticket/6583 | #6583]] (Robert Miller) | * Two-isogeny descent over `QQ` natively using ratpoints [[http://trac.sagemath.org/sage_trac/ticket/6583 | #6583]] (Robert Miller) --- New module `sage/schemes/elliptic_curves/descent_two_isogeny.pyx` for descent on elliptic curves over `QQ` with a 2-isogeny. The relevant user interface function is `two_descent_by_two_isogeny()` that takes an elliptic curve `E` with a two-isogeny `phi : E --> E'` and dual isogeny `phi'`, runs a two-isogeny descent on `E`, and returns `n1`, `n2`, `n1'` and `n2'`. Here, `n1` is the number of quartic covers found with a rational point and `n2` is the number which are ELS. Here are some examples illustrating the use of `two_descent_by_two_isogeny()`: {{{ sage: from sage.schemes.elliptic_curves.descent_two_isogeny import two_descent_by_two_isogeny sage: E = EllipticCurve("14a") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 0 sage: E = EllipticCurve("65a") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 1 sage: E = EllipticCurve("1088j1") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 2 }}} You could also ask `two_descent_by_two_isogeny()` to be verbose in its computation: {{{ sage: E = EllipticCurve("14a") sage: two_descent_by_two_isogeny(E, verbosity=1) 2-isogeny Results: 2 <= #E(Q)/phi'(E'(Q)) <= 2 2 <= #E'(Q)/phi(E(Q)) <= 2 #Sel^(phi')(E'/Q) = 2 #Sel^(phi)(E/Q) = 2 1 <= #Sha(E'/Q)[phi'] <= 1 1 <= #Sha(E/Q)[phi] <= 1 1 <= #Sha(E/Q)[2], #Sha(E'/Q)[2] <= 1 0 <= rank of E(Q) = rank of E'(Q) <= 0 (2, 2, 2, 2) }}} |
Sage 4.3.1 Release Tour
Major features
Substantial work towards a complete SPARC Solaris 10 port. This is due to the hard work of David Kirkby. The relevant tickets include #6595, #7138, #7162, #7505, #7817.
We're moving closer towards a FreeBSD port, thanks to the work of Peter Jeremy at ticket #7825.
Basic arithmetics
Implement conjugate() for RealDoubleElement #7834 (Dag Sverre Seljebotn) --- New method conjugate() in the class RealDoubleElement of the module sage/rings/real_double.pyx for returning the complex conjugate of a real number. This is consistent with conjugate() methods in ZZ and RR. For example,
sage: ZZ(5).conjugate() 5 sage: RR(5).conjugate() 5.00000000000000 sage: RDF(5).conjugate() 5.0
Combinatorics
#7754 (Nicolas M. Thiéry)
Elliptic curves
Two-isogeny descent over QQ natively using ratpoints #6583 (Robert Miller) --- New module sage/schemes/elliptic_curves/descent_two_isogeny.pyx for descent on elliptic curves over QQ with a 2-isogeny. The relevant user interface function is two_descent_by_two_isogeny() that takes an elliptic curve E with a two-isogeny phi : E --> E' and dual isogeny phi', runs a two-isogeny descent on E, and returns n1, n2, n1' and n2'. Here, n1 is the number of quartic covers found with a rational point and n2 is the number which are ELS. Here are some examples illustrating the use of two_descent_by_two_isogeny():
sage: from sage.schemes.elliptic_curves.descent_two_isogeny import two_descent_by_two_isogeny sage: E = EllipticCurve("14a") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 0 sage: E = EllipticCurve("65a") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 1 sage: E = EllipticCurve("1088j1") sage: n1, n2, n1_prime, n2_prime = two_descent_by_two_isogeny(E) sage: log(n1, 2) + log(n1_prime, 2) - 2 # the rank 2
You could also ask two_descent_by_two_isogeny() to be verbose in its computation:
sage: E = EllipticCurve("14a") sage: two_descent_by_two_isogeny(E, verbosity=1) 2-isogeny Results: 2 <= #E(Q)/phi'(E'(Q)) <= 2 2 <= #E'(Q)/phi(E(Q)) <= 2 #Sel^(phi')(E'/Q) = 2 #Sel^(phi)(E/Q) = 2 1 <= #Sha(E'/Q)[phi'] <= 1 1 <= #Sha(E/Q)[phi] <= 1 1 <= #Sha(E/Q)[2], #Sha(E'/Q)[2] <= 1 0 <= rank of E(Q) = rank of E'(Q) <= 0 (2, 2, 2, 2)
#6887 (John Cremona, Jenny Cooley)
Graph theory
Linear algebra
Miscellaneous