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 > Class Template Reference

Template for for translations between unpacked and packed matrix storage. More...

#include <mm_kernel_outer_A.h>

List of all members.

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

Detailed Description

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:


Member Function Documentation

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

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

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


Member Data Documentation

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 >::cols_kernel = T_pack_type_kernel::cols [static, private]
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 >
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]
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.)


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

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1