next | previous | forward | backward | up | index | toc

# diagonalClass -- produces a diagonalized form for any Grothendieck-Witt class, with simplified terms on the diagonal

## Synopsis

• Usage:
diagonalClass(beta)
• Inputs:
• beta, , over a field $k$, where $k$ is the rationals, reals, complex numbers, or a finite field of characteristic not 2
• Outputs:
• , a form isomorphic to $\beta$ with a diagonal Gram matrix

## Description

Given a symmetric bilinear form, this method calls the congruenceDiagonalize command in order to produce a diagonal symmetric bilinear form isomorphic to $\beta$, with reduced square classes appearing as the diagonal entries.

 i1 : M = matrix(QQ,{{9,1,7,4},{1,10,3,2},{7,3,6,7},{4,2,7,5}}); 4 4 o1 : Matrix QQ <-- QQ i2 : beta = gwClass(M); i3 : diagonalClass(beta) o3 = GrothendieckWittClass{cache => CacheTable{} } matrix => | 1 0 0 0 | | 0 89 0 0 | | 0 0 445 0 | | 0 0 0 -55 | o3 : GrothendieckWittClass

Note that the GrothendieckWittClass type caches diagonal versions of a form once they've been computed. We can recover this quickly in the following way.

 i4 : beta.cache.diagonalClass o4 = GrothendieckWittClass{cache => CacheTable{} } matrix => | 1 0 0 0 | | 0 89 0 0 | | 0 0 445 0 | | 0 0 0 -55 | o4 : GrothendieckWittClass