Gromacs  2026.0-dev-20250418-2a07af2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
pairlist_simd_kernel.cpp File Reference
#include "pairlist_simd_kernel.h"
#include "config.h"
#include <algorithm>
#include <array>
#include <memory>
#include <type_traits>
#include "gromacs/math/functions.h"
#include "gromacs/math/vec.h"
#include "gromacs/nbnxm/boundingbox.h"
#include "gromacs/nbnxm/pairlist.h"
#include "gromacs/simd/simd.h"
#include "gromacs/simd/vector_operations.h"
#include "gromacs/utility/arrayref.h"
#include "gromacs/utility/gmxassert.h"
#include "boundingboxdistance.h"
#include "clusterdistancekerneltype.h"
#include "grid.h"
#include "nbnxm_simd.h"
#include "pairlist_imask.h"
#include "pairlistwork.h"
+ Include dependency graph for pairlist_simd_kernel.cpp:

Description

Defines the SIMD cluster pair distance kernel and helpers.

Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Functions

template<ClusterDistanceKernelType kernelType>
static gmx_unused constexpr int gmx::sc_iClusterSizeSimd ()
 
template<ClusterDistanceKernelType kernelType>
static gmx_unused constexpr int gmx::sc_jClusterSizeSimd ()
 
template<ClusterDistanceKernelType kernelType>
static gmx_unused constexpr int gmx::sc_xStride ()
 Stride of the packed x coordinate array.
 
template<ClusterDistanceKernelType kernelType>
static gmx_unused int gmx::xIndexFromCi (int ci)
 Returns the nbnxn coordinate data index given the i-cluster index.
 
template<ClusterDistanceKernelType kernelType>
static gmx_unused int gmx::xIndexFromCj (int cj)
 Returns the nbnxn coordinate data index given the j-cluster index.
 
template<ClusterDistanceKernelType kernelType, int jSubClusterIndex>
static gmx_unused int gmx::cjFromCi (int ci)
 Returns the j-cluster index given the i-cluster index. More...
 
void gmx::setICellCoordinatesSimd4xM (int gmx_unused ci, const RVec gmx_unused &shift, int gmx_unused stride, const real gmx_unused *x, NbnxmPairlistCpuWork gmx_unused *work)
 
void gmx::setICellCoordinatesSimd2xMM (int gmx_unused ci, const RVec gmx_unused &shift, int gmx_unused stride, const real gmx_unused *x, NbnxmPairlistCpuWork gmx_unused *work)
 
void gmx::makeClusterListSimd4xM (const Grid gmx_unused &jGrid, NbnxnPairlistCpu gmx_unused *nbl, int gmx_unused icluster, int gmx_unused firstCell, int gmx_unused lastCell, bool gmx_unused excludeSubDiagonal, const real gmx_unused *gmx_restrict x_j, real gmx_unused rlist2, float gmx_unused rbb2, int gmx_unused *gmx_restrict numDistanceChecks)
 
void gmx::makeClusterListSimd2xMM (const Grid gmx_unused &jGrid, NbnxnPairlistCpu gmx_unused *nbl, int gmx_unused icluster, int gmx_unused firstCell, int gmx_unused lastCell, bool gmx_unused excludeSubDiagonal, const real gmx_unused *gmx_restrict x_j, real gmx_unused rlist2, float gmx_unused rbb2, int gmx_unused *gmx_restrict numDistanceChecks)