occ
Loading...
Searching...
No Matches
interaction_tensor_simd.h File Reference
#include <occ/ints/rints.h>
#include <occ/mults/cartesian_kernels.h>
#include <cmath>
#include <cstring>
Include dependency graph for interaction_tensor_simd.h:

Classes

struct  occ::mults::InteractionTensorBatch< MaxL, BatchSize >
 SOA interaction tensor batch: BatchSize tensors stored interleaved. More...

Namespaces

namespace  occ
namespace  occ::mults

Macros

#define MULTS_HAS_NEON   0
#define MULTS_HAS_AVX2   0
#define MULTS_SIMD_WIDTH   2

Functions

template<int MaxL, int BatchSize>
void occ::mults::compute_interaction_tensor_batch_scalar (const double *__restrict__ Rx, const double *__restrict__ Ry, const double *__restrict__ Rz, InteractionTensorBatch< MaxL, BatchSize > &T)
template<int MaxL>
void occ::mults::compute_interaction_tensor_batch (const double *__restrict__ Rx, const double *__restrict__ Ry, const double *__restrict__ Rz, InteractionTensorBatch< MaxL, simd_batch_size > &T)
template<int Order, int BatchSize>
double occ::mults::contract_ranked_from_batch (const CartesianMultipole< 4 > &A, int rankA, const InteractionTensorBatch< Order, BatchSize > &T, int b, const CartesianMultipole< 4 > &B, int rankB)
 Contract one pair from a batch tensor with precomputed multipoles.
constexpr int occ::mults::nherm (int L)
constexpr int occ::mults::nhermsum (int L)
OCC_GPU_ENABLED OCC_GPU_INLINE constexpr int occ::mults::hermite_index (int t, int u, int v)

Variables

constexpr int occ::mults::simd_batch_size = MULTS_SIMD_WIDTH
 Batch size for SIMD T-tensor computation.

Macro Definition Documentation

◆ MULTS_HAS_AVX2

#define MULTS_HAS_AVX2   0

◆ MULTS_HAS_NEON

#define MULTS_HAS_NEON   0

◆ MULTS_SIMD_WIDTH

#define MULTS_SIMD_WIDTH   2