2 ***********************************************************
3 $SNARK_Header: S N A R K 1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4 $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/point.cpp $
5 $LastChangedRevision: 80 $
6 $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
8 ***********************************************************
10 THIS SUBROUTINE PRODUCES THE POINT BY POINT RESOLUTION OF THE
11 RECONSTRUCTED PICTURE. THIS MEASURE IS SIMILAR TO THAT DEFINED
12 IN FRIEDER AND HERMAN (J. THEOR. BIOL., VOL. 33, PP. 189-211),
13 HOWEVER, THE NUMBER OF SQUARES OF THE DIFFERENT SIZES HAS BEEN
14 GREATLY REDUCED TO MAKE THIS COMPUTATIONALLY FEASIBLE.
25 void Eval_class::point(REAL* a, REAL* b, REAL* c, INTEGER nelem, INTEGER* nerr,
43 *nerr = (INTEGER) (log((REAL) nelem) / log((REAL) 2) + 1.0);
46 fprintf(output, "\n **** image is too large for evaluation");
47 fprintf(output, "\n **** program aborted\n");
48 fprintf(output, "\n");
54 narea = nelem * nelem;
56 // COMPUTE THE DIFFERENCE PICTURE
58 for (i = 0; i < narea; i++)
63 for (k = 0; k < *nerr; k++)
66 // FIND THE MAXIMUM PICTURE ELEMENT
67 for (i = 0; i < narea; i++)
68 { //changed from 'i=1' to 'i=0' (Joel)
69 cmax = MAX0((REAL) fabs(c[i]), cmax);
75 REDUCE THE SIZE OF THE PICTURE BY AVERAGING 2X2 SQUARES,
76 DISCARDING REMAINING ODD SQUARES. FOR EXAMPLE, IF THE ORIGINAL
77 PICTURE WAS 63X63, SUCESSIVE AVERAGED PICTURE SIZES WOULD BE
78 31X31, 15X15, 7X7, 3X3, AND 1X1.
83 ij = 0; // used to be 'ij = 1' (Joel 8-12-03)
84 ik = 0; // used to be 'ik = 1' (Joel 8-12-03)
85 for (i = 0; i < nnh; i++)
89 for (j = 0; j < nnw; j++)
94 c[ij] = (REAL) 0.25 * (c[ii] + c[ii1] + c[ii2] + c[ii3]);