#include "gromacs/gpu_utils/hostallocator.h"
#include "gromacs/math/vectypes.h"
-#include "gromacs/simd/simd.h"
#include "gromacs/utility/alignedallocator.h"
#include "gromacs/utility/arrayref.h"
-
struct gmx_domdec_zones_t;
struct nbnxn_atomdata_t;
struct nbnxn_search;
float upper; //!< upper bound
};
-/*! \brief The number of bounds along one dimension of a bounding box */
-static constexpr int c_numBoundingBoxBounds1D = 2;
-
} // namespace Nbnxm
-#ifndef DOXYGEN
-
-/* Bounding box calculations are (currently) always in single precision, so
- * we only need to check for single precision support here.
- * This uses less (cache-)memory and SIMD is faster, at least on x86.
- */
-#if GMX_SIMD4_HAVE_FLOAT
-# define NBNXN_SEARCH_BB_SIMD4 1
-#else
-# define NBNXN_SEARCH_BB_SIMD4 0
-#endif
-
-
-#if NBNXN_SEARCH_BB_SIMD4
-/* Always use 4-wide SIMD for bounding box calculations */
-
-# if !GMX_DOUBLE
-/* Single precision BBs + coordinates, we can also load coordinates with SIMD */
-# define NBNXN_SEARCH_SIMD4_FLOAT_X_BB 1
-# else
-# define NBNXN_SEARCH_SIMD4_FLOAT_X_BB 0
-# endif
-
-/* Store bounding boxes corners as quadruplets: xxxxyyyyzzzz
- *
- * The packed bounding box coordinate stride is always set to 4.
- * With AVX we could use 8, but that turns out not to be faster.
- */
-# define NBNXN_BBXXXX 1
-
-//! The number of bounding boxes in a pack, also the size of a pack along one dimension
-static constexpr int c_packedBoundingBoxesDimSize = GMX_SIMD4_WIDTH;
-
-//! Total number of corners (floats) in a pack of bounding boxes
-static constexpr int c_packedBoundingBoxesSize =
- c_packedBoundingBoxesDimSize*DIM*Nbnxm::c_numBoundingBoxBounds1D;
-
-//! Returns the starting index of the bouding box pack that contains the given cluster
-static constexpr inline int packedBoundingBoxesIndex(int clusterIndex)
-{
- return (clusterIndex/c_packedBoundingBoxesDimSize)*c_packedBoundingBoxesSize;
-}
-
-#else /* NBNXN_SEARCH_BB_SIMD4 */
-
-# define NBNXN_SEARCH_SIMD4_FLOAT_X_BB 0
-# define NBNXN_BBXXXX 0
-
-#endif /* NBNXN_SEARCH_BB_SIMD4 */
-
-#endif // !DOXYGEN
-
namespace Nbnxm
{