From ed3a32d38b41932d26fc9e5cb00bc4f7add99ae6 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <schaller@strw.leidenuniv.nl> Date: Tue, 5 May 2020 16:58:04 +0200 Subject: [PATCH] Do not use the approximate erf in the long-range truncation functions --- src/kernel_long_gravity.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernel_long_gravity.h b/src/kernel_long_gravity.h index 29471e1b1e..f099b5a480 100644 --- a/src/kernel_long_gravity.h +++ b/src/kernel_long_gravity.h @@ -91,7 +91,7 @@ kernel_long_grav_derivatives(const float r, const float r_s_inv, const float r_s_inv5 = r_s_inv4 * r_s_inv; /* Derivatives of \chi */ - derivs->chi_0 = approx_erfcf(u); + derivs->chi_0 = erfcf(u); derivs->chi_1 = -r_s_inv; derivs->chi_2 = r_s_inv2 * u; derivs->chi_3 = -r_s_inv3 * (u2 - 0.5f); @@ -158,7 +158,7 @@ __attribute__((const)) INLINE static float kernel_long_grav_pot_eval( #ifdef GADGET2_LONG_RANGE_CORRECTION const float arg1 = u * 0.5f; - return approx_erfcf(arg1); + return erfcf(arg1); #else @@ -190,7 +190,7 @@ __attribute__((const)) INLINE static float kernel_long_grav_force_eval( const float arg1 = u * 0.5f; const float arg2 = -arg1 * arg1; - const float term1 = approx_erfcf(arg1); + const float term1 = erfcf(arg1); const float term2 = u * one_over_sqrt_pi * expf(arg2); return term1 + term2; -- GitLab