|
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 |
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 |
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 |
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.)