Overview
p-adic numbers
The modules padic, padic_poly, padic_mat, qadic and padic_radix compute in the field of -adic numbers and its unramified extensions . Standard introductions to -adic numbers are [Gou1997] and [Rob2000]; [Car2017] surveys the computational models.
In this section#
Overviewp-adic arithmetic in FLINTThe modules for p-adic numbers, their precision models and representations, and which algorithm each function uses for inversion, square roots, the exponential and logarithm, Teichmüller lifts, the Frobenius map, norms and traces.AlgorithmPrecision and representation of p-adic numbersHow FLINT represents a p-adic number as p^v u modulo p^N, the difference between absolute and relative precision, how much precision each arithmetic operation preserves, and the two precision models used by padic/qadic and by padic_radix.AlgorithmError terms of dot products, matrix products and polynomial productsHow padic_radix computes the precision of a sum of products term by term, how it computes the values of whole matrix and polynomial products with integer, modular or Kronecker-substitution kernels, and how it computes the per-entry precisions by min-plus products and min-plus convolutions, exactly and in quasi-linear time in the regular cases.AlgorithmOptimal precision in p-adic linear algebraThe precision of a result is bounded by its differential; how FLINT attains this bound for determinants and linear systems by full pivoting on valuations (blocked by valuation levels), and for characteristic polynomials by computing on an exact lift and assigning the precision of the differential, compared with division-free and partially pivoted algorithms.AlgorithmHensel lifting of inverses, square roots and Teichmüller liftsNewton iteration in Z_p and Z_q with the precision sequence N, ⌈N/2⌉, ..., 1, applied to inverses, inverse square roots (with the final step producing the square root) and Teichmüller lifts, including the modifications needed for p = 2.AlgorithmThe p-adic exponential and logarithmConvergence and truncation bounds for the p-adic exponential and logarithm series, their evaluation by rectangular splitting with deferred denominators, the balanced (bit-burst) method with binary splitting, and the Satoh–Skjernaa–Taguchi reduction of the logarithm, as implemented in padic, qadic and padic_radix.AlgorithmArithmetic in unramified extensionsHow qadic represents the unramified extension Q_q = Q_p[X]/(f) and computes products with reduction modulo a sparse defining polynomial, inverses, powers, traces by Newton's identities, norms by resultants or as exp(Tr(log x)), and square roots including the Artin–Schreier step for p = 2.AlgorithmFrobenius automorphism and Teichmüller lifts in unramified extensionsHow qadic computes the Frobenius automorphism of Q_q by Newton lifting the image of the generator and evaluating by rectangular splitting, and how Teichmüller lifts are computed, with the relations between the two.
References#
- [Gou1997] F. Q. Gouvêa. p-adic Numbers: An Introduction. Universitext, Springer, second edition, 1997. https://doi.org/10.1007/978-3-642-59058-0
- [Rob2000] A. M. Robert. A Course in p-adic Analysis. Graduate Texts in Mathematics 198, Springer, 2000. https://doi.org/10.1007/978-1-4757-3254-2
- [Car2017] X. Caruso. Computations with p-adic numbers. Les cours du CIRM 5 (2017), Journées Nationales de Calcul Formel. https://arxiv.org/abs/1701.06794
Cite this page
The FLINT team, “p-adic numbers,” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/algorithms/p-adic/index.html (generated 2026-11-02).
@misc{flint-doc-algorithms-p-adic-index,
author = {{The FLINT team}},
title = {{p-adic numbers}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/algorithms/p-adic/index.html},
note = {Generated 2026-11-02}
}