Template for for translations between unpacked and packed matrix storage. More...
#include <mm_kernel_outer_A.h>
Classes | |
struct | Assign_to_packed |
struct | Extract_from_packed |
Static Public Member Functions | |
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. | |
Static Public Attributes | |
static int const | rows = rows_kernel * T_rows_block |
Number of rows in the matrix. | |
static int const | cols = cols_kernel * T_cols_block |
Number of columns in the matrix. | |
static unsigned int const | size_packed = T_rows_block * T_cols_block * T_pack_type_kernel::size_packed |
Memory needed to store the matrix in packed form. | |
Static Private Attributes | |
static int const | rows_kernel = T_pack_type_kernel::rows |
static int const | cols_kernel = T_pack_type_kernel::cols |
Template for for translations between unpacked and packed matrix storage.
Template arguments:
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 | |||
) | [inline, static] |
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.
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 | |||
) | [inline, static] |
Convenience function for assignments to packed matrix.
The template argument specifies how the original (unpacked) matrix is stored (e.g. column or row wise)
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 | |||
) | [inline, static] |
Convenience function for extracting matrix from packed matrix.
The template argument specifies how the unpacked matrix is stored (e.g. column or row wise)
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.
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_kernel = T_pack_type_kernel::cols [static, private] |
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.
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_kernel = T_pack_type_kernel::rows [static, private] |
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.)