gem5 v24.0.0.0
|
Backing store for matrices. More...
#include <matrix.hh>
Public Types | |
using | Container = std::array<uint8_t, LINEAR_SIZE> |
using | MyClass = MatStore<X, Y> |
Public Member Functions | |
MatStore () | |
Constructor. | |
MatStore (const MatStore &)=default | |
void | zero () |
template<size_t X2, size_t Y2> | |
bool | operator== (const MatStore< X2, Y2 > &that) const |
Equality operator. | |
template<size_t X2, size_t Y2> | |
bool | operator!= (const MatStore< X2, Y2 > &that) const |
Inequality operator. | |
template<typename ElemType > | |
auto | asTile (size_t index) |
template<typename ElemType > | |
auto | asHSlice (size_t row_idx) |
template<typename ElemType > | |
auto | asVSlice (size_t col_idx) |
MyClass & | operator= (const MyClass &that) |
Assignment operators. | |
Static Public Member Functions | |
static constexpr size_t | xSize () |
static constexpr size_t | ySize () |
static constexpr size_t | linearSize () |
Public Attributes | |
friend | ParseParam< MatStore< X, Y > > |
Used for serialization/unserialisation. | |
friend | ShowParam< MatStore< X, Y > > |
Private Member Functions | |
template<typename ElemType > | |
const ElemType * | rawPtr () const |
Get pointer to the raw data. | |
template<typename ElemType > | |
ElemType * | rawPtr () |
Private Attributes | |
Container | container |
Static Private Attributes | |
static constexpr size_t | LINEAR_SIZE = X * Y |
Friends | |
template<typename , typename , bool > | |
class | HorizontalSlice |
template<typename , typename , bool > | |
class | VerticalSlice |
std::ostream & | operator<< (std::ostream &os, const MatStore< X, Y > &v) |
Backing store for matrices.
This class provides the backing store for matricies, and is largely a wrapper around an std::array of bytes. This class provides some basic interfaces for assignment (copy the backing store) and comparison, and provides the interface for generating views onto the backing store. It is these views that are intended to be used by the end-user of the matrix in most cases.
This class is also responsible for handling the serialisation/unserialisation of matrix registers (see ShowParam and ParseParam).
X | X size in bytes (number of columns). |
Y | Y size in bytes (number of rows). |
using gem5::MatStore< X, Y >::Container = std::array<uint8_t, LINEAR_SIZE> |
using gem5::MatStore< X, Y >::MyClass = MatStore<X, Y> |
|
inline |
|
default |
|
inline |
Definition at line 468 of file matrix.hh.
References gem5::MatStore< X, Y >::HorizontalSlice.
Referenced by TEST().
|
inline |
Definition at line 461 of file matrix.hh.
References gem5::MipsISA::index.
Referenced by TwoDifferentMatRegs::SetUp(), TEST(), TEST(), TEST(), TEST(), TEST(), and TEST().
|
inline |
Definition at line 475 of file matrix.hh.
References gem5::MatStore< X, Y >::VerticalSlice.
Referenced by TEST().
|
inlinestaticconstexpr |
Definition at line 393 of file matrix.hh.
References gem5::MatStore< X, Y >::LINEAR_SIZE.
Referenced by TEST().
|
inline |
Inequality operator.
Required to compare thread contexts.
Definition at line 442 of file matrix.hh.
References gem5::MatStore< X, Y >::operator==().
|
inline |
Assignment operators.
From MatStore
Definition at line 417 of file matrix.hh.
References gem5::MatStore< X, Y >::container, and gem5::MatStore< X, Y >::LINEAR_SIZE.
|
inline |
Equality operator.
Required to compare thread contexts.
Definition at line 431 of file matrix.hh.
References gem5::MatStore< X, Y >::container, and gem5::MatStore< X, Y >::LINEAR_SIZE.
Referenced by gem5::MatStore< X, Y >::operator!=().
|
inlineprivate |
Definition at line 456 of file matrix.hh.
References gem5::MatStore< X, Y >::container.
|
inlineprivate |
Get pointer to the raw data.
Definition at line 450 of file matrix.hh.
References gem5::MatStore< X, Y >::container.
|
inlinestaticconstexpr |
Definition at line 391 of file matrix.hh.
References gem5::X86ISA::X.
|
inlinestaticconstexpr |
|
inline |
Definition at line 408 of file matrix.hh.
References gem5::MatStore< X, Y >::container, and gem5::MatStore< X, Y >::LINEAR_SIZE.
Referenced by TEST().
|
friend |
Definition at line 387 of file matrix.hh.
Referenced by gem5::MatStore< X, Y >::asHSlice().
|
friend |
Definition at line 388 of file matrix.hh.
Referenced by gem5::MatStore< X, Y >::asVSlice().
|
private |
Definition at line 399 of file matrix.hh.
Referenced by gem5::MatStore< X, Y >::operator=(), gem5::MatStore< X, Y >::operator==(), gem5::MatStore< X, Y >::rawPtr(), gem5::MatStore< X, Y >::rawPtr(), gem5::ShowParam< MatStore< X, Y > >::show(), and gem5::MatStore< X, Y >::zero().
|
staticconstexprprivate |
Definition at line 385 of file matrix.hh.
Referenced by gem5::MatStore< X, Y >::linearSize(), gem5::MatStore< X, Y >::operator=(), gem5::MatStore< X, Y >::operator==(), and gem5::MatStore< X, Y >::zero().
friend gem5::MatStore< X, Y >::ParseParam< MatStore< X, Y > > |
friend gem5::MatStore< X, Y >::ShowParam< MatStore< X, Y > > |