STORMM Source Documentation
Loading...
Searching...
No Matches
stormm::stmath::GenericRdSubstrate< T > Struct Template Reference

Collect pointers to data subject to reduction operations. Reductions can happen on up to three data sets at once, with one consistent fixed-precision scaling factor (if fixed-precision applies). More...

#include <reduction_abstracts.h>

Public Member Functions

 GenericRdSubstrate (const T *x_read_in, double *x_buffer_in, T *x_write_in, const int scale_bits_in=0)
 The constructor can take up to three buffers, each with possible overflows to accommodate extended fixed-precision formats.
 
 GenericRdSubstrate (const T *x_read_in, const T *y_read_in, const T *z_read_in, double *x_buffer_in, double *y_buffer_in, double *z_buffer_in, T *x_write_in, T *y_write_in, T *z_write_in, const int scale_bits_in=0)
 
 GenericRdSubstrate (const T *x_read_in, const int *x_read_ovrf_in, double *x_buffer_in, T *x_write_in, int *x_write_ovrf_in, const int scale_bits_in=0)
 
 GenericRdSubstrate (const T *x_read_in, const int *x_read_ovrf_in, const T *y_read_in, const int *y_read_ovrf_in, const T *z_read_in, const int *z_read_ovrf_in, double *x_buffer_in, double *y_buffer_in, double *z_buffer_in, T *x_write_in, int *x_write_ovrf_in, T *y_write_in, int *y_write_ovrf_in, T *z_write_in, int *z_write_ovrf_in, const int scale_bits_in=0)
 
 GenericRdSubstrate (const GenericRdSubstrate &original)=default
 Take the typical copy and move constructors for an abstract with const elements.
 
 GenericRdSubstrate (GenericRdSubstrate &&original)=default
 

Public Attributes

const int dim
 
const int scale_bits
 The number of bits after the decimal in fixed-precision data.
 
const double fp_scaling
 Scaling factor for fixed-precision data.
 
const double inv_fp_scaling
 Inverse of the scaling factor for fixed-precision data.
 
const T * x_read
 Read-only arrays of reducible data for the 1st dimension.
 
const T * y_read
 Read-only arrays of reducible data for the 2nd dimension.
 
const T * z_read
 Read-only arrays of reducible data for the 3rd dimension.
 
const int * x_read_ovrf
 
const int * y_read_ovrf
 
const int * z_read_ovrf
 
double * x_buffer
 Buffer for work unit sums along the 1st dimension.
 
double * y_buffer
 Buffer for work unit sums along the 2nd dimension.
 
double * z_buffer
 Buffer for work unit sums along the 3rd dimension.
 
T * x_write
 Array accepting results of scattering in the 1st dimension.
 
T * y_write
 Array accepting results of scattering in the 2nd dimension.
 
T * z_write
 Array accepting results of scattering in the 3rd dimension.
 
int * x_write_ovrf
 
int * y_write_ovrf
 
int * z_write_ovrf
 

Detailed Description

template<typename T>
struct stormm::stmath::GenericRdSubstrate< T >

Collect pointers to data subject to reduction operations. Reductions can happen on up to three data sets at once, with one consistent fixed-precision scaling factor (if fixed-precision applies).

Constructor & Destructor Documentation

◆ GenericRdSubstrate()

template<typename T>
stormm::stmath::GenericRdSubstrate< T >::GenericRdSubstrate ( const T * x_read_in,
double * x_buffer_in,
T * x_write_in,
const int scale_bits_in = 0 )

The constructor can take up to three buffers, each with possible overflows to accommodate extended fixed-precision formats.

Overloaded:

  • Prepare to reduce one array of standard data
  • Prepare to reduce three arrays of standard data
  • Accommodate extended fixed-precision formats

Member Data Documentation

◆ dim

template<typename T>
const int stormm::stmath::GenericRdSubstrate< T >::dim

The number of dimensions to the data involved in the reduction, i.e. X/Y/Z coordinate reduction has dimension 3

◆ x_read_ovrf

template<typename T>
const int* stormm::stmath::GenericRdSubstrate< T >::x_read_ovrf

Overflow arrays for extended fixed-precision format in the 1st dimension of reducible data

◆ x_write_ovrf

template<typename T>
int* stormm::stmath::GenericRdSubstrate< T >::x_write_ovrf

Overflow arrays for scatter results in the 1st dimension, when extended fixed-precision representations are in effect

◆ y_read_ovrf

template<typename T>
const int* stormm::stmath::GenericRdSubstrate< T >::y_read_ovrf

Overflow arrays for extended fixed-precision format in the 2nd dimension of reducible data

◆ y_write_ovrf

template<typename T>
int* stormm::stmath::GenericRdSubstrate< T >::y_write_ovrf

Overflow arrays for scatter results in the 2nd dimension, when extended fixed-precision representations are in effect

◆ z_read_ovrf

template<typename T>
const int* stormm::stmath::GenericRdSubstrate< T >::z_read_ovrf

Overflow arrays for extended fixed-precision format in the 3rd dimension of reducible data

◆ z_write_ovrf

template<typename T>
int* stormm::stmath::GenericRdSubstrate< T >::z_write_ovrf

Overflow arrays for scatter results in the 3rd dimension, when extended fixed-precision representations are in effect


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