Patch Notes

Magma V2.29-8 Patch Notes

Patch release for Magma V2.29-8. Updated areas: Aggregates, Algebraic Curves, Algebraic Function Fields, Algebraic Number Fields, Algebraic Surfaces and 17 more.

22 areas

Aggregates

  • Printing of multisets now respects the print level properly for elements with multiplicity greater than 1. Reported by Markus Grassl.

Algebraic Curves

  • RandomGenus5CurveNonTrigonal hung forever over fields of characteristic 2. It now reports a clear error instead.

  • GonalityPreservingLift on a non-trigonal genus-5 curve over a field of characteristic 2 used to fail with an internal "Division by zero". It now reports a clear characteristic-2 error.

Algebraic Function Fields

  • A crash when constructing an ideal of an order of an algebraic function field using a sequence containing one zero has been fixed. Reported by Florian Hess.

  • Print names are now automatically assigned to the algebraic function field constructed to be a rational function field if the rational function field has print names assigned. Reported by Florian Hess.

  • Coercion into algebraic function fields has been extended/improved so that evaluation of polynomials at elements of such fields (with automatic coercion) now behaves correctly. Reported by Shiva Chidambaram.

Algebraic Number Fields

  • The efficiency of memory management has been improved when deleting many number fields. Reported by Andrew Sutherland.

  • Embedding information is now reliably retained between fields and subfields constructed from them.

Algebraic Surfaces

  • The BettiNumber intrinsic for elliptic surfaces over a non-rational base curve now uses the correct genus contributions.

  • We improved ParametrizeDelPezzo for smooth degree-5 surfaces by trying all 5 choices of removal quadric in the pair-of-points construction.

Algebras

  • A bug in sub<> for non-associative algebras, where products of basis elements were not included, has been fixed. Reported by Justin McIlroy.

  • Signature matching and dispatch has been fixed so that multiplication of a polynomials defined over an algebra and a scalar in the algebra now behaves correctly. Reported by Przemyslaw Koprowsk.

  • A crash arising from incorrect memory handling in the function UniversalEnvelopingAlgebra has been fixed.

Automatic Groups

  • New function IsConjugate to test conjugacy for infinite-order elements of a hyperbolic group.

Basic Algebras

  • The algorithm to compute a basic algebra from a presentation has been significantly improved by the use of sparse matrices; this can also save memory. Reported by David Benson.

Coding Theory

Commutative Algebra

  • Unexpected behaviour in the Homogenization function for multivariate polynomials ideals has been fixed. Reported by Daniele Taufer.

  • A crash when computing homogeneous Groebner bases has been fixed. Reported by Sachi Hashimoto.

  • A bug where PrimaryDecomposition could create ideals which did not have properly reduced Groebner bases has been fixed.

  • A hang in Radical testing for ideals with many variables in small characteristic has been fixed. Reported by Steve Huang.

  • The FGLM algorithm now selects most monomial orders for the target order (when the Al := "FGLM" parameter is given). Requested by Eric Rains.

  • New function NumberField(A) for affine algebra A (in the case that A is a field) has been added. Requested by Eric Rains.

Finite Groups

  • Added intrinsic IdentifyGroupBySearch(G), which returns the <#G, k> label of G in the small groups database by iterating the database with cheap invariants (derived subgroup order, exponent, centre order, etc.) followed by an IsIsomorphic check. This is a fallback for orders such as 1152 and 1536 for which CanIdentifyGroup returns false. The error raised by IdentifyGroup on such orders now mentions this fallback. Reported by Dan Yasaki.

  • Functions like CosetAction for matrix groups defined over quotient rings of orders of number fields are now properly supported. Reported by Steve Huang.

  • A small bug in maximal subgroups for Sp(8,4) has been fixed. Reported by Tim Burness.

  • New function WordInGenerators which uses an algorithm of Minkwitz to try to write elements of a finite permutation or matrix group as a reasonably short word in the user generators.

Finitely Presented Groups

Invariant Rings

  • A hang in PrimaryInvariants for diagonal matrix groups has been fixed. Reported by David Benson.

Lattices

  • A crash in IsIsometric for integral lattices has been fixed. Reported by Jeremy Rouse.

Local Fields

  • Precision when constructing Eltseq of an element in a ramified extension has been improved. Reported by Kevin Keating.

  • Precision when coercing an element sequence into a local field has been improved. Reported by Kevin Keating.

Matrices

  • Fixed a precision bug in numerical complex linear algebra (Solution, Kernel, Rank) where an internal random-unitary generator was passed the wrong parent and used a heap-state-dependent precision, causing results to vary in the last bits across sessions.

  • The algorithms to compute the echelon form or nullspace of a matrix defined over the quotient of a maximal order of a number field by any ideal is now supported properly for the first time. Reported by Dan Yasaki.

  • A crash in Determinant for matrices defined over quaternion algebras has been fixed. Reported by Lewis Combes.

Matrix Groups

  • Algorithms for matrix groups defined over quaternion algebras are now supported properly. Reported by Markus Grassl.

Modular Curves

  • Implemented faster version of X0NQuotient when the quotient is an elliptic curve embedded in a high dimensional space. Reported by Oana Padurariu.

Permutation Groups

  • New function TwoClosure to compute the two-closure of a transitive permutation group.

Quadratic Fields

  • The Conductor of some quadratic orders has been fixed to match the documentation and equivalent computations. Reported by Anthony Henderson.

Representation Theory

  • A bug in Complement(M, S) for G-modules M,S (where the base ring was not a finite field, the integer ring or the rational field) has been fixed. Reported by Justin McIlroy.

System

  • The command-line usage and documentation now describe all user-facing startup options, and -h, -? and –help now display the usage message and exit successfully.

  • Blank lines are now preserved in strings even when reading from standard input (in particular when in a terminal).

  • A fix has been made so infinite recursion (causing a crash) in traceback printing on errors is now avoided.

  • A fix in traceback printing has been made so that whenever an error occurs while printing a function argument, the argument is abbreviated and the original error message is now clearly printed properly. Reported by David Roe.