Gromacs  2025-dev-20241002-88a4191
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
gmx::SimdDInt32 Class Reference

#include <gromacs/simd/include/gromacs/simd/impl_reference/impl_reference_simd_double.h>

Description

Integer SIMD variable type to use for conversions to/from double.

Available if GMX_SIMD_HAVE_DOUBLE is 1.

Note
The integer SIMD type will always be available, but on architectures that do not have any real integer SIMD support it might be defined as the floating-point type. This will work fine, since there are separate defines for whether the implementation can actually do any operations on integer SIMD types.
This variable cannot be placed inside other structures or classes, since some compilers (including at least clang-3.7) appear to lose the alignment. This is likely particularly severe when allocating such memory on the heap, but it occurs for stack structures too.

Public Member Functions

 SimdDInt32 (std::int32_t i)
 Construct from scalar.
 

Public Attributes

std::array< std::int32_t,
GMX_SIMD_DINT32_WIDTH
simdInternal_
 Internal SIMD data. Implementation dependent, don't touch. More...
 

Member Data Documentation

std::array<std::int32_t, GMX_SIMD_DINT32_WIDTH> gmx::SimdDInt32::simdInternal_

Internal SIMD data. Implementation dependent, don't touch.

This has to be public to enable usage in combination with static inline functions, but it should never, EVER, be accessed by any code outside the corresponding implementation directory since the type will depend on the architecture.


The documentation for this class was generated from the following file: