{\rtf1\ansi\deff0\deftab360

{\fonttbl
{\f0\fswiss\fcharset0 Arial}
{\f1\froman\fcharset0 Times New Roman}
{\f2\fswiss\fcharset0 Verdana}
{\f3\froman\fcharset2 Symbol}
{\f4\fmonospace\fcharset0 Courier}
}

{\info
{\author Computational Algebra Group}{\copyright Copyright (c) 2026 Computational Algebra Group}{\title Change log for Magma V2.29-9}}

\f0\fs24
\paperw11907\paperh16839
\pgncont\pgndec\pgnstarts1\pgnrestart
\fs36\b Change log for Magma V2.29-9 (Released 3/8/2026)\b0\fs24\par \par \par \fs27\b Aggregates\b0\fs24\par \par \f3\'B7\f0 The default value of an associative array, given by the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Default}{\fldrslt\f4\cs15\ul Default}} parameter of {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AssociativeArray}{\fldrslt\f4\cs15\ul AssociativeArray}}, was ignored by a nested indexed assignment. So if \f4A\f0  had a default and \f4x\f0  was not one of its keys, \f4A[x] := y\f0  and \f4Append( A[x], y)\f0  worked as documented, but \f4A[x][z] := y\f0 , and \f4Append( A[x][z], y)\f0  failed with "Index not present". The default is now used at every level, so that \f4A[x]\f0  is first set to the default and the assignment then proceeds on that value. In particular, taking the default to be another associative array with its own default allows nested arrays to be built up without initializing any of the intermediate levels: \f4A := AssociativeArray(: Default := AssociativeArray(: Default := [])); Append( A[1][2], 3);\f0  now works. As before, a key is only added when a value is assigned to it, so reading \f4A[x]\f0  still leaves the keys of \f4A\f0  unchanged. Reported by David Roe.\par \par\par \fs27\b Algebraic Curves\b0\fs24\par \par \f3\'B7\f0 Fixed wrong {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/EulerFactor}{\fldrslt\f4\cs15\ul EulerFactor}} values for some genus-2 curves over the rationals at odd bad primes.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/ZetaFunction}{\fldrslt\f4\cs15\ul ZetaFunction}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LPolynomial}{\fldrslt\f4\cs15\ul LPolynomial}} for a curve of genus 3, 4 or 5 over a finite field F could return a wrong answer, varying from run to run, when F was not the default GF(q) (a residue class field of an order, for example). This has been fixed. Reported by David Zureick-Brown.\par \par\f3\'B7\f0 Added {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LPolynomialFromTracesOfFrobenius}{\fldrslt\f4\cs15\ul LPolynomialFromTracesOfFrobenius}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LPolynomialFromNumbersOfPoints}{\fldrslt\f4\cs15\ul LPolynomialFromNumbersOfPoints}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/TracesOfFrobeniusFromLPolynomial}{\fldrslt\f4\cs15\ul TracesOfFrobeniusFromLPolynomial}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/NumbersOfPointsFromLPolynomial}{\fldrslt\f4\cs15\ul NumbersOfPointsFromLPolynomial}} to convert between the Frobenius traces or point counts of a curve over a finite field and its L-polynomial.\par \par\par \fs27\b Algebraic Geometry\b0\fs24\par \par \f3\'B7\f0 Added the intrinsic \f4PointsModPN(S, P, N)\f0 , which returns the points of an affine scheme \f4S\f0  modulo \f4P^N\f0  for a principal prime \f4P\f0  of the base ring of \f4S\f0 , computed by Hensel lifting the points of \f4S\f0  over the residue field of \f4P\f0 . {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/RationalPoints}{\fldrslt\f4\cs15\ul RationalPoints}} now also accepts a scheme whose base ring is a residue ring of a prime power, such as \f4Integers(p^n)\f0 , and finds its points by this method.\par \par\f3\'B7\f0 Added the two-argument forms \f4PointsModPN(S, M)\f0  for integer and ideal moduli, which return the points of an affine scheme \f4S\f0  over \f4O/M\f0 . Accordingly {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/RationalPoints}{\fldrslt\f4\cs15\ul RationalPoints}} now accepts affine schemes defined over residue rings with composite (non-prime-power) moduli such as \f4Integers(M)\f0 .\par \par\par \fs27\b Arithmetic Fuchsian Groups\b0\fs24\par \par \f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/FundamentalDomain}{\fldrslt\f4\cs15\ul FundamentalDomain}} of an arithmetic Fuchsian group, computed in a unit disc centred at a fixed point of a group element, could fail with a spurious "Division by zero" error when two boundary arcs shared a centre of equal imaginary part. The angle between such arcs is now computed correctly and a valid fundamental domain is returned. Reported by Steve Huang.\par \par\par \fs27\b Coding Theory\b0\fs24\par \par \f3\'B7\f0 A hang in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} for non-isomorphic linear codes (when it was trivial to prove non-isomorphism by enumerating weights) has been fixed. Reported by Michael Kiermaier.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismGroup}{\fldrslt\f4\cs15\ul AutomorphismGroup}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismSubgroup}{\fldrslt\f4\cs15\ul AutomorphismSubgroup}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsEquivalent}{\fldrslt\f4\cs15\ul IsEquivalent}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} for a linear code previously required the base field to be a small prime field or \f4GF(4)\f0 . They now accept a non-prime finite field \f4GF(q)\f0  with q < 256. Reported by Markus Grassl.\par \par\f3\'B7\f0 The default algorithm used by {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismGroup}{\fldrslt\f4\cs15\ul AutomorphismGroup}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MonomialGroup}{\fldrslt\f4\cs15\ul MonomialGroup}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsEquivalent}{\fldrslt\f4\cs15\ul IsEquivalent}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} for a linear code over GF(2) is now Leon's backtrack search, which is generally significantly faster than the Unger version of the partition backtrack previously used by default. The previous default is still available as \f4Al := "Unger"\f0 , and is still the method to use for a code whose set of minimum-weight words is too large for Leon's method. Reported by Markus Grassl.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} or {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismGroup}{\fldrslt\f4\cs15\ul AutomorphismGroup}} for a linear code over GF(q) with q > 2 could occasionally take an unreasonably long time, appearing to hang, and whether this happened varied from run to run, because of a bug in the hash table management in the partition backtrack algorithm. This has been fixed. Reported by Markus Grassl.\par \par\f3\'B7\f0 Computing {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumWeight}{\fldrslt\f4\cs15\ul MinimumWeight}} or {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumDistance}{\fldrslt\f4\cs15\ul MinimumDistance}} of a long cyclic code of small dimension over a finite field was very slow, spending nearly all of its time and a large amount of memory in the setup phase before any codewords were enumerated. For example, a length-16385 dimension-4 code over GF(2{\super 7}) took about 42 seconds and over 500MB, even though its BCH bound already determines the minimum distance so that no codewords need to be enumerated at all. The setup cost scaled with the length of the code rather than its dimension. This has been fixed: the example above now takes under two seconds and less than half the memory. As part of this, the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/BCHBound}{\fldrslt\f4\cs15\ul BCHBound}} intrinsic, which formerly evaluated the code's generator polynomial at all n-th roots of unity, is also much faster for such codes. Reported by Markus Grassl.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumLeeWeight}{\fldrslt\f4\cs15\ul MinimumLeeWeight}} (equivalently {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumLeeDistance}{\fldrslt\f4\cs15\ul MinimumLeeDistance}}) of a code over Z{\sub 4} could appear to hang when every generator of the code has order two, that is, when the code is contained in 2Z{\sub 4}{\super n}. This has been fixed: such a code is recognised as 2B for a binary code B, and its minimum Lee weight is now returned much more quickly as twice the minimum Hamming weight of B. Reported by Markus Grassl.\par \par\f3\'B7\f0 The function \f4Words(C, w)\f0  for a code C over a finite field ignored its {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Method}{\fldrslt\f4\cs15\ul Method}} choice when {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Method}{\fldrslt\f4\cs15\ul Method}} was left at the default \f4"Auto"\f0 , and always used the brute-force enumeration of combinations of generators, even when the Zimmermann minimum-weight algorithm was predicted to be very much faster. This has been fixed. Reported by Markus Grassl.\par \par\f3\'B7\f0 Computing {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumWeight}{\fldrslt\f4\cs15\ul MinimumWeight}} or {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumDistance}{\fldrslt\f4\cs15\ul MinimumDistance}} of a linear code in parallel, with one or more workers attached to the master process, could occasionally abort with an internal error. The crash happened when the master found a better upper bound and passed it down to a worker which had not itself found any codeword yet. This has been fixed. Reported by Markus Grassl.\par \par\f3\'B7\f0 Multi-threaded {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumWeight}{\fldrslt\f4\cs15\ul MinimumWeight}} for additive codes (in particular the codes arising from quantum codes) was much slower than the single-threaded computation, since splitting the enumeration into many small tasks replicated most of the work in every task. This has been fixed: the multi-threaded computation now runs at least as fast as the single-threaded one. Reported by Markus Grassl.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimumWeight}{\fldrslt\f4\cs15\ul MinimumWeight}} for a quantum code could return a wrong (too small) value when run with more than one thread. This has been fixed. Reported by Markus Grassl.\par \par\f3\'B7\f0 Constructing a quantum code from a code which is already a quantum code, as in \f4QuantumCode(QuantumCode(C))\f0 , could crash with a segmentation fault when the minimum weight of the result was computed, or could give a wrong minimum weight, because the given quantum code was misinterpreted as a stabiliser code. This has been fixed so that \f4QuantumCode(Q)\f0  now returns \f4Q\f0  for a quantum code \f4Q\f0 . Reported by Markus Grassl.\par \par\par \fs27\b Commutative Algebra\b0\fs24\par \par \f3\'B7\f0 Problems with boolean polynomials been fixed ({\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MonomialsOfDegree}{\fldrslt\f4\cs15\ul MonomialsOfDegree}} now works correctly, and hashing is now consistent for sets, etc.). Reported by Markus Grassl.\par \par\f3\'B7\f0 A hang in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Normalisation}{\fldrslt\f4\cs15\ul Normalisation}} of a rank 2 ideal has been fixed. When the function field method was used, the optional minimal-generator stage (controlled by {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/FFMin}{\fldrslt\f4\cs15\ul FFMin}}) could spend an enormous amount of time in a Riemann-Roch filtration for curves of large degree or genus, even though this stage is only cosmetic. This stage is now skipped automatically when its estimated cost exceeds the new parameter {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/FFMinBound}{\fldrslt\f4\cs15\ul FFMinBound}} (default 50), returning a correct (but non-minimal) presentation quickly.\par \par\f3\'B7\f0 A slowdown when computing saturations of ideals of graded rings by variables has been fixed.\par \par\par \fs27\b Convex Polytopes and Polyhedra\b0\fs24\par \par \f3\'B7\f0 Crashes involving certain types of polyhedra created by {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/PolyhedronWithInequalities}{\fldrslt\f4\cs15\ul PolyhedronWithInequalities}} have been fixed. Reported by Adam Logan.\par \par\par \fs27\b Differential Rings\b0\fs24\par \par \f3\'B7\f0 For a differential ring \f4A\f0  with underlying ring \f4R\f0 , coercion into \f4A\f0  could wrongly accept an element of a proper overstructure of \f4R\f0 , aliasing that structure's variable onto a generator of \f4R\f0 . In particular, if \f4B\f0  is a polynomial ring over \f4A\f0  then \f4B.1 in A\f0  returned {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/true}{\fldrslt\f4\cs15\ul true}} (and \f4A ! B.1\f0  returned a generator of \f4R\f0 ). This has been fixed: only genuine elements and constants of \f4R\f0  now coerce into \f4A\f0 . Reported by Taylor Dupuy.\par \par\par \fs27\b Elliptic Curves\b0\fs24\par \par \f3\'B7\f0 New CM division and multiplication polynomials for elliptic curves with complex multiplication: overloads of {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/DivisionPolynomial}{\fldrslt\f4\cs15\ul DivisionPolynomial}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MultiplicationPolynomial}{\fldrslt\f4\cs15\ul MultiplicationPolynomial}} taking an element {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/alpha}{\fldrslt\f4\cs15\ul alpha}} of the CM order. \f4DivisionPolynomial(E, alpha)\f0  returns the CM kernel polynomial {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/psi_alpha}{\fldrslt\f4\cs15\ul psi_alpha}}, whose roots are the \f4x\f0 -coordinates of the nonzero points of \f4ker[alpha]\f0 . \f4MultiplicationPolynomial(E, alpha)\f0  returns the numerator {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/phi_alpha}{\fldrslt\f4\cs15\ul phi_alpha}} of the multiplication-by-{\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/alpha}{\fldrslt\f4\cs15\ul alpha}} map, with \f4x([alpha] P) = phi_alpha(x)/psi_alpha(x)^2\f0  when \f4N(alpha)\f0  is odd and \f4phi_alpha(x)/psi_alpha(x)\f0  when the kernel is entirely \f42\f0 -torsion (not every {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/alpha}{\fldrslt\f4\cs15\ul alpha}} reduces to a single power of {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/psi_alpha}{\fldrslt\f4\cs15\ul psi_alpha}}); this is the CM analogue of the second value of \f4DivisionPolynomial(E, n)\f0  for a rational integer \f4n\f0 . Both use the identity \f4[alpha] o [alpha_bar] = [N(alpha)]\f0  to reduce to the integer division polynomial over the CM field, and both fix the endomorphism \f4[alpha]\f0  by the normalisation \f4[alpha]^* omega = alpha omega\f0  (equivalently the leading coefficient of {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/phi_alpha}{\fldrslt\f4\cs15\ul phi_alpha}} is \f41/alpha^2\f0 ), so that for split primes the polynomial belongs to the specific generator {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/alpha}{\fldrslt\f4\cs15\ul alpha}} rather than its conjugate. Inert, split and ramified primes are handled. Reported by Steve Huang.\par \par\par \fs27\b Finite Groups\b0\fs24\par \par \f3\'B7\f0 A bug in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Subgroups}{\fldrslt\f4\cs15\ul Subgroups}} for soluble groups where the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IndexEqual}{\fldrslt\f4\cs15\ul IndexEqual}} parameter is given has been fixed. Reported by Tendai Shumba.\par \par\par \fs27\b Hyperelliptic Curves\b0\fs24\par \par \f3\'B7\f0 Fixed a bug in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} when the curves have genus 0: the isomorphism returned was not necessarily hyperelliptic, and for curves with no hyperelliptic isomorphism the call could abort on an internal assertion instead of returning {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/false}{\fldrslt\f4\cs15\ul false}}.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismGroupOfHyperellipticCurve}{\fldrslt\f4\cs15\ul AutomorphismGroupOfHyperellipticCurve}} with the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/geometric}{\fldrslt\f4\cs15\ul geometric}} parameter set to true no longer raises a "Bad argument types" error for genus 3 curves.\par \par\f3\'B7\f0 When {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Conductor}{\fldrslt\f4\cs15\ul Conductor}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/EulerFactor}{\fldrslt\f4\cs15\ul EulerFactor}} or {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LSeries}{\fldrslt\f4\cs15\ul LSeries}} of a hyperelliptic curve cannot compute the local data at an odd bad prime, the error raised now reports the underlying cause instead of only a generic message. Some precision-independent failures now stop early instead of being retried at every precision.\par \par\par \fs27\b Integer Ring\b0\fs24\par \par \f3\'B7\f0 NOTE NON-TRIVIAL SEMANTICS CHANGE: \f4TrialDivision(N)\f0  for integer N no longer performs a primality test on the residue left after the trial division. The first return value is now always the factorization of the part of |N| composed of the primes up to the given bound, and the second return value is now the residue divisor itself (an integer, equal to 1 if and only if |N| is completely factored) rather than a sequence. Previously a prime residue was moved into the first return value, at the cost of an expensive primality proof which was often not wanted, and the semantics of the first return value also depended on how many return values the caller requested. The {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Proof}{\fldrslt\f4\cs15\ul Proof}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Bases}{\fldrslt\f4\cs15\ul Bases}} parameters are still accepted, for backwards compatibility, but are now ignored. Also, the given bound is now respected exactly: previously the primes 2, 3, 5 and 7 were always divided out whatever the bound was; for example, \f4TrialDivision(15, 2)\f0  previously returned the factor 5, but does not now.\par \par\f3\'B7\f0 A string of decimal digits may now be coerced directly into the ring of integers (e.g., \f4IntegerRing()!"5"\f0 ), giving the same result as {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/StringToInteger}{\fldrslt\f4\cs15\ul StringToInteger}}. Reported by David Roe.\par \par\par \fs27\b Language/System\b0\fs24\par \par \f3\'B7\f0 New line editor tab-completion preferences have been added. Procedure \f4SetCompletionPreferenceStyle("US");\f0  sets a preference for US spellings and \f4SetCompletionPreferenceStyle("UK");\f0  sets a preference for British spellings, while \f4SetCompletionPreference(P, O);\f0  allows finer-graded preferences to be added. After preferences are set, if Tab-completions in the line editor for a partial word differ only by a preferred (P) suffix versus the other (O) suffix (e.g., P="-ize" versus O="-ise") then any O forms are suppressed; this is determined at the end of the word or at a CamelCase subword boundary.\par \par\f3\'B7\f0 An occasional crash in zero testing when the profiler is turned on has been fixed. Reported by Shiva Chidambaram.\par \par\f3\'B7\f0 The {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/save}{\fldrslt\f4\cs15\ul save}} directive wrote a corrupt state file if a class group computation had been run after \f4SetNthreads(n)\f0  with n > 1. Such a computation opens an internal socket to distribute work to parallel workers, and this was written out with the state, so a later {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/restore}{\fldrslt\f4\cs15\ul restore}} could give an error or crash. The socket is no longer saved and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/save}{\fldrslt\f4\cs15\ul save}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/restore}{\fldrslt\f4\cs15\ul restore}} now work in this case. If the computation is large enough to actually start workers, save/restore is not supported at the moment, so {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/save}{\fldrslt\f4\cs15\ul save}} now reports this rather than writing a file that would fail on restore. Reported by Maksym Voznyy.\par \par\par \fs27\b Lattices\b0\fs24\par \par \f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/GenusRepresentatives}{\fldrslt\f4\cs15\ul GenusRepresentatives}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/SpinorRepresentatives}{\fldrslt\f4\cs15\ul SpinorRepresentatives}} returned incorrectly scaled representatives for non-primitive indefinite lattices. The indefinite code path divided the lattice by its content but failed to scale the representatives back up by the content before returning, so they had the wrong determinant. This has been fixed.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/BKZ}{\fldrslt\f4\cs15\ul BKZ}} could hang at random, depending on earlier computations in the same session. Reported by Stephan Elsenhans.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/BKZ}{\fldrslt\f4\cs15\ul BKZ}} could crash with a segmentation fault when its block enumeration found a candidate vector that could not be inserted into the basis. Such candidates are now skipped.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Mass}{\fldrslt\f4\cs15\ul Mass}} for definite Hermitian (unitary) lattices over number fields returned an incorrect value or caused genus enumeration to hang. The mass is now computed directly from the Minkowski-Siegel mass formula, and the special-unitary mass (the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Special}{\fldrslt\f4\cs15\ul Special}} option) is likewise correct, as is a value supplied through the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/StandardMass}{\fldrslt\f4\cs15\ul StandardMass}} option. Reported by Markus Kirschmer.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LLL}{\fldrslt\f4\cs15\ul LLL}} with \f4Method := "Integral"\f0  could sometimes fail with an internal error when run with more than one thread, because of a race at the end of each parallel step. This has been fixed.\par \par\par \fs27\b Lie Algebras\b0\fs24\par \par \f3\'B7\f0 Tensor products of modules returned by {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/HighestWeightModule}{\fldrslt\f4\cs15\ul HighestWeightModule}} for a Lie algebra L return left L-modules, but {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/HighestWeightsAndVectors}{\fldrslt\f4\cs15\ul HighestWeightsAndVectors}} assumed right L-modules and could return vectors that were not highest weight vectors. This has been fixed for characteristic 0. Reported by Andrea Previtali.\par \par\f3\'B7\f0 Signatures for {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/TensorProduct}{\fldrslt\f4\cs15\ul TensorProduct}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/TensorPower}{\fldrslt\f4\cs15\ul TensorPower}}, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/SymmetricSquare}{\fldrslt\f4\cs15\ul SymmetricSquare}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/ExteriorSquare}{\fldrslt\f4\cs15\ul ExteriorSquare}} have been added so that arguments that are Lie algebra modules are treated correctly. Reported by Andrea Previtali.\par \par\par \fs27\b Matrices\b0\fs24\par \par \f3\'B7\f0 Fixed a deserialization bug that could prevent tuples involving vectors from being properly deserialized.\par \par\f3\'B7\f0 \f4ZeroMatrix(R, m, n)\f0  and \f4Matrix(R, m, n, [])\f0  now report the correct argument number when a dimension is too large. The error previously always said "Argument 1" even when the oversized value was the column count n.\par \par\par \fs27\b Matrix Algebras\b0\fs24\par \par \f3\'B7\f0 A new intrinsic {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/SubalgebraFromBasis}{\fldrslt\f4\cs15\ul SubalgebraFromBasis}} constructs a matrix subalgebra (of an {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AlgMat}{\fldrslt\f4\cs15\ul AlgMat}} or {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AlgMatLie}{\fldrslt\f4\cs15\ul AlgMatLie}}) directly from a known linear basis, given as a sequence of elements. Unlike {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/sub}{\fldrslt\f4\cs15\ul sub}}, which takes generators and then computes the closure of the algebra they generate, this takes the basis as given and performs no closure computation, so it is fast when a basis is already known. The supplied elements are verified to be linearly independent unless the parameter {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Check}{\fldrslt\f4\cs15\ul Check}} is set to {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/false}{\fldrslt\f4\cs15\ul false}}. Reported by Robert Zeier.\par \par\par \fs27\b Matrix Groups\b0\fs24\par \par \f3\'B7\f0 A crash in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/MinimalDegreePermutationRepresentation}{\fldrslt\f4\cs15\ul MinimalDegreePermutationRepresentation}} for matrix groups defined over non-standard rings has been fixed. Reported by Armand Brumer.\par \par\f3\'B7\f0 Fixed the classical group recognition code so that it accepts groups over user-defined finite fields. Reported by Edgar Costa.\par \par\par \fs27\b Modular Forms\b0\fs24\par \par \f3\'B7\f0 Sped up the computation of q-expansion bases, and hence of Hecke operators such as {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/HeckeOperator}{\fldrslt\f4\cs15\ul HeckeOperator}}, for level-one modular forms of large weight. The Victor-Miller basis is now built triangularly, as products of a weight-adjusting form with powers of Δ, so that recovering the reduced basis is a fraction-free row reduction over  rather than a dense echelonisation over Q, removing the fraction growth that dominated the old echelonisation. The running time in the weight k drops from roughly k{\super 3.8} to about k{\super 3.2}, close to the k{\super 3} size of the output, so the speedup grows with the weight. Reported by John Voight and Edgar Costa.\par \par\par \fs27\b Modules\b0\fs24\par \par \f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Submodules}{\fldrslt\f4\cs15\ul Submodules}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/SubmoduleLattice}{\fldrslt\f4\cs15\ul SubmoduleLattice}} given a {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/CodimensionLimit}{\fldrslt\f4\cs15\ul CodimensionLimit}} could sometimes return an incomplete sequence or lattice of submodules, omitting some submodules within the given codimension. Since the omissions depended on the random composition series computed by the Meataxe, the result varied from run to run, and this in turn could make {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/LowIndexSubgroups}{\fldrslt\f4\cs15\ul LowIndexSubgroups}} fail with a runtime error. This has been fixed. Reported by Jeremy Rouse.\par \par\par \fs27\b Number Fields\b0\fs24\par \par \f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsomorphic}{\fldrslt\f4\cs15\ul IsIsomorphic}} could incorrectly return false for two isomorphic number fields, for example when one was created from the minimal polynomial of a generating element of the other. This has been fixed. Reported by David Roe.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/HasComplexConjugate}{\fldrslt\f4\cs15\ul HasComplexConjugate}} for number fields ({\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/FldAlg}{\fldrslt\f4\cs15\ul FldAlg}}) could return an automorphism that is not complex conjugation, or fail to detect complex conjugation when it exists; this has been fixed. The undocumented {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Weak}{\fldrslt\f4\cs15\ul Weak}} parameter is now deprecated. The intrinsic is also substantially faster for fields of high degree.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/AutomorphismGroup}{\fldrslt\f4\cs15\ul AutomorphismGroup}} now accepts number fields defined by non-monic or non-integral polynomials.\par \par\f3\'B7\f0 A crash in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/NormalClosure}{\fldrslt\f4\cs15\ul NormalClosure}} when {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Opt}{\fldrslt\f4\cs15\ul Opt}} was {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/true}{\fldrslt\f4\cs15\ul true}} has been fixed.\par \par\par \fs27\b Polar Spaces\b0\fs24\par \par \f3\'B7\f0 Added support for quadratic spaces over the rationals in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsIsometric}{\fldrslt\f4\cs15\ul IsIsometric}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsSimilar}{\fldrslt\f4\cs15\ul IsSimilar}}.\par \par\par \fs27\b Polynomial Rings\b0\fs24\par \par \f3\'B7\f0 Multiplying a scalar by an element of very large degree in a quotient ring of a polynomial ring over a finite field could crash Magma. Such products are now computed correctly.\par \par\f3\'B7\f0 Multiplying very long polynomials over a finite field extension could die with a bogus out-of-memory error or crash. Oversized products now raise a clean catchable error (odd characteristic) or are computed correctly (characteristic 2).\par \par\f3\'B7\f0 A crash in high-degree univariate polynomial multiplication over a p-adic extension ring (typically giving a spurious very large out-of-memory request) has been fixed. Reported by Edgar Costa.\par \par\par \fs27\b Quadratic Forms\b0\fs24\par \par \f3\'B7\f0 Added documentation for the intrinsic {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsRationallyEquivalent}{\fldrslt\f4\cs15\ul IsRationallyEquivalent}}, which was missing. Added the intrinsic {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/IsRationallySimilar}{\fldrslt\f4\cs15\ul IsRationallySimilar}} to test for similarity between quadratic forms.\par \par\par \fs27\b Quaternion Algebras\b0\fs24\par \par \f3\'B7\f0 Fixed {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/pMaximalOrder}{\fldrslt\f4\cs15\ul pMaximalOrder}} for quaternion orders over a number field. For some inputs it returned an order that was maximal at primes other than the requested prime p – and did so nondeterministically, depending on the internal presentation of the input order – instead of a genuinely p-maximal order. The enlargement step is now localised at p, so the result agrees with the input order away from p. Reported by Gerard Gonzalo Calbetó.\par \par\f3\'B7\f0 Fixed two further cases of the {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/pMaximalOrder}{\fldrslt\f4\cs15\ul pMaximalOrder}} non-locality addressed for the generic case above, both of which could return an order maximal at primes other than the requested prime p. First, the even case (when p lies over 2): the enlargement could maximalise the order away from p, and the returned order's discriminant was copied from the input with only the p-part removed, so the cached value silently disagreed with the order actually returned. Second, the split case (when the algebra is M{\sub 2} over the base field): the routine returned the full maximal order M{\sub 2}, discarding the input's level at every other prime. In both cases the enlargement is now localised at p and the discriminant is recomputed from the result, so the order agrees with the input away from p and reports its true discriminant.\par \par\f3\'B7\f0 For a definite quaternion order, {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Embed}{\fldrslt\f4\cs15\ul Embed}} could wrongly report that a quadratic order has no embedding into it (or fail) when an embedding in fact exists. It now finds such embeddings for definite algebras by enumeration. A new {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/Al}{\fldrslt\f4\cs15\ul Al}} parameter chooses the algorithm: "Auto" (the default), "Enumeration", or "Conjugation". Reported by Eloi Torrents Juste.\par \par\par \fs27\b Representation Theory\b0\fs24\par \par \f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/EpsilonFactor}{\fldrslt\f4\cs15\ul EpsilonFactor}} and {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/RootNumber}{\fldrslt\f4\cs15\ul RootNumber}} of local Galois representations and Artin representations now raise a clear error for unsupported cases instead of returning 0.\par \par\f3\'B7\f0 {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/CuspidalInducingDatum}{\fldrslt\f4\cs15\ul CuspidalInducingDatum}} of a supercuspidal local component raised "Arguments are not compatible" when the modular symbols space had a nontrivial nebentypus character defined over a cyclotomic field. An internal intersection mixed a space over the rationals with one over the character field; the two are now formed over the same field and the inducing datum is returned as expected. Reported by Maarten Derickx.\par \par\par \fs27\b Riemann Surfaces\b0\fs24\par \par \f3\'B7\f0 Added support for creation of Riemann surfaces of genus 0. This fixes a bug in {\field{\*\fldinst HYPERLINK http://magma.maths.usyd.edu.au/magma/handbook/search/RiemannSurface}{\fldrslt\f4\cs15\ul RiemannSurface}} reported by Emre Sertoz.\par \par}