/* bc program equivlent */ print "Type equiv(a,c,d,p,q,r,s)\n" define equiv(a,c,d,alpha,beta,gamma,delta){ auto dd,idd,x,y,t idd=alpha*delta-beta*gamma if(idd!=1 && idd!=-1){ print "determinant !=\pm 1\n" return } t=(a^2-d)/c x=idd*(alpha*gamma*t+a*(beta*gamma+alpha*delta)+beta*delta*c) y=idd*(gamma^2*t+2*gamma*delta*a+delta^2*c) print "\eta_0=(",x,"+sqrt(",d,")/",y,"\n" print "temp1=",gamma^2*t,"\n" print "temp2=",2*gamma*delta*a,"\n" print "temp3=",delta^2*c,"\n" return 1 }