A basic optimisation has been added for building function fields of non-plane curves. This chooses the affine patch and transcendental variable in such a way as to produce function fields that are of smallish degree over the base k(x).
Proper checks have been added for the existence of function fields of non-plane curves. The condition is that the curve C is integral (reduced and irreducible). However, as this can involve a heavy Gröbner basis computation for curves in higher-dimensional spaces, there is a weaker check that is the default. The weak check - often much faster - guarantees that the function field can be built, but only that C is integral on the chosen affine patch: in pathological cases there may be nilpotency or extra irreducible components only "at infinity". Accordingly, HasFunctionField now has a boolean parameter WeakCheck that is true by default. The full integrality check for projective non-plane curves can be performed by setting WeakCheck to false (or directly by the user). For plane curves or ambients, the parameter has no effect.
A bug in IsEmpty(X) for projective schemes X has been fixed.
Two bugs have been fixed in the permutation group function IsWreathProduct. These bugs would cause the function to crash from time to time.
Incorrect error warnings when computing the class of an element of a matrix group have been fixed.
The function Conjugates for computing the class of an element of a matrix group has had its previous artificial maximum size limit removed. This limit may be set by the user via a parameter.
Incorrect Magma level printing of special unitary groups has been corrected. Bug reported by Eamonn O'Brien.
A bug in computing the order of large orthogonal groups has been fixed.
A bug in computing minimal blocks of a transitive permutation group has been fixed. A block may have been missed when the group already had base with first base point not 1. Bug reported by Claus Fieker.
A bug in SecondaryInvariants for the trivial group has been fixed (reported by J. Shanks).
A bug in InvariantFactors of a matrix has been fixed (bug reported by Henrik Baarnhielm).
The function that computes all irreducible GK-modules for a non-soluble group G and a finite field K has had its default limits altered so as to allow much more effort to be applied. (Modules of dimension up to 20000 will be split, compared with 2000 previously).
IsCoercible could still fail instead of returning false in certain local fields.
Conjugates and related functions for non-simple number fields tended to hang in certain situations.
Intersections of fractional ideals in number fields almost always returned incorrect results.
ColonIdeal applied to an ideal in the order of a number field would fail if the first argument is a principal ideal generated by an integer and the order is non-maximal.
A bug in Discriminant over function fields has been fixed (reported by M. Stoll).
A bug in the computation of real (complex) roots of large polynomials has been fixed (reported by M. Stoll).