## Przemysław Koprowski

# CQF: Magma package for quadratic forms theory

#### Work in progress: Anything that comes for free comes with no warranty.

Current version (last update November 12, 2021):

CQF Magma package
CQF manual
CQF is released under standard

MIT license
### Example:
> _ := PolynomialRing(Rationals());
> K := NumberField(x^4 - 5*x^2 + 25);
> time C := SolveSumOfSquares(theta + 1); C;
Time: 0.290
[
1/2*(theta + 2),
-1/4*theta,
1/4*(-theta^2 + 5)
]
> &+ [ c^2 : c in C ];
theta + 1

### What is new?

#### Version 0.4.1:

Fixed a bug in that in some cases returned false positives for (local) isotropy of a form over a number field.

#### Version 0.4:

Added a new function `SolveSumOfSquares` that decomposes any totally positive element into a sum of squares of minimal length.

#### Version 0.3:

- Completely new function
`AnisotropicPart` that computes an anisotropic part of a given quadratic form.
- More new functions:
`Find`, `OrderingSeparation`, `Coefficients`, `RundomShuffle`, `AreSimilar`, `RealRootBound`, `RealRootIntervals`.
- The internal folder structure and file naming convention has been changed.
- Some bugs have been removed.

#### Version 0.2.2:

- Corrected bug in
`AnisotropicDimension` of quadratic forms over rational function fields over finite fields.

#### Version 0.2.1:

- Corrected bug that returned wrong Pythagoras element for some formally real number fields of even degree over QQ.

#### Version 0.2:

- One can create the Witt ring as a Magma's object and perform basic operations on elements of Witt rings.
- As a consequence of the previous point, one can test Witt equivalence for any combination of fields supported by CQF. For example, CQF will recognize that the field of complex numbers is Witt equivalent to the finite field of two elements.
- Relevant primes are now cached for every diagonal quadratic form over a global field. This speeds up repeated computations on the same form.

### Past versions: