From 4c462f17dbf436ee93d27fece3a307c63dedcf8d Mon Sep 17 00:00:00 2001
From: Matthieu Schaller <matthieu.schaller@durham.ac.uk>
Date: Sat, 13 Feb 2016 13:46:04 +0000
Subject: [PATCH] Get rid of unnecessary divisions

---
 src/hydro/Gadget2/hydro.h | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/hydro/Gadget2/hydro.h b/src/hydro/Gadget2/hydro.h
index 997ecaff54..d8380fe5a3 100644
--- a/src/hydro/Gadget2/hydro.h
+++ b/src/hydro/Gadget2/hydro.h
@@ -87,19 +87,21 @@ __attribute__((always_inline))
   /* Finish the calculation by inserting the missing h-factors */
   p->rho *= ih * ih2;
   p->rho_dh *= ih4;
-  p->density.wcount *= (4.0f / 3.0 * M_PI * kernel_gamma3);
-  p->density.wcount_dh *= ih * (4.0f / 3.0 * M_PI * kernel_gamma3);
+  p->density.wcount *= (4.0f / 3.0f * M_PI * kernel_gamma3);
+  p->density.wcount_dh *= ih * (4.0f / 3.0f * M_PI * kernel_gamma3);
 
+  const float irho = 1.f / p->rho;
+  
   /* Compute the derivative term */
-  p->rho_dh = 1.f / (1.f + 0.33333333f * p->h * p->rho_dh / p->rho);
+  p->rho_dh = 1.f / (1.f + 0.33333333f * p->h * p->rho_dh * irho);
 
   /* Finish calculation of the velocity curl components */
-  p->density.rot_v[0] *= ih4 / p->rho;
-  p->density.rot_v[1] *= ih4 / p->rho;
-  p->density.rot_v[2] *= ih4 / p->rho;
+  p->density.rot_v[0] *= ih4 * irho;
+  p->density.rot_v[1] *= ih4 * irho;
+  p->density.rot_v[2] *= ih4 * irho;
 
   /* Finish calculation of the velocity divergence */
-  p->div_v *= ih4 / p->rho;
+  p->div_v *= ih4 * irho;
 }
 
 /**
-- 
GitLab