import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.geom.*; import java.math.*; /**This class contains the data for the first return map to the renorm sets*/ public class DataRenormReturn { /**lengths of the lists below**/ public static int limits(int LB,int branch) { int[][]A={{39,30,29,24},{47,48,9,21},{17,15,25,35}}; if(LB<3) return(A[LB][branch]); return(A[5-LB][branch]); } public static Polyhedron getA(int LA,int LB,int branch,int k,int direction) { GoldenPolyhedron GP=getGoldenA(LA,LB,branch,k,direction); if(GP==null) return(null); return(GP.toPolyhedron()); } public static GoldenPolyhedron getGoldenA(int LA,int LB,int branch,int k,int direction) { if((LA==0)&&(LB==5)) return(null); if((LA==1)&&(LB!=5)) return(null); if((LA==3)&&(LB!=0)) return(null); if((LA==4)&&(LB==0)) return(null); int dir2=1-direction; if(LA%2==1) dir2=1-dir2; GoldenPolyhedron P=getGoldenB(LB,branch,k,dir2); if(dir2==0) { int[] u=DataRenormRaw.getAffine(LA,LB,branch); return(P.affine(u)); } int branch2=branch; if(LB==0) branch2=DataRenormReturnRaw.convert0(branch,k); if(LB==5) branch2=DataRenormReturnRaw.convert5(branch,k); int[] u=DataRenormRaw.getAffine(LA,LB,branch2); return(P.affine(u)); } public static Polyhedron getB(int LB,int branch,int k,int direction) { GoldenPolyhedron GP=getGoldenB(LB,branch,k,direction); if(GP==null) return(null); return(GP.toPolyhedron()); } public static GoldenPolyhedron getGoldenB(int LB,int branch,int k,int direction) { if(k>=limits(LB,branch)) return(null); int[][] A=P(LB,branch,k); GoldenPolyhedron P=new GoldenPolyhedron(A); if(direction==0) return(P); GoldenVector V=getReturn(LB,branch,k); P=P.translate(V); return(P); } /**the polyhedra**/ public static int[][] P(int LB,int branch,int k) { if(LB<3) return(P0(LB,branch,k)); int[][] A=P0(5-LB,branch,k); for(int i=0;i