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+).


Version 0.4.3 "Fitzebohnen", released in February 2024, comes with the following new features:

Version 0.4.2 "Fitzebohnen", released in May 2023, comes with the following new features:

Version 0.4.1, "Fitzebohnen", released in January 2023, comes with the following new features:

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.