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. 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.3.1 "Wurstebrei", released in September 2020, comes with the following new features:
- Increase the minimal version numbers of the dependencies, to MPFRCX 0.5 and PARI/GP 2.9.
- Bug fixes.
- Lots of internal changes.
Olds
Version 0.3, released in March 2016, comes with the following new features:
-
Features
- The baby-step giant-step algorithm of Enge-Hart-Johansson 2018 is used to compute the series of η, leading to a speed-up of up to a factor of 2 for this step of the algorithm.
- Class polynomial computation for j and γ2 is sped up by using a 2- or a 6-system, respectively, instead of a 1- or a 3-system. This makes it more likely that during the needed computation of η (τ/2) the conductor is not changed, so that a precomputed η value may be reused.
-
Miscellanea
- The license has been updated to GPLv3+, in line with the license of recent GMP, MPFR and MPC releases.
Version 0.2.1 "Blindhühnchen", released in March 2015, comes with the following new features:
-
Features
- Precisions beyond 300000 bits are now supported by an addition chain of variable length for the η-function.
-
Dependencies
- The minimal version number of MPFR has been increased to 3.0.0, that of MPC to 1.0.0 and that of Pari/GP to 2.7.0.
Version 0.2, released in February 2012, comes with the following new features:
-
Features
-
new class invariants: multiple eta quotients with
-imultieta
- double eta quotients with both primes >100
- new parameter choice for double eta quotients yielding smaller class polynomials
- slightly lower height bounds for double eta quotients
-
new class invariants: multiple eta quotients with
-
Bug fixes
-
printing of field and curve cardinality even without parameter
-v
-
Weber polynomials work again (activated by
-iweber
) - class polynomials for D=-4 and D=-16 work (no curve is constructed)
-
printing of field and curve cardinality even without parameter
-
Dependencies
-
factorisation of class polynomials is done by
pari
instead ofntl
-
factorisation of class polynomials is done by
The initial release of version 0.1 "Apfelkraut" was made in November 2009.