aboutsummaryrefslogtreecommitdiff
path: root/src/solid_angle.c
diff options
context:
space:
mode:
authortlatorre <tlatorre@uchicago.edu>2019-03-04 15:07:27 -0600
committertlatorre <tlatorre@uchicago.edu>2019-03-04 15:07:27 -0600
commit7979767566c672e53dabdfbb202ac99c7f54689f (patch)
tree47291f83185f2298676cafcf440981561ab98e88 /src/solid_angle.c
parent2ba0b90669feb760ff8cd89d72ed34a44293b886 (diff)
downloadsddm-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.c8
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);
}