Title: Change log for Magma V2.29-10
Author: Computational Algebra Group

Change log for Magma V2.29-10 (Released 7/8/2026)

Aggregates

•&cat applied to a sequence of sequences whose combined length exceeded 2^31 could corrupt memory and crash, rather than reporting that the result was too long. This has been fixed.

Algebraic Curves

•LPolynomial, ZetaFunction and EulerFactor could silently return a wrong L-polynomial for some genus 2 curves over small prime fields; the correct L-polynomial is now returned. Reported by Edgar Costa.

•HasOnlyOrdinarySingularities failed to compute the maximum multiplicity in case of small characteristic. This is now fixed by using Hasse derivatives. Reported by Shiva Chidambaram.

Algebraic Function Fields

•A bug in Subfields for characteristic 0 function fields when more specialization attempts were needed than were previously attempted has been fixed. Fix suggested by Juergen Klueners.

•A fix has been made to the computation of finite maximal orders of algebraic function fields using the Montes algorithm.

Algebraic Geometry

•The Calabi-Yau graded ring search routine stopped immediately with a file-opening error instead of doing any work, because it redirected the session log into a fixed directory that does not exist on a normal installation. It no longer sets a log file of its own, so it no longer fails during logging setup; call SetLogFile beforehand if you want its output logged.

•PointsModPN now also handles ordinary projective schemes over a residue ring Integers(p^k) of the integers, by covering the scheme with its standard affine charts and enumerating each projective point once. Consequently RationalPoints and Points return the points of such a projective scheme over Integers(p^k). Projective schemes over a non-prime-power modulus, or over a residue ring of a number-field order, are not yet supported.

Algebraic Number Fields

•The computation of the units in the final phase of the ClassGroup algorithm has been significantly improved in the case that the unit rank is non-trivial (specifically in the p-adic log handling). Difficult example with high unit rank supplied by Siman Wong.

•Embed has been adjusted when there are existing relationships between the input fields. Reported by Abhijit Mudigonda.

•ArtinMap returned an incorrect value when called for similar but different fields due to caching. This has been resolved through improved cache management. Reported by Sachi Hashimoto.

•Intersecting the zero ideal of an order with a base ring could give an ideal with a nonsense generator or cause a crash; this also made Norm of a Hermitian lattice with zero diagonal Gram entries crash. This has been fixed. Reported by Edgar Costa.

•Improvements have been made to embedding and coercion when fields are isomorphic.

•HasComplexConjugate for a number field (FldAlg) could fail with a sequence-length error when complex conjugation is given by a polynomial of low degree in the generator; this has been fixed.

•IsRootOfUnity could return twice the correct order for an element of a cyclotomic field, failed with a type error for an element of a cyclotomic ring of integers, and rejected elements of a quadratic field outright. This has been fixed. For an element of a p-adic ring or field the order returned could be meaningless: IsRootOfUnity reported that 2 is a root of unity of order 76293945312500 in the 5-adic field. That computation has been withdrawn. Zero and elements of nonzero valuation are now reported as not roots of unity, 1 and -1 are reported as roots of unity of orders 1 and 2, and for any other p-adic unit IsRootOfUnity now raises an error instead of returning an answer that may be wrong. Genuine p-adic roots of unity, such as the nontrivial Teichmüller representatives, are refused as well. Reported by Gabor Wiese.

•The efficiency of MakeCyclotomic has been improved.

Binary Quadratic Forms

•A ClassNumber computation which failed depending on seed has been fixed.

Coding Theory

•A self-dual quantum code was assigned minimum weight 0 if the weight distribution of the classical code it was constructed from had already been computed. This has been fixed. Reported by Markus Grassl.

Commutative Algebra

•PrimaryDecomposition for an ideal defined over a non-field was missing an error check. This has been fixed. Reported by Miles Reid.

•Fixed bad inefficiency in PrimaryDecomposition for a zero-dimensional ideal defined over the rational field where there were several variables. Reported by Edgar Costa.

Congruence Subgroups of PSL_2(R)

•IsGamma no longer returns true for a congruence subgroup defined with a Dirichlet character, bringing it into line with IsGamma0, IsGamma1, IsGammaUpper0 and IsGammaUpper1, which already excluded such groups. Because Index and Genus take a Γ(N) shortcut whenever IsGamma holds, they previously returned the values of Γ(N) itself for these groups: for Γ(13) relaxed by an even quadratic character, Index gave 1092 instead of 364 and Genus gave 50 instead of 16.

Elliptic Curves

•IntegralQuarticPoints raised a runtime error on a quartic whose associated elliptic curve has rank 0 and nontrivial torsion; the integral points are now returned. Reported by Gökhan Soydan.

Finite Fields

•Certain lattices of finite fields of the same characteristic (in particular, arising from residue class fields created in GaloisGroup computations) could have incompatible embeddings of subfields. This has been fixed. Reported by Gunter Malle and Claus Fieker.

Finite Groups

•Subgroups now returns no subgroup classes when IndexEqual is set to an index that does not divide the group order, instead of returning classes with a different index.

Galois Groups

•A crash in GaloisProof has been fixed. Reported by Bjorn Poonen.

Groups

•An intrinsic IsSubgroup(H,K) has been added. For subgroups H and K of a common overgroup it is equivalent to H subset K. Reported by Florian Hess.

Hilbert Modular Forms

•HeckeOperator on a space of Hilbert cusp forms could fail with an assertion error in ProjectiveLine when the level was divisible by two prime ideals of residue degree greater than one, one of them to multiplicity at least two. The underlying residue-class enumeration of O/I returned colliding representatives in this case, so the projective line was built incomplete; it is now computed from the Smith normal form of the ideal and is always complete. Reported by Edgar Costa.

Lattices

•GenusRepresentatives for a number-field lattice raised the error "Illegal null sequence" when the lattice had an all-zero diagonal Gram matrix, such as the indefinite unimodular lattice II_2,2 (an orthogonal sum of hyperbolic planes). This came from Norm, where the diagonal-value ideal was the zero ideal and its empty basis was passed to Matrix. The norm of such a lattice is now computed correctly from its off-diagonal (trace) contribution. Reported by Eran Assaf.

•NeighbourClosure rejected the UseAuto parameter and had no overload for a LatNF argument, unlike NeighborClosure. NeighbourClosure now accepts exactly the same parameters and overloads as NeighborClosure.

Lie Algebras

•UpperCentralSeries and Generators caused an internal error for an algebra whose base ring was a euclidean ring which is not a field, such as a univariate polynomial ring over a finite field. This has been fixed. Reported by Armand Brumer.

Local Fields

•Factorization for a polynomial over a p-adic ring or field could occasionally hit infinite recursion and eventually crash when the requested precision was too low to separate the true factors (here this arose in the computation of an Artin representation L-series). The internal algorithm now automatically retries at higher precision and over a fixed-precision ring it raises a clean error instead of looping. Reported by Siman Wong.

•HenselLift of polynomials over a local field whose leading coefficient is an imprecise zero has been improved. Reported by Aidan Hennessey.

Matrices

•Operations on matrices with more than 2^31 entries could give a wrong answer or an error in the Standard version, because of 32-bit overflow in some places. This has been fixed. Reported by Eran Assaf.

Matrix Groups

•StabiliserOfSpaces could take many minutes and tens of gigabytes on a long sequence of subspaces, and then crash. It is now much faster and uses far less memory. This has been fixed. Reported by Eamonn O'Brien.

Modular Curves

•Both forms of Af declared a return type of ModSym while returning the sequence of spaces that NewformDecomposition and SortDecomposition give, one for each Galois-conjugacy class of newforms. The declared type is now SeqEnum, matching what is returned and what those two intrinsics declare.

Polynomial Rings

•Applying a ring homomorphism to an element of a quotient of a univariate polynomial ring (where the base ring was a large residue class ring) did not reduce the coefficients to a canonical form sometimes. This has been fixed. Reported by Edgar Costa.