


    /**This checks that strip 1 --> strip 2 is continuous in the strong torus topology*/

    public void stripTopology12() {
	
        double offset=.29131;
	double max=0;
	Complex z1,z2,z3,z4;
	z1=new Complex(offset,1.0);
	A=.66977;
        PinwheelMap PW=new PinwheelMap(A);

	for(int i=1;i<100000;++i) {
	    if(i%1000==0) System.out.println(i);
	    for(int j=0;j<100;++j) {

	      z2=MasterPictureTheorem.generatePoint1(A,i,j);
	        z3=PW.doMap(2,z1);
	        z4=PW.doMap(2,z2);

		double[] u1=TorusMap.phiZero3D(A,z1.x/1.0);
		double[] u2=TorusMap.phiZero3D(A,z2.x/1.0);
		double[] u3=TorusMap.phiZero3D(A,(z3.x+z3.y)/2.0);
		double[] u4=TorusMap.phiZero3D(A,(z4.x+z4.y)/2.0);

		double[] u21=new double[3];
		double[] u43=new double[3];
		double[] v=new double[3];
		for(int k=0;k<3;++k) {
		    u21[k]=u2[k]-u1[k];
		    u43[k]=u4[k]-u3[k];
		}

		v[0]=u21[0]-.5*u21[2];
		v[1]=u21[1]-.5*u21[2];
		v[2]=.5*u21[2];

              double test1=MasterPictureTheorem.top(1,A,1,z1,z2);

	       if(test1<.0001) {
		   System.out.println(u43[0]+" "+u43[1]+" "+u43[2]);
		   System.out.println(v[0]+" "+v[1]+" "+v[2]);


		    }

	    }
	}
    }

    public void stripTopology() {
	
        double offset=.59131;
	double max=0;
	Complex z1,z2,z3,z4;
	z1=new Complex(offset,1.0);
	A=.73977;
        PinwheelMap PW=new PinwheelMap(A);

	for(int i=1;i<100000;++i) {
	    if(i%1000==0) System.out.println(i);
	    for(int j=0;j<100;++j) {

	      z2=MasterPictureTheorem.generatePoint2(A,i,j);
	        z3=PW.doMap(3,z1);
	        z4=PW.doMap(3,z2);

		double[] u1=TorusMap.phiZero3D(A,(z1.x+z1.y)/4.0);
		double[] u2=TorusMap.phiZero3D(A,(z2.x+z2.y)/4.0);
		double[] u3=TorusMap.phiZero3D(A,(z3.x-z3.y)/4.0);
		double[] u4=TorusMap.phiZero3D(A,(z4.x-z4.y)/4.0);

		double[] u21=new double[3];
		double[] u43=new double[3];
		double[] v=new double[3];

		for(int k=0;k<3;++k) {
		    u21[k]=u2[k]-u1[k];
		    u43[k]=u4[k]-u3[k];
		}

              double test1=MasterPictureTheorem.top(2,A,2,z1,z2);

	      v[0]=-.5*u21[0]+.5*u21[1]+u21[2];
	      v[1]= .5*u21[0]-.5*u21[1]+u21[2];
	      v[2]= .5*u21[0]+.5*u21[1];

	       if(test1<.001) {

		  System.out.println(" ");
		  System.out.println(u43[0]+" "+u43[1]+" "+u43[2]);
		  System.out.println(v[0]+" "+v[1]+" "+v[2]);

	       }

	    }
	}
    }





    public void stripTopology34() {
	
        double offset=.19131;
	double max=0;
	Complex z1,z2,z3,z4;
	z1=new Complex(offset,1.0);
	A=.43977;
        PinwheelMap PW=new PinwheelMap(A);

	for(int i=1;i<100000;++i) {
	    if(i%1000==0) System.out.println(i);
	    for(int j=0;j<100;++j) {

	      z2=MasterPictureTheorem.generatePoint3(A,i,j);
	        z3=PW.doMap(0,z1);
	        z4=PW.doMap(0,z2);

		double[] u1=TorusMap.phiZero3D(A,(z1.x-z1.y)/4.0);
		double[] u2=TorusMap.phiZero3D(A,(z2.x-z2.y)/4.0);
		double[] u3=TorusMap.phiZero3D(A,z3.x/2.0);
		double[] u4=TorusMap.phiZero3D(A,z4.x/2.0);

		double[] u21=new double[3];
		double[] u43=new double[3];
		double[] v=new double[3];

		for(int k=0;k<3;++k) {
		    u21[k]=u2[k]-u1[k];
		    u43[k]=u4[k]-u3[k];
		}

              double test1=MasterPictureTheorem.top(3,A,2,z1,z2);
              double test2=MasterPictureTheorem.top(4,A,1,z1,z2);

	      v[0]=u21[0]+u21[2];
	      v[1]=u21[1]+u21[2];
	      v[2]=2*u21[2];


	       if(test1<.001) {
		   System.out.println(test2);

		   /*
		   for(int ii=-6;ii<6;++ii) {
		       for(int jj=-6;jj<6;++jj) {
			   for(int kk=-6;kk<6;++kk) {
			       v[2]=.5*(ii*u21[0]+jj*u21[1]+kk*u21[2]);
			       if(Math.abs(v[2]-u43[2])<.0000001) System.out.println(ii+" "+jj+" "+kk);
			   }
		       }
		   }
		   */


		  System.out.println(u43[0]+" "+u43[1]+" "+u43[2]);
		  System.out.println(v[0]+" "+v[1]+" "+v[2]);

	       }

	    }
	}
    }


