146 {
147 typedef blas_data_mapper<ResScalar, Index, ColMajor> ResMapper;
148 ResMapper res(_res, resStride);
149 gebp_kernel<LhsScalar, RhsScalar, Index, ResMapper, mr, nr, ConjLhs, ConjRhs> gebp_kernel;
150
151 Matrix<ResScalar,BlockSize,BlockSize,ColMajor> buffer((internal::constructor_without_unaligned_array_assert()));
152
153
154
156 {
158 const RhsScalar* actual_b = blockB+j*depth;
159
161 gebp_kernel(res.getSubMapper(0, j), blockA, actual_b, j, depth, actualBlockSize, alpha,
162 -1, -1, 0, 0);
163
164
165 {
167 buffer.setZero();
168
169 gebp_kernel(ResMapper(buffer.data(),
BlockSize), blockA+depth*i, actual_b, actualBlockSize, depth, actualBlockSize, alpha,
170 -1, -1, 0, 0);
171
172 for(
Index j1=0; j1<actualBlockSize; ++j1)
173 {
176 UpLo==
Lower ? i1<actualBlockSize : i1<=j1; ++i1)
177 r[i1] += buffer(i1,j1);
178 }
179 }
180
182 {
183 Index i = j+actualBlockSize;
184 gebp_kernel(res.getSubMapper(i, j), blockA+depth*i, actual_b, size-i,
185 depth, actualBlockSize, alpha, -1, -1, 0, 0);
186 }
187 }
188 }
@ Lower
Definition Constants.h:204
@ Upper
Definition Constants.h:206
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:33
constexpr auto size(const C &c) -> decltype(c.size())
Definition span.hpp:183
Traits::ResScalar ResScalar
Definition GeneralMatrixMatrixTriangular.h:140