import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.geom.*; import java.math.*; public class Renormalize { /**In this file we study the renorm sets defined relative to the two parameters s and t=R(s). The s-parameter is considered the range and the t-parameter is considered the domain.*/ /**Here is the renormalization map*/ public static double renormReal(double s) { if(s>1) return(s-1); if(s>.5) return(1-s); double t=.5/s; t=t-Math.floor(t); return(t); } public static PolygonWrapper renormRange(double s) { double t=renormReal(s); PolygonWrapper P=renormDomain(t); for(int i=0;i.5) return(renormMap1(s,z)); return(renormMap2(s,z)); } public static Complex renormMap1(double s,Complex z) { double t=renormReal(s); Complex w=Complex.plus(z,new Complex(t-s,t-s)); return(w); } public static Complex renormMap2(double s,Complex z) { double t=renormReal(s); Complex w=Complex.primitiveRoot(8); Complex Z=Complex.times(w,z.conjugate()); Z=Complex.times(Z,new Complex(s*Math.sqrt(2),0)); Z=Complex.plus(Z,new Complex(-1+2*s*t,0)); return(Z); } public static PolygonWrapper renormDomain(double t) { PolygonWrapper P=new PolygonWrapper(); P.count=4; if(t<.5) { P.z[0]=new Complex(-1-t,-t); P.z[1]=new Complex(-t,-t); P.z[2]=new Complex(-t,t); P.z[3]=new Complex(-1+t,t); return(P); } if((t<1)&&(t>1.0/2)) { P.z[0]=new Complex(-1-t,-t); P.z[1]=new Complex(-1+t,-t); P.z[2]=new Complex(-t,-1+t); P.z[3]=new Complex(-t,1-t); return(P); } P.z[0]=new Complex(-1-t,-t); P.z[1]=new Complex(1-t,-t); P.z[2]=new Complex(0,-1); P.z[3]=new Complex(-1,0); return(P); } /**MODULARITY*/ /*mod1 map*/ public static double mod1Real(double s) { double t=(s-2)/(2*s-3); return(t); } public static PolygonWrapper mod1Range(double s) { double t=mod1Real(s); PolygonWrapper P=renormDomain(t); Complex z=P.center(); int choice=0; if(z.x>0) choice=1; for(int i=0;i0) choice=1; return(modular1(choice,s,z)); } /*mod 2 map*/ public static double mod2Real(double s) { double t=(2-3*s)/(1-2*s); return(t); } public static PolygonWrapper mod2Range(double s) { double t=mod2Real(s); PolygonWrapper P=renormDomain(t); PolygonWrapper Q=new PolygonWrapper(); Q.count=P.count; for(int i=0;i0) choice=1; return(modular2(choice,s,z)); } }