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/qfilt.cpp $
5 $LastChangedRevision: 80 $
6 $Date: 2014-07-01 21:01:54 -0400 (Tue, 01 Jul 2014) $
8 ***********************************************************
10 COMPUTE THE VALUE OF THE FILTER FUNCTION FOR THE RHO-FILTERED
15 THE IMPLEMENTED FILTERS ARE-
16 FILTER=0 BRACEWEL ABS(R)*BOX(R/(2.0*CUTOFF))
17 FILTER=1 SHEPP ABS(R)*SINC(R/(2.0*CUTOFF))
19 FILTER=2 COSINE ABS(R)*COS(PI*R/(2.0*CUTOFF))
21 FILTER=3 HAMMING ABS(R)*(ALPHA+(1.0-ALPHA)*COS(PI*R))
35 REAL qfilt(REAL r, REAL cutoff, INTEGER filter)
37 if (!((filter < 0) || (filter > 3)))
45 return (REAL) fabs(r);
50 return (REAL) (cutoff * sin(Consts.pid2 * fabs(r) / cutoff)
56 return (REAL) (fabs(r) * cos(Consts.pid2 * r / cutoff));
61 return (REAL) (fabs(r)
62 * (cutoff + (1.0 - cutoff) * cos(Consts.pi * r)));
66 // INVALID FILTER, OUTPUT ERROR MESSAGE AND STOP
68 fprintf(output, "\n **** filter = %d is not a valid filter type for qfilt routine", filter);
69 fprintf(output, "\n **** program aborted\n");