* \ingroup module_simd
*/
+#include "config.h"
+
#include <math.h>
#include "gromacs/math/utilities.h"
#endif
}
+#ifndef gmx_simd_rsqrt_iter_f
/*! \brief Perform one Newton-Raphson iteration to improve 1/sqrt(x) for SIMD float.
*
* This is a low-level routine that should only be used by SIMD math routine
return gmx_simd_mul_f(gmx_simd_set1_f(0.5f), gmx_simd_mul_f(gmx_simd_sub_f(gmx_simd_set1_f(3.0f), gmx_simd_mul_f(gmx_simd_mul_f(lu, lu), x)), lu));
# endif
}
+#endif
/*! \brief Calculate 1/sqrt(x) for SIMD float.
*
*out1 = gmx_simd_invsqrt_f(x1);
}
+#ifndef gmx_simd_rcp_iter_f
/*! \brief Perform one Newton-Raphson iteration to improve 1/x for SIMD float.
*
* This is a low-level routine that should only be used by SIMD math routine
{
return gmx_simd_mul_f(lu, gmx_simd_fnmadd_f(lu, x, gmx_simd_set1_f(2.0f)));
}
+#endif
/*! \brief Calculate 1/x for SIMD float.
*
#endif
}
+#ifndef gmx_simd_rsqrt_iter_d
/*! \brief Perform one Newton-Raphson iteration to improve 1/sqrt(x) for SIMD double.
*
* \copydetails gmx_simd_rsqrt_iter_f
return gmx_simd_mul_d(gmx_simd_set1_d(0.5), gmx_simd_mul_d(gmx_simd_sub_d(gmx_simd_set1_d(3.0), gmx_simd_mul_d(gmx_simd_mul_d(lu, lu), x)), lu));
#endif
}
-
+#endif
/*! \brief Calculate 1/sqrt(x) for SIMD double
*
#endif
}
+#ifndef gmx_simd_rcp_iter_d
/*! \brief Perform one Newton-Raphson iteration to improve 1/x for SIMD double.
*
* \copydetails gmx_simd_rcp_iter_f
{
return gmx_simd_mul_d(lu, gmx_simd_fnmadd_d(lu, x, gmx_simd_set1_d(2.0)));
}
+#endif
/*! \brief Calculate 1/x for SIMD double.
*