37 #ifndef TEMPLATE_LAPACK_LARFB_HEADER 38 #define TEMPLATE_LAPACK_LARFB_HEADER 44 ldv,
const Treal *t,
const integer *ldt, Treal *c__,
const integer *ldc,
45 Treal *work,
const integer *ldwork)
137 integer c_dim1, c_offset, t_dim1, t_offset, v_dim1, v_offset, work_dim1,
138 work_offset, i__1, i__2;
142 #define work_ref(a_1,a_2) work[(a_2)*work_dim1 + a_1] 143 #define c___ref(a_1,a_2) c__[(a_2)*c_dim1 + a_1] 144 #define v_ref(a_1,a_2) v[(a_2)*v_dim1 + a_1] 148 v_offset = 1 + v_dim1 * 1;
151 t_offset = 1 + t_dim1 * 1;
154 c_offset = 1 + c_dim1 * 1;
157 work_offset = 1 + work_dim1 * 1;
161 if (*m <= 0 || *n <= 0) {
166 *(
unsigned char *)transt =
'T';
168 *(
unsigned char *)transt =
'N';
189 for (j = 1; j <= i__1; ++j) {
197 &v[v_offset], ldv, &work[work_offset], ldwork);
205 c_b14, &work[work_offset], ldwork);
211 t_offset], ldt, &work[work_offset], ldwork);
221 v_ref(*k + 1, 1), ldv, &work[work_offset], ldwork,
222 &c_b14, &
c___ref(*k + 1, 1), ldc);
228 v[v_offset], ldv, &work[work_offset], ldwork);
233 for (j = 1; j <= i__1; ++j) {
235 for (i__ = 1; i__ <= i__2; ++i__) {
251 for (j = 1; j <= i__1; ++j) {
259 &v[v_offset], ldv, &work[work_offset], ldwork);
267 , ldv, &c_b14, &work[work_offset], ldwork);
273 t_offset], ldt, &work[work_offset], ldwork);
283 work[work_offset], ldwork, &
v_ref(*k + 1, 1), ldv,
284 &c_b14, &
c___ref(1, *k + 1), ldc);
290 v[v_offset], ldv, &work[work_offset], ldwork);
295 for (j = 1; j <= i__1; ++j) {
297 for (i__ = 1; i__ <= i__2; ++i__) {
321 for (j = 1; j <= i__1; ++j) {
330 &
v_ref(*m - *k + 1, 1), ldv, &work[work_offset],
338 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
339 work[work_offset], ldwork);
345 t_offset], ldt, &work[work_offset], ldwork);
355 v[v_offset], ldv, &work[work_offset], ldwork, &
356 c_b14, &c__[c_offset], ldc)
363 v_ref(*m - *k + 1, 1), ldv, &work[work_offset],
369 for (j = 1; j <= i__1; ++j) {
371 for (i__ = 1; i__ <= i__2; ++i__) {
388 for (j = 1; j <= i__1; ++j) {
397 &
v_ref(*n - *k + 1, 1), ldv, &work[work_offset],
405 c_b14, &c__[c_offset], ldc, &v[v_offset], ldv, &
406 c_b14, &work[work_offset], ldwork);
412 t_offset], ldt, &work[work_offset], ldwork);
422 work[work_offset], ldwork, &v[v_offset], ldv, &
423 c_b14, &c__[c_offset], ldc)
430 v_ref(*n - *k + 1, 1), ldv, &work[work_offset],
436 for (j = 1; j <= i__1; ++j) {
438 for (i__ = 1; i__ <= i__2; ++i__) {
465 for (j = 1; j <= i__1; ++j) {
473 v[v_offset], ldv, &work[work_offset], ldwork);
481 c_b14, &work[work_offset], ldwork);
487 t_offset], ldt, &work[work_offset], ldwork);
497 v_ref(1, *k + 1), ldv, &work[work_offset], ldwork,
498 &c_b14, &
c___ref(*k + 1, 1), ldc);
504 &v[v_offset], ldv, &work[work_offset], ldwork);
509 for (j = 1; j <= i__1; ++j) {
511 for (i__ = 1; i__ <= i__2; ++i__) {
527 for (j = 1; j <= i__1; ++j) {
535 v[v_offset], ldv, &work[work_offset], ldwork);
543 c_b14, &work[work_offset], ldwork);
549 t_offset], ldt, &work[work_offset], ldwork);
559 c_b25, &work[work_offset], ldwork, &
v_ref(1, *k +
560 1), ldv, &c_b14, &
c___ref(1, *k + 1), ldc);
566 &v[v_offset], ldv, &work[work_offset], ldwork);
571 for (j = 1; j <= i__1; ++j) {
573 for (i__ = 1; i__ <= i__2; ++i__) {
597 for (j = 1; j <= i__1; ++j) {
606 v_ref(1, *m - *k + 1), ldv, &work[work_offset],
614 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
615 work[work_offset], ldwork);
621 t_offset], ldt, &work[work_offset], ldwork);
631 v_offset], ldv, &work[work_offset], ldwork, &
632 c_b14, &c__[c_offset], ldc);
638 &
v_ref(1, *m - *k + 1), ldv, &work[work_offset],
644 for (j = 1; j <= i__1; ++j) {
646 for (i__ = 1; i__ <= i__2; ++i__) {
663 for (j = 1; j <= i__1; ++j) {
672 v_ref(1, *n - *k + 1), ldv, &work[work_offset],
680 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
681 work[work_offset], ldwork);
687 t_offset], ldt, &work[work_offset], ldwork);
697 c_b25, &work[work_offset], ldwork, &v[v_offset],
698 ldv, &c_b14, &c__[c_offset], ldc);
704 &
v_ref(1, *n - *k + 1), ldv, &work[work_offset],
710 for (j = 1; j <= i__1; ++j) {
712 for (i__ = 1; i__ <= i__2; ++i__) {
int integer
Definition: template_blas_common.h:40
int template_blas_trmm(const char *side, const char *uplo, const char *transa, const char *diag, const integer *m, const integer *n, const Treal *alpha, const Treal *a, const integer *lda, Treal *b, const integer *ldb)
Definition: template_blas_trmm.h:43
#define work_ref(a_1, a_2)
int template_lapack_larfb(const char *side, const char *trans, const char *direct, const char *storev, const integer *m, const integer *n, const integer *k, const Treal *v, const integer *ldv, const Treal *t, const integer *ldt, Treal *c__, const integer *ldc, Treal *work, const integer *ldwork)
Definition: template_lapack_larfb.h:42
side
Definition: Matrix.h:75
int template_blas_copy(const integer *n, const Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_copy.h:42
#define c___ref(a_1, a_2)
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:43
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:46