GQCP
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
GQCP::DenseVectorizer< A > Class Template Reference

#include <DenseVectorizer.hpp>

Collaboration diagram for GQCP::DenseVectorizer< A >:
Collaboration graph

Public Member Functions

 DenseVectorizer (const std::array< size_t, A > &dimensions, const Ordering ordering=Ordering::ColumnMajor)
 
 DenseVectorizer ()
 
size_t offset (const std::array< size_t, A > &indices) const
 
size_t dimension (const size_t axis) const
 
const std::array< size_t, A > & dimensions () const
 
size_t numberOfAxes () const
 
size_t numberOfElements () const
 
size_t stride (const size_t axis) const
 
const std::array< size_t, A > & strides () const
 

Static Public Attributes

static constexpr auto NumberOfAxes = A
 

Detailed Description

template<size_t A>
class GQCP::DenseVectorizer< A >

A class that takes care of mapping indices related to dense axes to vector indices.

Template Parameters
AThe number of axes supported by the vectorizer.

Constructor & Destructor Documentation

◆ DenseVectorizer() [1/2]

template<size_t A>
GQCP::DenseVectorizer< A >::DenseVectorizer ( const std::array< size_t, A > &  dimensions,
const Ordering  ordering = Ordering::ColumnMajor 
)
inline

Initialize a DenseVectorizer from axis dimensions and an ordering type.

Parameters
dimensionsThe dimensions of each axis.
orderingThe ordering of the axes.

◆ DenseVectorizer() [2/2]

template<size_t A>
GQCP::DenseVectorizer< A >::DenseVectorizer ( )
inline

The default constructor.

Member Function Documentation

◆ dimension()

template<size_t A>
size_t GQCP::DenseVectorizer< A >::dimension ( const size_t  axis) const
inline
Parameters
axisAn axis number.
Returns
The dimension of the given axis.

◆ dimensions()

template<size_t A>
const std::array< size_t, A > & GQCP::DenseVectorizer< A >::dimensions ( ) const
inline
Returns
The dimensions of each axis.

◆ numberOfAxes()

template<size_t A>
size_t GQCP::DenseVectorizer< A >::numberOfAxes ( ) const
inline
Returns
The number of axes for this vectorizer.

◆ numberOfElements()

template<size_t A>
size_t GQCP::DenseVectorizer< A >::numberOfElements ( ) const
inline
Returns
The number of elements that can be described by this vectorizer.

◆ offset()

template<size_t A>
size_t GQCP::DenseVectorizer< A >::offset ( const std::array< size_t, A > &  indices) const
inline

MARK: Element access Calculate the 1-dimensional offset number (also called: address, contiguous index) corresponding to the given indices that specify coordinates for each axis.

Parameters
indicesA list of indices, where each entry corresponds to the coordinate of each axis.
Returns
The 1-dimensional offset number.

◆ stride()

template<size_t A>
size_t GQCP::DenseVectorizer< A >::stride ( const size_t  axis) const
inline
Parameters
axisAn axis number.
Returns
The stride of the given axis.

◆ strides()

template<size_t A>
const std::array< size_t, A > & GQCP::DenseVectorizer< A >::strides ( ) const
inline
Returns
The strides associated to each axis.

Member Data Documentation

◆ NumberOfAxes

template<size_t A>
constexpr auto GQCP::DenseVectorizer< A >::NumberOfAxes = A
staticconstexpr

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