#include #include /* Note: letters O and l missing */ char *table="0123456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz+-*/"; int icos; int tab[256]; bit() { static int b,bitnum; int i; if(bitnum<=0) { skip: i=getchar(); if(i==EOF) { fprintf(stderr,"premature EOF\n"); exit(1); } if(i=='\n'||i==' ')goto skip; b=tab[i]; if(b<0) { fprintf(stderr,"illegal character '%c'",i); exit(1); } bitnum=6; } return (b&(1<<--bitnum))?1:0; } readint(fieldw) { int i,j; for(i=j=0; i='0'&&j<='9'; )i=i*10+j-'0'; if(j=='i') { icos=1; j=getchar(); } if(j!=' ') { fprintf(stderr,"header number not followed by blank\n"); exit(1); } return i; } readjump(vsize,vbreak) { int i,j; if(vsize==0)return 1; else if(vsize==1)return bit()+1; i=readint(vsize-1); if(i1)dsq=1; d=sqrt(1.-dsq); a[k*m+i]=bit()?-d:d; continue; } prev=k; for(i=0; injump)j=njump; for(vsize=0; (1<1)dsq=1; d=sqrt(1.-dsq); if(k&&bit())d=-d; for(i=0; i