---
title: "Magma V2.20-6 Patch Notes"
canonical: "https://docs.magma-maths.org/patchnotes/2.20-6.html"
source: "https://docs.magma-maths.org/patchnotes/2.20-6.md"
---

<a id="magma-v2-20-6-patch-notes"></a>
# Magma V2.20-6 Patch Notes

## Algebraic Function Fields

- Improvements have been made to finding a two-element form of an ideal. This fixes runtime errors in a few cases, one of which was reported by Matthieu Rambaud.
- `Embed` has been fixed (previously crashed) in the case where the constant fields are not the same.  Reported by Matthieu Rambaud.
- Extra checking has been added to the `Embed` intrinsic to ensure that the coefficient field of the first argument is contained in the second argument.
- A bug has been fixed in the application of the map returned by `ConstantFieldExtension` when the extensions are not defined by monic integral polynomials.
- The [`CoveringStructure`](../MagmaLanguage/StatementsAndExpressions/type.md#function-coveringstructure-str-str) of 2 function fields has been improved.
- Some bugs involving denominators of non-simple elements have been fixed.

## Elliptic Curves

- The Cremona database has been updated to include all curves up to conductor 339999.

## Galois Groups

- An adjustment has been made to when `ShortCosets` are used in the computation of a `GaloisGroup`.

## Graphs

- A bug preventing the use of the `Invariant` parameter has been fixed.

## Groebner Bases

- A crash involving ideals with a large number of variables has been fixed.  Reported by M. Grassl.

## Groups

- Following user problems, the optional parameters for the `CayleyGraph` and [`SchreierGraph`](../Combinatorics/Graphs/group-code-design.md#function-schreiergraph-grp-grp) functions have been changed. They now have two parameters: `Labelled` and `Directed`, both of which are true by default. To get the unlabelled or undirected graph the user may set the approriate parameter(s) to false. Note that to compute a meaningful automorphism group of the graph, either the graph should be unlabelled, or the `IgnoreLabels` parameter of the automorphism group function should be set to true. Problem identified by G. Royle.
- A crash in computing the order of an fp-group has been fixed. Bug reported by Steve Humphries.
- A large waste of time when computing the conjugacy classes of a group of type `GrpAb` has been fixed.
- A sometime infinite loop when using `AutomorphismGroup` on a lattice with the `Stabilizer` parameter set $>0$ has been fixed.
- A bug where using `NormalSubgroups` with the `IsTransitive` flag set returned some non-transitive subgroups has been fixed. Bug reported by Gabriel Verret.

## Hyperelliptic Curves

- A bug in `Order` for points on hyperelliptic Jacobians has been fixed. This caused a finite order rather than 0 to be returned for some points of infinite order. Reported by Christiaan Koster.

## Lattices

- The `LatticeWithBasis` intrinsic for a matrix over the reals checks that the input has full rank using LLL now (previously the check was done by calculating an echelon form).  This means now almost any input is accepted, as the linear dependence must be exact for the check to fail.

## Maps

- A fix has been made to the [`CoveringStructure`](../MagmaLanguage/StatementsAndExpressions/type.md#function-coveringstructure-str-str) of parents of some types of maps. In particular this was seen to affect maps of type `HomGrp`.

## Matrices

- Compatibility between non-square matrices has been improved, in particular between `ModMatRngElt` and `ModMatFldElt` types.

## Modules

- A bug in `IsIsomorphic` for R-modules in characteristic zero has been fixed.  Reported by U. Thiel.

## Number Fields

- Some anomalous behaviour in the hashing of number field elements and order elements has been fixed.  This manifested in poor performance in some algorithms.
- Corrections have been made to the real precision used in computing the `LLL` (basis) of an order.  Insufficient precision lead to a result which was far from LLL in some (unusual) cases, and this in turn caused a crash in `ClassGroup`.  Reported by Daniel Mayer.
- Improvements have been made to finding a two-element form of an ideal. This fixes runtime errors in a few cases, one of which was reported by Daniel Mayer.
- The `Abs` parameter is now supported in the `ext<|>` constructor when extending the rationals or an algebraic field.
- `IsPrime(I)` now works for ideals of non-maximal orders (returning only true/false).  Previously it crashed in the non-prime case, if the caller attempted to assign two return values.
- An order constructed from given elements of a field now has identical `EquationOrder` to the field.  Reported by C. Quitte.
- Some bugs involving denominators of non-simple elements have been fixed.
- When `Divisor` is called on an ideal it is now checked that the ideal is of a maximal order.

## Numerical Linear Algebra

- Magma now has methods based on Householder reflections (RQ decompositions) for various functions involving linear algebra over a real or complex field.
- The user functionality includes [`RQDecomposition`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-rqdecomposition-mtrx-rngrecom), [`QLDecomposition`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-qldecomposition-mtrx-rngrecom), [`NumericalKernel`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-numericalkernel-mtrx-rngrecom), [`NumericalRank`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-numericalrank-mtrx-rngrecom), [`NumericalSolution`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-numericalsolution-mtrx-rngrecom-mtrx-rngrecom), and [`NumericalPseudoinverse`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-numericalpseudoinverse-mtrx-rngrecom). The main functions for determinant and inverse for square matrices use the new code internally.
- The [`NumericalEigenvectors`](../MatricesLinearAlgebra/Matrices/numerical-linalg.md#function-numericaleigenvectors-mtrx-fldcomelt) intrinsic has been fixed to deal with input that has columns that are zero. Reported by A. Kumar.
- The [`Cholesky`](../LatticesQuadraticForms/Lattices/ortho.md#function-cholesky-mtrxspcelt-fld) decomposition of a matrix which has different precision than the default real field is now computed to the proper precision.

## Orders of Associative Algebras

- Exception handling has been improved.

## Schemes

- Schemes can now only be constructed over rings which contain a one.
- Classification of isolated singularities: a bug has been fixed that caused runtime errors for singularities of types $J_{k,i}$, $X_{k,0}$, $X_{1,i}$, $Y^1_{r,s}$, $Z_{k,i}$ and $W#_{k,i}$ when the parameter option to return the explicit transformation to normal form was NOT chosen.
- A bug in [`HypersurfaceSingularityExpandFunction`](../AlgebraicGeometry/Schemes/schemes-local.md#function-hypersurfacesingularityexpandfunction-rec-fldfunratmelt-rngintelt-rngmpol) caused an error when the function expansion was zero to the required precision. This has now been fixed.
