v(rr) = vector( (2*n)+1,l,G[rr,l] ) t(ss) = vector( 2*n,l,K[ss,l] ) f(ii) = sum( j = 1, n, F[ii,j]*log(a[j]) ) + sum( j = 1, n, F[ii,n+j]*log(1-a[j]) ) + F[ii,(2*n)+1]*Pi*I g(ii,jj) = ( F[ii,jj]/a[jj] ) - ( F[ii,n+jj]/(1-a[jj]) ) delta(ii,jj) = if( abs(F[ii,jj])+abs(F[ii,jj+n]), ( Eps/(2*n) )*( 1/( (abs(F[ii,jj])/(abs(a[jj]))^2) + \ (abs(F[ii,n+jj])/(abs(1-a[jj]))^2) ) ),((4*normb)/Eta)+1 ) vecdelta(jj) = vector( n, i, delta(i,jj) ) mindelta(jj) = vecmin( vecdelta(jj) ) vecmindelta(jj) = [mindelta(jj),imag(a[jj]),(norml2(a[jj]))/2,(norml2(1-a[jj]))/2] mmindelta(jj) = vecmin( vecmindelta(jj) ) c(i,j) = (abs(F[i,j])/(abs(a[j]) – 2*normhh)^2) + (abs(F[i,j+n])/(abs(1-a[j]) – 2*normhh)^2) template(n,k,a,FF,GG,ttet,mmfld,compare=5) = {local(F,G,H,K,r); F=FF; G=GG; /* read the file FILENAME into SNAP */ /* see that there are h unsurgered cusps */ /* (,) (,) (,) (,) */ /* print shapes - the triangulation has n tetrahedra */ /* print filling equations. Count the number of equations, subtract n from it, and set k equal \ to this difference. First the k-h cusp surgery equations will appear, followed by the h \ meridienal completeness equations, and finally all of the n consistency equations. If no \ surgery has been performed on the manifold, the first k equations are all meridienal \ completeness equations.*/ /* initialize the matrix F, using the first k equations (completeness and surgery equations) */ /* if F is a vector, change it to a one row matrix by \ F = Mat( [X1,1, ..., X1,2n+1] ) */ /* define matrix H, by eliminating the last column of F representing the Pi*I coefficient */ H = matrix (k,2*n,i,j,F[i,j]); /* define the matrix G, using the n consistency equations and\ define matrix K, by eliminating the last column of G representing the Pi*I coefficient */ K = matrix (n,2*n,i,j,G[i,j]); /* redefine F and H by adding rows to them from G and K respectively\ until the rank of F and H are both n */ r=1; /* v(r)= vector( (2*n)+1,l,G[r,l] );*/ /* t(r)=vector( 2*n,l,K[r,l] );*/ while( n – matrank(H) && (n+1-r), if( (matrank(concat(F,v(r))) – matrank(F)) && (matrank(concat(H,t(r))) – matrank(H)), F = concat(F,v(r)); H = concat(H,t(r)), r=r++ ) ); eval(F); eval(H); /* set up the filling equations as log functions evaluated at a*/ /* f(i) = sum( j = 1, n, F[i,j]*log(a[j]) ) + sum( j = 1, n, F[i,n+j]*log(1-a[j]) ) + F[i,(2*n)+1]*Pi*I; */ /* define the vector b in C^n */ b = vector( n, i, f(i) ); /* identify the norm of b */ normb = sqrt( norml2(b) ); if(maxnormb < normb, maxnormb=normb); print(maxnormb) } trap() counter = 1 cancel = 0 maxnormb = 1.29666638435289144453072493477517327851856768033219730258426 E-28 /* nummflds is number of manifolds in cusped census */ nummflds = 4 { for(counter=1,2*nummflds, /* print r c manifold identification ( 5 or 6 or 7 plus number)*/ ID = counter; /* print "pr sol" */ /* sol = extern("sed -n "counter"p perlout1");*/ /* if(sol == "solutiontype:geometric", ,cancel=1 && print(ID," not geometric"));*/ /* counter = counter+1; */ /* print "pr sh" */ va = Vec(extern("sed -n "counter"p perloutfix")); counter=counter+1; /* once get shape vector, find n=length of vector */ vn = matsize(va)[2]; soltype=2; for(imm=1,vn,if(imag(va[imm])<0,soltype=3)); for(imm=1,vn,if(imag(va[imm])<10^(-28),soltype=4)); /* print "pr fill" */ FG = extern("sed -n "counter"p perloutfix"); /* find total number of equations: n+k */ numalleq = matsize(FG)[1]; /* find number of cusps */ vk = numalleq - vn; /* initialize the cusp equations matrix */ vF = matrix(vk,2*(vn) +1,ii,jj,FG[ii,jj]); /* initialize the consistency equation matrix */ vG = matrix(vn,2*(vn) +1,ii,jj,FG[vk+ii,jj]); /* if manifold not geometric solution, do not call function, otherwise call funtion */ /* if(cancel,cancel=0,template(vn,vk,vF,vG));*/ if( counter==2,tet="5 ";mfld= 168); if( counter==4,tet="6 ";mfld= 297); if( counter==6,tet="7 ";mfld= 1431); if( counter==8,tet="7 ";mfld= 1927); if(soltype<3,template(vn,vk,va,vF,vG,tet,mfld), \ print("manifold ",tet,mfld," has param with neg or <10^(-28) imag component as approx sol")); ) } print(maxnormb)