Gromacs  2024.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simd_math.h File Reference
#include "config.h"
#include <cmath>
#include <limits>
#include "gromacs/math/units.h"
#include "gromacs/math/utilities.h"
#include "gromacs/simd/simd.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/real.h"
+ Include dependency graph for simd_math.h:
+ This graph shows which files directly or indirectly include this file:


Math functions for SIMD datatypes.

This file is generic for all SIMD architectures, so you cannot assume that any of the optional SIMD features (as defined in simd.h) are present. In particular, this means you cannot assume support for integers, logical operations (neither on floating-point nor integer values), shifts, and the architecture might only have SIMD for either float or double. Second, to keep this file clean and general, any additions to this file must work for all possible SIMD architectures in both single and double precision (if they support it), and you cannot make any assumptions about SIMD width.
Erik Lindahl