/************************************************* utility funtions for array operations. *************************************************/ #define SWAP(a,b) tempr=(a); (a)=(b); (b)=tempr #define Pi 3.141592653589 #define Sqrt2 1.414213562 char fname[50]; FILE *fp; double *alloc1dd(n) int n; { int i; double *array; if ( (array = (double*)malloc(n * sizeof(double)) )==NULL) { printf("Unable to allocate memory for 1D double array...\n"); exit(0); } for (i=0; iv) min=v; if (maxv) min=v; if (maxv) min=v; if (maxv) min=v; if (maxv) min=v; if (maxv) min=v; if (max= 0) { I=Wi/(m+bd1); i=Wi-I*(m+bd1); } JJ=l/Dj; Wj=l-JJ*Dj-bd2; if (Wj >= 0) { J=Wj/(n+bd1); j=Wj-J*(n+bd1); } if (Wi>=0 && Wj>=0 && iv) min=v; if (max= 0) { I=Wi/(m+bd1); i=Wi-I*(m+bd1); } JJ=l/Dj; Wj=l-JJ*Dj-bd2; if (Wj >= 0) { J=Wj/(n+bd1); j=Wj-J*(n+bd1); } if (Wi>=0 && Wj>=0 && iv) min=v; if (maxmin) v=255.0/(max-min); else v=1; printf("Display_7D: min=%f, max=%f, v=%f\n",min,max,v); if (order) { LL=p; MM=q; NN=P; M=Q; N=PP; m=QQ; n=RR; } else { LL=RR; MM=PP; NN=QQ; M=P; N=Q; m=p; n=q; } // strcat(fname,".pgm"); if ( (fp = fopen(fname, "w")) == NULL) { fprintf(stderr, "Unable to open image %s for writing, exiting.\n",fname); exit(0); } Di=bd2+M*(m+bd1)-bd1; Dj=bd2+N*(n+bd1)-bd1; // printf("Di=%d, Dj=%d\n",Di,Dj); DI=bd2+MM*Di; DJ=bd2+NN*Dj; mc=DI; nc=LL*DJ; printf("Dimensions of input: (%d %d)x(%d %d)x(%d %d)x%d\n",p,q,P,Q,PP,QQ,RR); printf("Dimensions of output: (%d %d)\n",mc,nc); fprintf(fp,"%s\n%d %d\n%d\n", "P5", nc,mc, 255); for (k=0; k= 0) { I=Wi/(m+bd1); i=Wi-I*(m+bd1); } L=l/DJ; JJ=(l-L*DJ)/Dj; Wj=l-L*DJ-JJ*Dj-bd2; if (Wj >= 0) { J=Wj/(n+bd1); j=Wj-J*(n+bd1); } // printf("i=%d j=%d I=%d J=%d II=%d jj=%d L=%d\n",i,j,I,J,II,JJ,L); if (Wi>=0 && Wj>=0 && iv) min=v; if (maxv) min=v; if (maxv) min=v; if (maxv) min=v; if (maxv) min=v; if (max