Introduction
The CM software implements the construction of ring class fields of imaginary quadratic number fields and of elliptic curves with complex multiplication via floating point approximations. Additionally it provides an implementation of the fastECPP algorithm for proving primality of integers. It consists of libraries that can be called from within a C program and of executable command line applications. For the implemented algorithms, see A. Enge, The complexity of class polynomial computation via floating point approximations, Mathematics of Computation 78 (266), 2009, pp. 1089–1107.
The software is written by Andreas Enge and is distributed under the GNU General Public License, either version 3 of the licence, or (at your option) any later version (GPLv3+).
News
Version 0.4.4 "Fitzebohnen", released in July 2025, comes with the following new features:
- Fix build with gcc-14.
-
Change parameters to increase likelihood of success for serial
ecpp
.
Version 0.4.3 "Fitzebohnen", released in February 2024, comes with the following new features:
- Support FLINT version 3.
- Add an upper bound on the permitted class number in ECPP, to avoid choosing discriminants for which class polynomials cannot be computed in reasonable time and with reasonable memory.
-
Add a binary
ecpp-check
for checking certificates.
In May 2022, I used the fastECPP implementation included in CM since release 0.4.0 to set up a new primality proof record, showing that the number 1050000+65859 is prime; this is in fact the smallest prime with 50001 digits. The prime certificate can be downloaded in PARI/GP and in Primo format. For more details, see the announcement.