10 template<
size_t NB,
typename T,
typename TPACK>
20 inline virtual void operator ()
23 size_t k,
size_t pc,
size_t pb,
25 size_t m,
size_t ic,
size_t ib,
36 template<
size_t NB,
typename T,
typename TPACK>
43 inline virtual void operator ()
45 size_t m,
size_t ic,
size_t ib,
46 size_t n,
size_t jc,
size_t jb,
66 template<
int NB,
typename T,
typename TPACK>
77 inline virtual void operator ()
80 size_t k,
size_t pc,
size_t pb,
82 size_t m,
size_t ic,
size_t ib,
94 X += ( ic * ldx + pc );
96 for (
auto i = 0; i < ib; i ++ )
98 x_pntr[ i ] = X + ldx * i;
100 for (
auto i = ib; i < NB; i ++ )
105 for (
auto p = 0; p < pb; p ++ )
107 for (
auto i = 0; i < ib; i ++ )
109 *packX ++ = *x_pntr[ i ] ++;
111 for (
auto i = ib; i < NB; i ++ )
120 X += ( pc * ldx + ic );
122 for (
auto i = 0; i < ib; i ++ )
126 for (
auto i = ib; i < NB; i ++ )
131 for (
auto p = 0; p < pb; p ++ )
133 for (
auto i = 0; i < ib; i ++ )
135 *packX = *x_pntr[ i ];
139 for (
auto i = ib; i < NB; i ++ )
153 template<
size_t NB,
typename T,
typename TPACK>
158 inline virtual void operator ()
160 size_t m,
size_t ic,
size_t ib,
161 size_t n,
size_t jc,
size_t jb,
166 for (
size_t j = 0; j < jb; j ++ )
167 for (
size_t i = 0; i < ib; i ++ )
168 X[ ( jc + j ) * this->cs_c + ( ic + i ) * this->rs_c ]
169 = packX[ j * NB + i ];
174 template<
size_t NB,
typename T,
typename TPACK>
180 inline virtual void Pack
182 size_t m,
size_t ic,
size_t ib,
183 size_t n,
size_t jc,
size_t jb,
187 inline virtual void Unpack
189 size_t m,
size_t ic,
size_t ib,
190 size_t n,
size_t jc,
size_t jb,
197 template<
size_t NB,
typename T,
typename TPACK>
208 inline virtual void Set( T* X,
size_t m,
size_t n,
size_t rs,
size_t cs,
bool trans )
221 inline virtual void Pack
223 size_t m,
size_t ic,
size_t ib,
224 size_t n,
size_t jc,
size_t jb,
231 T *x = X + ic * rs + jc * cs;
236 for (
size_t j = 0; j < jb; j ++ ) x_pntr[ j ] = x + j * cs;
239 for (
size_t i = 0; i < ib; i ++ )
241 for (
size_t j = 0; j < jb; j ++ )
243 *packX ++ = *x_pntr[ j ];
246 for (
size_t j = jb; j < NB; j ++ ) *packX ++ = 0;
252 for (
size_t i = 0; i < ib; i ++ ) x_pntr[ i ] = x + i * rs;
256 for (
size_t j = 0; j < jb; j ++ )
258 for (
size_t i = 0; i < ib; i ++ )
260 *packX ++ = *x_pntr[ i ];
263 for (
size_t i = ib; i < NB; i ++ ) *packX ++ = 0;
268 inline virtual void Unpack
270 size_t m,
size_t ic,
size_t ib,
271 size_t n,
size_t jc,
size_t jb,
278 T *x = X + ic * rs + jc * cs;
283 for (
size_t j = 0; j < jb; j ++ ) x_pntr[ j ] = x + j * cs;
286 for (
size_t i = 0; i < ib; i ++ )
288 for (
size_t j = 0; j < jb; j ++ )
290 *x_pntr[ j ] = *packX ++;
293 for (
size_t j = jb; j < NB; j ++ ) packX ++;
299 for (
size_t i = 0; i < ib; i ++ ) x_pntr[ i ] = x + i * rs;
303 for (
size_t j = 0; j < jb; j ++ )
305 for (
size_t i = 0; i < ib; i ++ )
307 *x_pntr[ i ] = *packX ++;
310 for (
size_t i = ib; i < NB; i ++ ) packX ++;
Definition: packing.hpp:154
Definition: packing.hpp:67
Definition: packing.hpp:37
Definition: packing.hpp:175
Definition: packing.hpp:11
Definition: packing.hpp:198