1 #ifndef GSKS_REF_MRXNR_HPP 2 #define GSKS_REF_MRXNR_HPP 4 #include <KernelMatrix.hpp> 12 template<
int MR,
int NR,
typename T>
15 inline void operator()
29 T c_reg[ MR * NR ] = { 0.0 };
32 for (
int p = 0; p < k; p ++ )
34 for (
int j = 0; j < NR; j ++ )
36 for (
int i = 0; i < MR; i ++ )
37 c_reg[ j * MR + i ] += a[ p * MR + i ] * b[ p * NR + j ];
43 for (
int j = 0; j < NR; j ++ )
45 for (
int i = 0; i < MR; i ++ )
46 c_reg[ j * MR + i ] += c[ j * ldc + i ];
49 switch ( kernel->type )
54 for (
int j = 0; j < NR; j ++ )
57 for (
int i = 0; i < MR; i ++ )
59 c_reg[ j * MR + i ] *= -2.0;
60 c_reg[ j * MR + i ] += a2[ i ] + b2[ j ];
61 c_reg[ j * MR + i ] *= kernel->scal;
62 c_reg[ j * MR + i ] = std::exp( c_reg[ j * MR + i ] );
75 for (
int j = 0; j < NR; j ++ )
77 for (
int i = 0; i < MR; i ++ )
78 u[ i ] += c_reg[ j * MR + i ] * w[ j ];
Definition: gsks_ref_mrxnr.hpp:13
Definition: hmlp_internal.hpp:38