Next: Representation Theory
Up: Extensions of Rings
Previous: Newton Polygons [HB 60]
p-adic Rings and Fields [HB 61]
The p-adic rings and fields have been completely rewritten. The new
implementation is substantially faster, to the extent that Magma
implementations of point-counting algorithms such as the AGM are now within an
order of magnitude of optimized C implementations. The new p-adics are built
around a fixed precision model, where all elements are of the same precision;
while it is still possible to construct free precision rings (where each
element can have a different precision), these are internally mapped into the
fixed precision structures. Thus, the user can sacrifice automated precision
management for greater speed.
New Features:
- There are now four ring/field types: RngPadRes and RngPadResExt,
representing fixed-precision rings, and RngPad and FldPad,
representing free precision rings and fields, respectively.
- The number of constructors for the p-adics has been cut substantially. In
particular, the allowed parameters of the ext constructor have been
reduced and all LocalRing and LocalField constructors have been
removed. Similarly, the allowed parameters of the elt constructor have
also changed.
- In free precision rings, exact elements are no longer supported (that is, the
rationals are no longer directly embedded into the p-adics). For instance,
in the previous implementation, the element 1 could be represented exactly in
a p-adic ring; now, it can only be represented up to some finite precision.
- Extensions may now be constructed in chains of arbitrary height. This means
that intrinsics such as Degree, RamificationDegree, InertiaDegree, Eltseq, Trace, Norm, and MinimalPolynomial are now overloaded to take a second argument, which is the
base ring or field with respect to which the calculated is performed.
- The intrinsics EisensteinPolynomial, InertialPolynomial, and InertiaRing have been removed.
- The attribute SeriesPrinting has been removed.
- The generators of a local ring or field L have now changed. In previous
versions of magma, L.1 referred to the uniformizing element, and L.2
referred to the inertial element. Now, a local ring or field L has only
one generator, L.1, which refers to the element whose powers generate a
basis of L as a vector space over its base ring or field. The uniformizing
element can still be obtained using UniformizingElement.
- Equality of elements in a free precision ring is now banned, due to the fact
that there are several possible definitions of equality in an inexact ring.
- The intrinsics LocseqInert, InertseqpAdic, and Locseq have
been removed, as their functionality is now available in Eltseq.
- In a free precision p-adic ring R, division by / now returns an element
in its field of fractions, whereas div returns an element in R (and
hence may fail). An intrinsic IsExactlyDivisible has been added which
allows the user to check whether div will succeed.
- The Hensel lifting of polynomial factorizations has been improved, and now
the intrinsic HenselLift can take a sequence of factors, instead of just
two factors.
- Intrinsics InverseSqrt, InverseSquareRoot and InverseRoot
have been added, which perform efficient computation of x-1/n for some
local ring or field unit x.
- The intrinsic HasPRoot has been removed.
Next: Representation Theory
Up: Extensions of Rings
Previous: Newton Polygons [HB 60]