Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
inplement number field with all square roots
define a unitary version of the SGA DFT By ensuring every representation of G is unitary, the overall DFT can be made unitary by including \sqrt{d_\rho/|G|} in front of each Fourier coefficient. To make the rep'ns unitary, we make use of Weyl's unitary trick. Rather than using Gram-Schmidt orthonormalization, we opt to compute the "sum of squares" matrix P = \sum_{g \in G} \rho(g)\rho(g)*dg and set Q=\sqrt{P} where Q is the principal square root. use self.group() instead of G remove a def lines maintaining readability include form option for "unitary" remove whitespace remove whitespace in doctest remove all whitespace Revert "remove all whitespace" This reverts commit b6d289c. remove all whitespace one line before nested def more whitespace proper usage of order, cardinality, degree for 1/|G|, should use G.cardinality for n, one should use n = G.degree() simplify the output which is in symbolic ring SR compute a square root in the base ring of Q note Q is the change-of-basis matrix making the representation unitary. when we extend to positive characteristic, we will need to ensure square roots are computable in that field simplify conjugate_transpose_pos_char remove .simplify_full() from doctest need to be computing square roots in some ring. some problems may be occurring if the working over the symbolic ring just use sqrt manually use principal_square_root need to ensure that the resulting matrix is defined over some field rather than just the SymbolicRing. use self instead of "SGA" remove blank line before def remove whitespace add blank line before def just remove comments self instead of SGA just return with simplify_full() for now working over a ring which contains all required square roots will take some time slight difference in expected output change polynomial ring notation to remove lint error work over a number field when working over \Q or extensions thereof, we need to ensure all required square roots are available. precompute a field extension of self.base_ring() containing all roots, which are the roots on the diagonal in the unitary change-of-basis matrix square root, as well as the unitary factors \sqrt{d_\rho/|G|}.
- Loading branch information