**Forms** is a package for computing with sesquilinear and quadratic forms on finite vector spaces. It provides users with the basic algebraic tools to work with classical groups and polar geometries, and enables one to specify a form and its corresponding geometry. The functionality of the package includes:

the construction of sesquilinear and quadratic forms;

operations which allow a user to change coordinates, that is, to ``change form'' and work in an isometric (or similar) formed vector space; and

a way to determine the form(s) left invariant by a matrix group (up to a scalar).

The next chapter (2) gives some basic examples of the use of this package. In "Background Theory of Forms" (Chapter 3) we revise the basic notions of the theory of sesquilinear and quadratic forms, where we also set the notation and conventions adopted by this package. In "Constructing forms and basic functionality" (Chapter 4), we describe all operations to construct sesquilinear and quadratic forms and basic attributes and properties that do not require morphisms. In "Morphims of forms" (Chapter 5) we revise the basic notions of morphisms of forms, and the classification of sesquilinear and quadratic forms on vector spaces over finite fields. Operations, attributes and properties that are related to the computation of morphisms of forms, are also described in this chapter.

We have tried to make this manual pleasant to read for the general reader. So it is inevitable that we will use Greek symbols and simple mathematical formulas. To make these visible in the HTML version of this documentation, you may have to change the default character set of your browser to UTF-8.

Find

**Forms**on the Packages section of the GAP-website: https://www.gap-system.org/Packages/forms.html.Find

**Forms**on its homepage: https://gap-packages.github.io/forms.Report bugs, questions and issues on the

**Forms**issue tracker: https://github.com/gap-packages/forms/issues

Version 1.2.1 of **Forms** contains some changed and extra functionality with relation to trivial forms. The changed and new functionality is described completely in Section 4.9. We gratefully acknowledge the useful feedback of Alice Niemeyer.

In version 1.2.2 of **Forms** a minor bug, pointed out by John Bamberg, in the code of `IsTotallyIsotropicSubspace`

is repaired. On the occasion of the release of the first beta versions of GAP4r5, we changed the names of some global functions such that a name clash becomes unlikely. Version 1.2.2 of **Forms** is compatible with GAP4r4 and GAP4r5.

Version 1.2.3 contains a new operation `TypeOfForm`

. Together with this addition, some parts of the documentation, especially concerning degenerate and singular forms, have been edited. A bug found in the methods for `\^`

applicable on a pair of vectors and a hermitian form, and a pair of matrices and a hermitian form has been fixed. A series of test files is now included in the tst directory. Alexander Konovalov pointed out the the init.g and read.g files had windows line breaks, this is also fixed. Finally, the documentation has been recompiled with the MathJax option.

Max Horn pointed out that we still used the deprecated GAP_ROOT_PATHS. This has been changed now into GAPInfo.RootPaths in version 1.2.4. More tests have been added to reach a better code coverage. Due to these tests, a bug in one of the methods for `EvaluateForm`

was discovered and fixed. Alexander Konovalov noted that we used the deprecated `ReadTest`

in our test files. This has been changed to `Test`

. Finally some LaTeX issues were resolved in the documentation.

In version 1.2.5, some small changes were made to the recognition part. Some new examples in the documentation explain better the functionality.

Version 1.2.6 is an intermediate update. It contains a number of corrections/additions suggested/implemented by Thomas Breuer and Max Horn, including an extension of some GAP library functions to create classical matrix groups. These additions are not yet documented.

In version 1.2.7, only an issue with the automatic release was fixed.

Version 1.2.8 optimizes the computation of base change matrices, making it faster by several orders of magnitude for large inputs. Moreover, Max Horn was added to the list of maintainers. Finally, various janitorial changes were made.

Version 1.2.9 fixes an unexpected error in `BaseChangeToCanonical`

if the input was over a finite field with more than 256 elements.

generated by GAPDoc2HTML