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

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

## Abelian Extensions of Function Fields

- Hermite computations in the computation of maximal orders of abelian extensions of global function fields and of extensions defined by a Witt vector have been improved and also computed less often. An unneccessary discriminant computation has also been avoided.

## Aggregates

- The speed of `Flat` has been improved; additionally, it nows handles embedded null sequences more gracefully. Speed issues reported by U. Thiel.

## Artin Representations

- A bug with degree 0 representations over the rationals was fixed.
- `IsZero` can now be applied to an Artin representation directly.
- The sum of an empty sequence of Artin representations over $\mathbb{Q}$ now works.

## Coding Theory

- The intrinsic [`RegularLDPCEnsemble`](../CodingTheory/LowDensityParityCheckCodes/introduction.md#function-regularldpcensemble-rngintelt-rngintelt-rngintelt) now returns a regular LDPC ensemble, as opposed to an approximately regular one.  Also [`IrregularLDPCEnsemble`](../CodingTheory/LowDensityParityCheckCodes/introduction.md#function-irregularldpcensemble-rngintelt-seqenum-seqenum) now better matches the provided distribution.  Reported by O. Orciere.
- Some minor leaks in cyclic code creation have been fixed.

## Complex Numbers

- Two fixes to `Roots` of a complex polynomial were made, one to delimit an infinite loop, and the other to try to handle multiple roots more gracefully.

## Function Fields

- [`StrongApproximation`](../GlobalFields/ClassFieldTheoryForGlobalFunctionFields/related.md#function-strongapproximation-divfunelt-plcfunelt-fldfunelt) has been made more efficient.

## Hypergeometric Motives

- The default printing has been changed to use cyclotomic indices. The alpha/beta printing (which is not so useful over the rationals) can be obtained via a vararg `Print` when initialising the data.
- The `HodgeStructure` of odd weight data is now directly obtainable, without specifying a t-value.
- A runtime error is now triggered for tame Euler factors that are too hard to compute to high precision (rather than a crash).
- The initialisation of large degree data is now more efficient, as large cyclotomics are avoided and the [`GammaArray`](../ArithmeticGeometry/HypergeometricMotives/Functionality.md#function-gammaarray-hypgeomdata) length is not artifically lengthened during the pre-computation.
- A vararg `Weight01` has been added to the `LSeries` creation intrinsic, which takes the Tate twist (via [`Translate`](../ArithmeticGeometry/LFunctions/arithmetic.md#function-translate-lser-rngintelt)) of the `LSeries` to make it have (motivic) weight 0 or 1.
- A vararg `QuadraticTwist` has been added to the `LSeries` creation intrinsic, which can be specified either as a nonzero rational or as a real Dirichlet character, or alternatively via the boolean [`true`](../MagmaLanguage/StatementsAndExpressions/boolean.md#literal-literal-true-true), when Magma will then use a default twisting factor that aims to help some deformation theory work out.
- Some functionality for non-disjoint hypergeometric data is now available. In particular, the `LSeries` intrinsic now returns two L-series, the first corresponding to the disjoint data, and the second corresponding to an Artin representation for the common data.

<a id="i-o"></a>
## I/O

- The version of [`ReadBytes`](../MagmaLanguage/InputOutput/io-operations.md#function-readbytes-io) which takes an exact length now works as advertised, instead of returning short reads.

## L-Series

- The `TensorProduct` of two `LSeries` with integral coefficients should now keep this integrality at the `EulerFactor` for every prime. There was a bug in the case where one constituent had degree 1. Reported by D. Roberts.
- The case of a tensor product when a bad prime has both constituents with a degree 1 factor is now handled automatically (thanks to Tim and Vladimir Dokchitser).
- The `HodgeStructure` printing has changed, so that repeated (p,q) pairs appear with a multiplicand in front.
- The `RootNumber` at infinity of a Hodge structure is now available, returned as an element of the 4th cyclotomic field.
- Calling `LSeries` on the rationals will now give [`RiemannZeta`](../ArithmeticGeometry/LFunctions/builtin.md#function-riemannzeta).

## Matrices

- A crash involving indexing of a matrix with very many rows has been fixed.
- A problem with matrix multiplication over rational function fields (where entries were not standardized so wrong results could arise occasionally) has been fixed.  Reported by E. Schost.

## p-adics

- One can now compute the `PowerRelation` for an element of $\mathbb{Q}_p$.
