### Unitary matrices over finite fields

Hi everyone

I was delighted to see that the SAGE team had implemented the unitary groups GU(n,q) and SU(n,q), since they are such peculiar objects; however the implementation does not seem to include many matrix functions (eg det, trace, transpose etc.).

Let S be a (small) subset of GF(q^2). Let G=GU(n,q) and define a subset D_S of G (ie D_S is NOT a vector subspace or subgroup or anything) to be the matrices whose entries may only be chosen from this particular subset S. Let U, V in D_S. I need to check the matrix products (U^t)*V for membership of D_S, where U^t denotes U.transpose() acted on by Frobenius in the usual way, and ideally I would like to store the set of pairs P = {(U,V) satisfying (U^t)*V in D_S}, or even better to store some "generators" for P.

I have two questions:

(1) which matrix operations are available for elements of GU(n,q)?

(2) is there an easy way of specifying a sub-SET like D_S so that such a search may be performed? Needless to say once q and/or n gets any bigger than 3, holding any of these subsets naively in memory becomes prohibitively costly!

Many thanks for any help.