Demonstration: Sage combines the power of multiple software

<span id="demo-number-theory"></span>


<p>(taken from a talk from William Stein)</p>
<p>Construct an elliptic curve using John Cremona's table:</p>

{{{id=0|
E = EllipticCurve('389a')
///
}}}

<p>Use <em>matplotlib</em> to plot it:</p>

{{{id=1|
plot(E,thickness=3)
///
}}}

<p>Use <em>mwrank</em> to do a 2-descent:</p>

{{{id=2|
print E.mwrank()
///
Curve [0,1,1,-2,0] :    Rank = 2
}}}

<p><em>PARI</em> to compute Fourier coefficients $a_n$:</p>

{{{id=3|
E.anlist(15)
///
[0, 1, -2, -2, 2, -3, 4, -5, 0, 1, 6, -4, -4, -3, 10, 6]
}}}

<p><em>lcalc</em> to compute zeros in the critical strip of the L-series:</p>

{{{id=4|
E.lseries().zeros(5)
///
[0.000000000, 0.000000000, 2.87609907, 4.41689608, 5.79340263]
}}}

<p><em>sympow</em> to compute the modular degree:</p>

{{{id=5|
E.modular_degree()
///
40
}}}

<p><em>Magma</em> to compute the rank of the 3-selmer group:</p>

{{{id=6|
magma(E).ThreeSelmerGroup()
///
}}}

