Change log for Magma V2.20-4 (Released 11/3/2014)

Abelian Extensions of Function Fields

·Fix SMaximalOrder to be an S-maximal over order of the equation order.

·The computation of maximal orders of Artinâ€“Schreierâ€”Witt extensions has been sped up by using the chinese remainder theorem instead of strong approximation when this is faster and also by reducing the length of the sequences input into either of these algorithms.

·Arithmetic with Witt vectors has been made more efficient.

Aggregates

·Some improvements have been made to the speed of basic operations on sequences in the common case where there are no undefined elements.

Algebraic Curves

·A bug in testing for ordinariness of plane curves has been fixed. This was causing HasOnlyOrdinarySingularities to sometimes return that a non-ordinary curve was ordinary and caused errors in some other curve intrinsics that test for ordinariness and use a different algorithm in the ordinary case. Reported by J. Jahnel.

Algebraic Function Fields

·The defining polynomials of equation orders of function fields whose defining polynomials are non-monic or non-integral have been improved.

·A check for zero ideals has been added when computing HNF bases of ideals. Reported by M. Kirschmer.

·The parameter Strict has been added to StrongApproximation([PlcFunElt], [FldFunGElt], [RngIntElt]). Its default value is false.

·The intrinsic ChineseRemainderTheorem([PlcFunElt], [FldFunGElt], [RngIntElt]) has been added.

·Some decompositions of places have been sped up by using CRT instead of strong approximation.

Algebraic Number Fields

·A check for zero ideals has been added when computing HNF bases of ideals. Reported by M. Kirschmer.

Commutative Algebra

·Inefficiencies in computing primary decomposition of a class of ideals over number fields have been fixed. Reported by F. Favale.

Elliptic Curves

·A bug in point-counting over finite fields with SEA which was causing sporadic runtime errors has been fixed. Reported by Craig Costello.

Hypergeometric Motives

·The hypergeometric motive package continues to be developed in various ways. Most significant is this patch release is the removal of the swapping of the ALPHA and BETA arrays. This affects a few other intrinsics such as Twist, which also no longer swaps the arrays.

·Magma now contains the first part of a database for t = 1 degenerations. The intent is that the data at wild primes should be pre-computed here, when the user calls LSeries(H,1). Every case of degree up through 4 is now included. Furthermore, except for degree 4 and weight 2, an associated object is now available via Identify (two cases of degree 4 and weight 3 are also elided, as the level, namely 5400, of the modular forms is too large, and bogs down the computation).

·The LSeries intrinsic for hypergeometric data now has a ZetaOrder vararg that allows the user to specify that the L-series is expected to have a factor of the Riemann Î¶-function (possibly shifted) raised to the given power.

·Some minor problems with deformations at t = 1 and the Identify function were patched. Similarly with EulerFactor at t = 1.

L-Series

·A printing error with HodgeStructure has been fixed.

·A bug with EulerFactor of an L-series of a modular form has been corrected. Additionally, the L-series of a 1-dimensional modular symbol space is now possible.

·A fix to TensorProduct has been made, to ameliorate problems when the user has specified a trivial Euler factor (1) of one of the constituents as an integer rather than pedantically as a polynomial.

·A bug was fixed in the general SymmetricPower intrinsic, which had caused a crash due to a incorrect argument passed to HodgeStructure. This intrinsic has also had its BadEulerFactors vararg be replaced by the more common BadPrimes, though the former is still retained for compatibility.

·The TensorProduct intrinsic with two arguments can now take the BadPrimes info as a vararg, rather than having this be a third argument (as with ExcFactors â€“ the latter is also still available).

Lattices and Quadratic Forms

·Magma should now use Damien Stehle's LLL implementation in (almost) all cases. Previously, it was being used for all applications of LLL to a matrix, but not for LLL when applied to a lattice given by real input rather than exact input. Reported by M. Kirschmer.

·A fix was made to the intrinsic WittInvariants so that the set of bad primes is now consistent with the Handbook description.

Linear Programming

·Fixed an occasional crash during garbage collection of LP objects. Reported by A. Munemasa.

Matrices

·The mutation operators +:= and -:= have been extended to work when the objects on both sides are compatible matrices which may have different types. Problem reported by A. Maurischat.

Schemes

·A bug with lifting the origin with IsolatedPointsLifter (due to erroneous use of Precision rater than AbsolutePrecision) was fixed. Reported by A.-S. Elsenhans and J. Jahnel.

p-adics

·IsZero has been fixed for p-adics. IsZero(Zero(K)) is now true.

·Checking equality with zero for p-adics, in expressions such as "0 eq pAdicRing(11)!0" now are true, even when assigning the result to a variable. Previously, in the latter case (of assigning a result), the Magma interpreter would try to use special is_zero code that would incorrectly return false.