ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/px/pcond4.c
(Generate patch)

Comparing ray/src/px/pcond4.c (file contents):
Revision 3.12 by greg, Fri Jan 10 13:06:54 1997 UTC vs.
Revision 3.13 by greg, Sat Jan 11 19:34:22 1997 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1996 Regents of the University of California */
1 > /* Copyright (c) 1997 Regents of the University of California */
2  
3   #ifndef lint
4   static char SCCSid[] = "$SunId$ LBL";
# Line 171 | Line 171 | float  *inpacuD;               /* input acuity data (cycles/degree)
171   double
172   hacuity(La)                     /* return visual acuity in cycles/degree */
173   double  La;
174 < {                               /* data due to S. Shaler (we should fit it!) */
175 < #define NPOINTS 20
176 <        static float    l10lum[NPOINTS] = {
177 <                -3.10503,-2.66403,-2.37703,-2.09303,-1.64403,-1.35803,
178 <                -1.07403,-0.67203,-0.38503,-0.10103,0.29397,0.58097,0.86497,
179 <                1.25697,1.54397,1.82797,2.27597,2.56297,2.84697,3.24897
180 <        };
181 <        static float    resfreq[NPOINTS] = {
182 <                2.09,3.28,3.79,4.39,6.11,8.83,10.94,18.66,23.88,31.05,37.42,
183 <                37.68,41.60,43.16,45.30,47.00,48.43,48.32,51.06,51.09
184 <        };
185 <        double  l10La;
186 <        register int    i;
187 <                                        /* check limits */
188 <        if (La <= 7.85e-4)
189 <                return(resfreq[0]);
190 <        if (La >= 1.78e3)
191 <                return(resfreq[NPOINTS-1]);
192 <                                        /* interpolate data */
193 <        l10La = log10(La);
194 <        for (i = 0; i < NPOINTS-2 && l10lum[i+1] <= l10La; i++)
195 <                ;
196 <        return( ( (l10lum[i+1] - l10La)*resfreq[i] +
197 <                        (l10La - l10lum[i])*resfreq[i+1] ) /
198 <                        (l10lum[i+1] - l10lum[i]) );
199 < #undef NPOINTS
174 > {
175 >                                        /* functional fit */
176 >        return(17.25*atan(1.4*log10(La) + 0.35) + 25.72);
177   }
178  
179  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines