|
template<template< typename T_ordering > class T_assign, typename T_ordering_matrix > |
static void | exec (typename T_assign< T_ordering_matrix >::PtrType X, typename T_assign< T_ordering_matrix >::PtrTypePacked X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Elaborate function that can be called either to assign to or extract from packed format.
|
|
template<typename T_ordering_matrix > |
static void | pack (real const *const X, real *X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Convenience function for assignments to packed matrix.
|
|
template<typename T_ordering_matrix > |
static void | unpack (real *X, real const *const X_packed, int const rows_total_matrix, int const cols_total_matrix) |
| Convenience function for extracting matrix from packed matrix.
|
|
template<typename T_gemm_kernel, int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block, typename T_pack_type_kernel>
class MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >
Template for for translations between unpacked and packed matrix storage.
Template arguments:
- T_rows_block : number of rows (blocks)
- T_cols_block : number of columns (blocks)
- T_ordering_block : Type that specifies how the matrix blocks are stored
- T_pack_type_kernel : Type specifying how each matrix block should be packed
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<template< typename T_ordering > class T_assign, typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::exec |
( |
typename T_assign< T_ordering_matrix >::PtrType |
X, |
|
|
typename T_assign< T_ordering_matrix >::PtrTypePacked |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Elaborate function that can be called either to assign to or extract from packed format.
Use of types in T_assign automatically sets the const qualifier on the desired argument.
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::pack |
( |
real const *const |
X, |
|
|
real * |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Convenience function for assignments to packed matrix.
The template argument specifies how the original (unpacked) matrix is stored (e.g. column or row wise)
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
template<typename T_ordering_matrix >
static void MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::unpack |
( |
real * |
X, |
|
|
real const *const |
X_packed, |
|
|
int const |
rows_total_matrix, |
|
|
int const |
cols_total_matrix |
|
) |
| |
|
inlinestatic |
Convenience function for extracting matrix from packed matrix.
The template argument specifies how the unpacked matrix is stored (e.g. column or row wise)
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::cols = cols_kernel * T_cols_block |
|
static |
Number of columns in the matrix.
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::rows = rows_kernel * T_rows_block |
|
static |
Number of rows in the matrix.
template<typename T_gemm_kernel , int T_M_block, int T_N_block>
template<int T_rows_block, int T_cols_block, typename T_ordering_block , typename T_pack_type_kernel >
unsigned int const MM_kernel_outer_A< T_gemm_kernel, T_M_block, T_N_block >::Pack< T_rows_block, T_cols_block, T_ordering_block, T_pack_type_kernel >::size_packed = T_rows_block * T_cols_block * T_pack_type_kernel::size_packed |
|
static |
Memory needed to store the matrix in packed form.
(Can be used in the allocation of memory for the packed matrix.)