**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: http://www.gap-system.org/Packages/forms.html.Find

**Forms**on its homepage: http://cage.ugent.be/geometry/forms.php.Report bugs, questions and issues on the

**Forms**issue tracker: https://bitbucket.org/jdebeule/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.

generated by GAPDoc2HTML