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>
int occ::mults::InteractionTensorBatch< MaxL, BatchSize >::entries = nhermsum(MaxL)
staticconstexpr

◆ total_size

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

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