Macaulay2 » Documentation
Packages » A1BrouwerDegrees :: diagonalClass
next | previous | forward | backward | up | index | toc

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

Synopsis

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

See also

Ways to use diagonalClass :

For the programmer

The object diagonalClass is a method function.