Thank you for advice. Let me explain my plan, then we can judge whether this advice work for me or it doesn't.
I have group of size 5120 of complex matrices of size 16x16. In this group I listed two conjugacy classes of involutions of size 10 and 80. Next I wanted to change the basis in a way that mentioned 10 matrices are diagonal. Therefore I obtained 16 vectors as intersections of eigenspaces. Unfortunately these vectors are not unit length, so I tried to normalize them. This doesn't work in GAP, because complex numbers are cyclotomics there. Then my question appeared on GAP forum. If I could normalize those vectors, then obtained matrix A built with orthonormal hermitian vectors is unitary and I can apply x-> A^-1 x A to group elements. Can this plan be done in GAP or Sage ? Mentioned group is index 2 in involution stabilizer of Tits group ^2F4(2)'. Regards, Marek 19-05-2016 04:30 użytkownik "Samuel Lelièvre" <samuel.lelie...@gmail.com> napisał: > Dear forum, > > To complement Dima's answer, if you are using Sage, > you should be aware that Sage provides two useful > exact fields: > - QQbar, the algebraic closure of QQ, > - AA, the "algebraic real field", which is the intersection > of QQbar with the reals. > > I would advise you to work in AA for your problem. > > Defining, as Dima suggested, > > sage: a = libgap.eval('E(20)-E(20)^9').sage() > > you get an element in a cyclotomic field: > > sage: a > -zeta20^7 + zeta20^5 - zeta20^3 + 2*zeta20 > sage: a.parent() > Cyclotomic Field of order 20 and degree 8 > > Now if you take its square root naively, you end up > in Sage's "Symbolic Ring" which is something to avoid > in general. > > sage: b = a.sqrt() > sage: b > sqrt(-(1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^7 > + (1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^5 > - (1/4*I*sqrt(5) + 1/4*sqrt(2*sqrt(5) + 10) - 1/4*I)^3 > + 1/2*I*sqrt(5) + 1/2*sqrt(2*sqrt(5) + 10) - 1/2*I) > sage: b.parent() > Symbolic Ring > > The best is to work with AA > > sage: AA > Algebraic Real Field > > by moving there explicitly > > sage: aa = AA(a) > sage: aa > 1.902113032590308? > sage: aa.parent() > Algebraic Real Field > > Elements of AA are exact, and well-defined: > > sage: aa.minpoly() > x^4 - 5*x^2 + 5 > > Taking square roots stays in AA > > sage: bb = aa.sqrt() > sage: bb > 1.379171139703231? > sage: bb.parent() > Algebraic Real Field > sage: bb.minpoly() > x^8 - 5*x^4 + 5 > > I hope this helps. > Samuel > _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum