eclib (including mwrank and related programs for elliptic curves over Q)

by J. E. Cremona, University of Warwick, U.K.

Updated 2017-08-15

mwrank and eclib

mwrank is a program written in C++ for computing Mordell-Weil groups of elliptic curves over Q via 2-descent. It is available as source code in the eclib package, which may be distributed under the GNU General Public License, version 2, or any later version.

mwrank is now only distributed as part of eclib. eclib is also included in Sage, and for most potential users the easiest way to run mwrank is to install Sage (which also of course gives you much much more). I no longer provide a source code distribution of mwrank by itself: use eclib instead.

Full source code for eclib is available from github including a full tarball (updated 2017-08-15). Also archived at DOI

Documentation for eclib, including mwrank and modular symbol programs, is included in the distribution. Installation should be as easy as unpacking followed by "./configure; make; make check; make install".


To build eclib from the source code you must have Shoup's NTL library installed on your computer, and the PARI library. The PARI library is only used for integer factorization.

Some eclib linear algebra functions will benefit from having FLINT installed, but at present using FLINT is optional. It is not relevant for mwrank itself.

Neither gmp nor mpir is a dependency of eclib, though most installations of NTL and PARI will use one of these.

Since April 2012, eclib uses the GNU autotools build system which should allow it to be configured, built and installed on a wide variety of architectures (including all those on which Sage is supported).

Magma programs

Various Magma programs, many of which are now redundant having been incorporated into recent Magma releases.

Pari/GP programs

Various GP scripts for elliptic curves including Heegner points. Almost all of this is now available in the standard Pari/GP distribution since version 2.5 (version 2.6 in the case of Heegner points).

Valid HTML 4.01!