ecpp_class_poly_genus
#include <flint/ecpp.h>int ecpp_class_poly_genus(fmpz_mod_poly_t F, slong D, const slong * pstar, slong g, const fmpz * sqrts, const fmpz_mod_ctx_t ctx)sourceSets F to the factor of the Hilbert class polynomial modulo (the modulus of ctx) that corresponds to the principal genus. Here with the given in pstar (the signed odd primes dividing and, for even , the factor ), and sqrts[i] is a square root of pstar[i] modulo , which must exist. Over the genus field , factors into conjugate factors of degree , whose coefficients are identified numerically from the values of at the reduced forms grouped by genus; F is the image of one of them modulo , so that finding a root costs a fraction of a root of . Returns 1 on success and 0 if or the coefficients could not be identified. Requires fundamental.
The FLINT team, “ecpp_class_poly_genus (ecpp.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/ecpp/ecpp_class_poly_genus.html (generated 2026-11-02).
@misc{flint-doc-ecpp-ecpp-class-poly-genus,
author = {{The FLINT team}},
title = {{ecpp\_class\_poly\_genus (ecpp.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/ecpp/ecpp_class_poly_genus.html},
note = {Generated 2026-11-02}
}