Forms -- a package for sesquilinear and quadratic forms

Forms is a package, developed by John Bamberg and Jan De Beule. It can be used for work with sesquilinear and quadratic forms, objects that are used to describe polar spaces and classical groups. The package also deals with the recognition of certain matrix groups preserving a sesquilinear or quadratic form. The main features of forms are its facility with creating sesquilinear and quadratic forms via matrices and polynomials, and in changing forms (creation of isometries).

An example of how it works:

gap> LoadPackage("forms");
gap> gf := GF(8);
gap> r := PolynomialRing( gf, 3 );
PolynomialRing(..., [ x_1, x_2, x_3 ])
gap> poly := r.1^2 + r.2 * r.3;
gap> form := QuadraticFormByPolynomial( poly, r );
< quadratic form >
gap> Display( form );
Quadratic form
Gram Matrix:
1 . .
. . 1
. . .
Polynomial: x_1^2+x_2*x_3

gap> IsDegenerateForm( form );
#I Testing degeneracy of the *associated bilinear form*
gap> IsSingularForm( form );
gap> WittIndex( form );
gap> IsParabolicForm( form );
gap> form;
< non-singular parabolic quadratic form >

Dowloading and installing

All you need to do is download the archive below to your gap/pkg directory and extract it (using either (i) "tar -xvzf forms-1.2.tar.gz" or (ii) using any unzip program to extract ""). Then to use it in GAP, type:

gap> LoadPackage("forms");
Loading 'Forms' 1.2.3 (26/10/2015)
by John Bamberg (
Jan De Beule (
For help, type: ?Forms

Download current version 1.2.3: [forms-1.2.3.tar.gz] [forms-1.2.3.tar.bz2] [] [README] [PackageInfo.g]

Download version 1.2.2: [forms-1.2.2.tar.gz] [forms-1.2.2.tar.bz2] []
Download version 1.2.1: [forms-1.2.1.tar.gz] [forms-1.2.1.tar.bz2] []
Download version 1.2 (accepted 3/2009): [forms-1.2.tar.gz] [forms-1.2.tar.bz2] []


The archive contains complete documentation, in [HTML] and [PDF] format.

Bugs, question and issues?

Please use the issue tracker.
Research Group Incidence Geometry Research Group Incidence Geometry
faculty logo
Help | Contact