35 #ifndef TEMPLATE_BLAS_GEMM_HEADER
36 #define TEMPLATE_BLAS_GEMM_HEADER
42 n,
const integer *k,
const Treal *alpha,
const Treal *a,
const integer *lda,
43 const Treal *b,
const integer *ldb,
const Treal *beta, Treal *c__,
47 integer a_dim1, a_offset, b_dim1, b_offset, c_dim1, c_offset, i__1, i__2,
55 #define a_ref(a_1,a_2) a[(a_2)*a_dim1 + a_1]
56 #define b_ref(a_1,a_2) b[(a_2)*b_dim1 + a_1]
57 #define c___ref(a_1,a_2) c__[(a_2)*c_dim1 + a_1]
151 a_offset = 1 + a_dim1 * 1;
154 b_offset = 1 + b_dim1 * 1;
157 c_offset = 1 + c_dim1 * 1;
186 }
else if (*lda <
maxMACRO(1,nrowa)) {
188 }
else if (*ldb <
maxMACRO(1,nrowb)) {
198 if (*m == 0 || *n == 0 || ( (*alpha == 0. || *k == 0) && *beta == 1.) ) {
205 for (j = 1; j <= i__1; ++j) {
207 for (i__ = 1; i__ <= i__2; ++i__) {
215 for (j = 1; j <= i__1; ++j) {
217 for (i__ = 1; i__ <= i__2; ++i__) {
231 for (j = 1; j <= i__1; ++j) {
234 for (i__ = 1; i__ <= i__2; ++i__) {
238 }
else if (*beta != 1.) {
240 for (i__ = 1; i__ <= i__2; ++i__) {
246 for (l = 1; l <= i__2; ++l) {
247 if (
b_ref(l, j) != 0.) {
248 temp = *alpha *
b_ref(l, j);
250 for (i__ = 1; i__ <= i__3; ++i__) {
263 for (j = 1; j <= i__1; ++j) {
265 for (i__ = 1; i__ <= i__2; ++i__) {
268 for (l = 1; l <= i__3; ++l) {
273 c___ref(i__, j) = *alpha * temp;
287 for (j = 1; j <= i__1; ++j) {
290 for (i__ = 1; i__ <= i__2; ++i__) {
294 }
else if (*beta != 1.) {
296 for (i__ = 1; i__ <= i__2; ++i__) {
302 for (l = 1; l <= i__2; ++l) {
303 if (
b_ref(j, l) != 0.) {
304 temp = *alpha *
b_ref(j, l);
306 for (i__ = 1; i__ <= i__3; ++i__) {
319 for (j = 1; j <= i__1; ++j) {
321 for (i__ = 1; i__ <= i__2; ++i__) {
324 for (l = 1; l <= i__3; ++l) {
329 c___ref(i__, j) = *alpha * temp;
int integer
Definition: template_blas_common.h:38
#define maxMACRO(a, b)
Definition: template_blas_common.h:43
int template_blas_erbla(const char *srname, integer *info)
Definition: template_blas_common.cc:144
#define c___ref(a_1, a_2)
bool logical
Definition: template_blas_common.h:39
int template_blas_gemm(const char *transa, const char *transb, const integer *m, const integer *n, const integer *k, const Treal *alpha, const Treal *a, const integer *lda, const Treal *b, const integer *ldb, const Treal *beta, Treal *c__, const integer *ldc)
Definition: template_blas_gemm.h:41
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:44