diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-03-04 15:07:27 -0600 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-03-04 15:07:27 -0600 |
commit | 7979767566c672e53dabdfbb202ac99c7f54689f (patch) | |
tree | 47291f83185f2298676cafcf440981561ab98e88 /src/solid_angle.c | |
parent | 2ba0b90669feb760ff8cd89d72ed34a44293b886 (diff) | |
download | sddm-7979767566c672e53dabdfbb202ac99c7f54689f.tar.gz sddm-7979767566c672e53dabdfbb202ac99c7f54689f.tar.bz2 sddm-7979767566c672e53dabdfbb202ac99c7f54689f.zip |
speed up get_solid_angle_fast()
Diffstat (limited to 'src/solid_angle.c')
-rw-r--r-- | src/solid_angle.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/solid_angle.c b/src/solid_angle.c index f7bb7e3..a8daa15 100644 --- a/src/solid_angle.c +++ b/src/solid_angle.c @@ -143,15 +143,15 @@ double get_solid_angle_lookup(double L2, double r2) double get_solid_angle_fast(double *pos, double *pmt, double *n, double r) { double dir[3]; - double L, r0, R; + double L, r0, R2; dir[0] = pos[0] - pmt[0]; dir[1] = pos[1] - pmt[1]; dir[2] = pos[2] - pmt[2]; - L = fabs(dir[0]*n[0] + dir[1]*n[1] + dir[2]*n[2]); - R = sqrt(dir[0]*dir[0] + dir[1]*dir[1] + dir[2]*dir[2]); - r0 = sqrt(R*R - L*L); + L = fabs(DOT(dir,n)); + R2 = DOT(dir,dir); + r0 = sqrt(R2 - L*L); return get_solid_angle_lookup(L/r,r0/r); } |