1 | initial version |

The following works (over `QQ`

instead of `SR`

):

```
def f( Q ):
D, M = Q.rational_diagonal_form( return_matrix=True )
base = M.columns()
BASEpos = []
BASEneg = []
BASEnull = []
for j in range( 0, Q.dim() ):
if D[j,j] > 0 : BASEpos += [ 1/sqrt( D[j,j] ) * base[j] ]
elif D[j,j] < 0 : BASEneg += [ 1/sqrt( -D[j,j] ) * base[j] ]
elif D[j,j] ==0 : BASEnull += [ base[j] ]
return span( QQ, BASEpos + BASEneg )
Q = QuadraticForm( QQ, 4, [ 0,0,0,1, 0,-1,0, 0,0, 0 ] )
f( Q )
```

Results:

```
Vector space of degree 4 and dimension 4 over Rational Field
Basis matrix:
[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.