occ
Loading...
Searching...
No Matches
occ::mults::InteractionTensorBatch< MaxL, BatchSize > Struct Template Reference

SOA interaction tensor batch: BatchSize tensors stored interleaved. More...

#include <interaction_tensor_simd.h>

Public Member Functions

 InteractionTensorBatch ()
 
double & operator() (int t, int u, int v, int b)
 
double operator() (int t, int u, int v, int b) const
 
double * slot (int t, int u, int v)
 Pointer to the BatchSize-wide slot for a given (t,u,v).
 
const double * slot (int t, int u, int v) const
 

Public Attributes

double data [total_size]
 

Static Public Attributes

static constexpr int entries = nhermsum(MaxL)
 
static constexpr int total_size = entries * BatchSize
 

Detailed Description

template<int MaxL, int BatchSize = simd_batch_size>
struct occ::mults::InteractionTensorBatch< MaxL, BatchSize >

SOA interaction tensor batch: BatchSize tensors stored interleaved.

Layout: data[hermite_index(t,u,v) * BatchSize + batch_idx] This enables vectorized load/store across the batch dimension.

Template Parameters
MaxLMaximum total rank
BatchSizeNumber of tensors in the batch

Constructor & Destructor Documentation

◆ InteractionTensorBatch()

template<int MaxL, int BatchSize = simd_batch_size>
occ::mults::InteractionTensorBatch< MaxL, BatchSize >::InteractionTensorBatch ( )
inline

Member Function Documentation

◆ operator()() [1/2]

template<int MaxL, int BatchSize = simd_batch_size>
double & occ::mults::InteractionTensorBatch< MaxL, BatchSize >::operator() ( int  t,
int  u,
int  v,
int  b 
)
inline

◆ operator()() [2/2]

template<int MaxL, int BatchSize = simd_batch_size>
double occ::mults::InteractionTensorBatch< MaxL, BatchSize >::operator() ( int  t,
int  u,
int  v,
int  b 
) const
inline

◆ slot() [1/2]

template<int MaxL, int BatchSize = simd_batch_size>
double * occ::mults::InteractionTensorBatch< MaxL, BatchSize >::slot ( int  t,
int  u,
int  v 
)
inline

Pointer to the BatchSize-wide slot for a given (t,u,v).

◆ slot() [2/2]

template<int MaxL, int BatchSize = simd_batch_size>
const double * occ::mults::InteractionTensorBatch< MaxL, BatchSize >::slot ( int  t,
int  u,
int  v 
) const
inline

Member Data Documentation

◆ data

template<int MaxL, int BatchSize = simd_batch_size>
double occ::mults::InteractionTensorBatch< MaxL, BatchSize >::data[total_size]

◆ entries

template<int MaxL, int BatchSize = simd_batch_size>
constexpr int occ::mults::InteractionTensorBatch< MaxL, BatchSize >::entries = nhermsum(MaxL)
staticconstexpr

◆ total_size

template<int MaxL, int BatchSize = simd_batch_size>
constexpr int occ::mults::InteractionTensorBatch< MaxL, BatchSize >::total_size = entries * BatchSize
staticconstexpr

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