61 size_t const cp_size) {
66 if (m != m_kernel*m_block)
67 throw std::runtime_error(
"Error in gemm_sse(...): m != m_kernel*m_block");
68 if (n != n_kernel*n_block)
69 throw std::runtime_error(
"Error in gemm_sse(...): n != n_kernel*n_block");
71 throw std::runtime_error(
"Error in gemm_sse(...): k != k_kernel");
72 if (ap_size < MM_outer::Pack_type_A::size_packed)
73 throw std::runtime_error(
"Error in gemm_sse(...): "
74 "ap_size < MM_outer::Pack_type_A::size_packed");
75 if (bp_size < MM_outer::Pack_type_B::size_packed)
76 throw std::runtime_error(
"Error in gemm_sse(...): "
77 "bp_size < MM_outer::Pack_type_B::size_packed");
78 if (cp_size < MM_outer::Pack_type_C::size_packed)
79 throw std::runtime_error(
"Error in gemm_sse(...): "
80 "cp_size < MM_outer::Pack_type_C::size_packed");
81 MM_outer::Pack_type_C::template pack<Ordering_col_wise>( C, C_packed, m, n);
82 MM_outer::Pack_type_A::template pack<Ordering_col_wise>(
A, A_packed, m, k);
83 MM_outer::Pack_type_B::template pack<Ordering_col_wise>(
B, B_packed, k, n);
84 MM_outer::exec(&A_packed, &B_packed, C_packed);
85 MM_outer::Pack_type_C::template unpack<Ordering_col_wise>(C, C_packed, m, n);
static void gemm_sse(real const *const A, real const *const B, real *C, size_t const m, size_t const n, size_t const k, real *A_packed, real *B_packed, real *C_packed, size_t const ap_size, size_t const bp_size, size_t const cp_size)
Definition gemm_sse.h:50