Fundamental Domain ================== for the 2 dimensional Siegel upper half-space The programs in this directory allows one to move an element of 2 dimensional Siegel upper half-space into a fundamental domain for that space. The element in the fundamental domain has, just as in the genus 1 case, the "biggest" imaginary part. This is sometimes useful when one wants to compute theta functions: the larger the imaginary part the faster the theta series converges. Another use for the fundamental domain is to help in finding the symplectic transformation relating to equivalent elements in Siegel upper half-space. The fundamental domain is the one described by E. Gottschling in "Explizite bestimmung der randflachen des fundamentalbereiches der modulgruppe zweiten grades", Math. Annalen, 138:103--124, 1959. A) Installation ------------ Just read fundom.m into Mathematica. B) Functions --------- aG == aG[tau, m] applies the symplectic matrix m to tau, an element of 2 dimensional Siegel upper half-space. Recall that tau must be a 2x2 symmetric matrix with positive definite imaginary part. m must be a 4x4 integer matrix such that if m = {{a,b},{c,d}} (with a,b,c and d 2x2 matrices) then a.Transpose[d]-b.Transpose[c] = 1 and both a.Transpose[b] and c.Transpose[d] are symmetric. Such a matrix m = {{a,b},{c,d}} acts on tau by (a.tau+b).Inverse[(c.tau+d)]. See p 137 of Serge Lang's "Introduction to Algebraic and Abelian Functions", Springer 1982. Fundom ====== Fundom[tau] will return {tau2,m} where tau2 is in a fundamental domain for Siegel upper half-space and is equivalent to tau through m. That is aG[tau,m] = tau2. EquivQ ====== EquivQ[tau1,tau2] will return m such that aG[tau1,m] = tau2, if such an m exists. If not it will return False.