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.
 

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