QEtaFundamentalDomain¶
fundom.spad line 92 [edit on github]
QEtaFundamentalDomain finds a matrix in SL2Z that transforms a given t in the upper half plane of the form t=u + i*v*sqrt(D) where u and v are rational numbers and D is a positive sqarefree integer into an element z=r+i*s*sqrt(D) in the standard fundamental domain.
- decomposeIntoSTProduct: Matrix Integer -> FreeGroup Symbol
decomposeIntoSTProduct(m)returns a non-commutative powerproductfgsin the variablesSandTsuch thatmis equal to this product ifSis replaced by the matrix [[0,-1],[1,0]] andTby the matrix [[1,1],[0,1]]. Suppose that s:=”S”::Symbol;t:=”T”::Symbol; mat(x:Record(gen:Symbol,exp:ZZ)):Matrix(Integer)==(x.gen=t=>matrix[[1,x.exp],[0,1]];z:=positiveRemainder(x.exp,4); z=0=>unit;z=2=>-unit;z=1=>matrix[[0,-1],[1,0]];matrix[[0,1],[-1,0]]); unit:=matrix[[1,0],[0,1]]; M:=reduce(_*,[matfforfin factorsfgs],unit) thenm=M.
- toFundamentalDomain: (AlgebraicNumber, PositiveInteger) -> Matrix Integer
If
t=(u+v*sqrt(-d))/wwhereu,v,w,dare integers andd>0,w>0, then toFundamentalDomain(t,k) returns a matrixmsuch thatmis a finite product of powers the matrices S=matrix[[0,-k],[1,0]] and T=matrix[[1,k],[0,1]] such that if a+sqrt(-d)*b=moebiusTransform(m, (u+v*sqrt(-d))/w), then-k/2<=a<k/2and a^2+b^2*d>=k. The valuek=1corresponds to the group SL2Z whereask=2corresponds to the Radu-Wurm group.