35 #ifndef TEMPLATE_LAPACK_LARFB_HEADER 36 #define TEMPLATE_LAPACK_LARFB_HEADER 42 ldv,
const Treal *t,
const integer *ldt, Treal *c__,
const integer *ldc,
43 Treal *work,
const integer *ldwork)
135 integer c_dim1, c_offset, t_dim1, t_offset, v_dim1, v_offset, work_dim1,
136 work_offset, i__1, i__2;
140 #define work_ref(a_1,a_2) work[(a_2)*work_dim1 + a_1] 141 #define c___ref(a_1,a_2) c__[(a_2)*c_dim1 + a_1] 142 #define v_ref(a_1,a_2) v[(a_2)*v_dim1 + a_1] 146 v_offset = 1 + v_dim1 * 1;
149 t_offset = 1 + t_dim1 * 1;
152 c_offset = 1 + c_dim1 * 1;
155 work_offset = 1 + work_dim1 * 1;
159 if (*m <= 0 || *n <= 0) {
164 *(
unsigned char *)transt =
'T';
166 *(
unsigned char *)transt =
'N';
187 for (j = 1; j <= i__1; ++j) {
195 &v[v_offset], ldv, &work[work_offset], ldwork);
203 c_b14, &work[work_offset], ldwork);
209 t_offset], ldt, &work[work_offset], ldwork);
219 v_ref(*k + 1, 1), ldv, &work[work_offset], ldwork,
220 &c_b14, &
c___ref(*k + 1, 1), ldc);
226 v[v_offset], ldv, &work[work_offset], ldwork);
231 for (j = 1; j <= i__1; ++j) {
233 for (i__ = 1; i__ <= i__2; ++i__) {
249 for (j = 1; j <= i__1; ++j) {
257 &v[v_offset], ldv, &work[work_offset], ldwork);
265 , ldv, &c_b14, &work[work_offset], ldwork);
271 t_offset], ldt, &work[work_offset], ldwork);
281 work[work_offset], ldwork, &
v_ref(*k + 1, 1), ldv,
282 &c_b14, &
c___ref(1, *k + 1), ldc);
288 v[v_offset], ldv, &work[work_offset], ldwork);
293 for (j = 1; j <= i__1; ++j) {
295 for (i__ = 1; i__ <= i__2; ++i__) {
319 for (j = 1; j <= i__1; ++j) {
328 &
v_ref(*m - *k + 1, 1), ldv, &work[work_offset],
336 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
337 work[work_offset], ldwork);
343 t_offset], ldt, &work[work_offset], ldwork);
353 v[v_offset], ldv, &work[work_offset], ldwork, &
354 c_b14, &c__[c_offset], ldc)
361 v_ref(*m - *k + 1, 1), ldv, &work[work_offset],
367 for (j = 1; j <= i__1; ++j) {
369 for (i__ = 1; i__ <= i__2; ++i__) {
386 for (j = 1; j <= i__1; ++j) {
395 &
v_ref(*n - *k + 1, 1), ldv, &work[work_offset],
403 c_b14, &c__[c_offset], ldc, &v[v_offset], ldv, &
404 c_b14, &work[work_offset], ldwork);
410 t_offset], ldt, &work[work_offset], ldwork);
420 work[work_offset], ldwork, &v[v_offset], ldv, &
421 c_b14, &c__[c_offset], ldc)
428 v_ref(*n - *k + 1, 1), ldv, &work[work_offset],
434 for (j = 1; j <= i__1; ++j) {
436 for (i__ = 1; i__ <= i__2; ++i__) {
463 for (j = 1; j <= i__1; ++j) {
471 v[v_offset], ldv, &work[work_offset], ldwork);
479 c_b14, &work[work_offset], ldwork);
485 t_offset], ldt, &work[work_offset], ldwork);
495 v_ref(1, *k + 1), ldv, &work[work_offset], ldwork,
496 &c_b14, &
c___ref(*k + 1, 1), ldc);
502 &v[v_offset], ldv, &work[work_offset], ldwork);
507 for (j = 1; j <= i__1; ++j) {
509 for (i__ = 1; i__ <= i__2; ++i__) {
525 for (j = 1; j <= i__1; ++j) {
533 v[v_offset], ldv, &work[work_offset], ldwork);
541 c_b14, &work[work_offset], ldwork);
547 t_offset], ldt, &work[work_offset], ldwork);
557 c_b25, &work[work_offset], ldwork, &
v_ref(1, *k +
558 1), ldv, &c_b14, &
c___ref(1, *k + 1), ldc);
564 &v[v_offset], ldv, &work[work_offset], ldwork);
569 for (j = 1; j <= i__1; ++j) {
571 for (i__ = 1; i__ <= i__2; ++i__) {
595 for (j = 1; j <= i__1; ++j) {
604 v_ref(1, *m - *k + 1), ldv, &work[work_offset],
612 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
613 work[work_offset], ldwork);
619 t_offset], ldt, &work[work_offset], ldwork);
629 v_offset], ldv, &work[work_offset], ldwork, &
630 c_b14, &c__[c_offset], ldc);
636 &
v_ref(1, *m - *k + 1), ldv, &work[work_offset],
642 for (j = 1; j <= i__1; ++j) {
644 for (i__ = 1; i__ <= i__2; ++i__) {
661 for (j = 1; j <= i__1; ++j) {
670 v_ref(1, *n - *k + 1), ldv, &work[work_offset],
678 c__[c_offset], ldc, &v[v_offset], ldv, &c_b14, &
679 work[work_offset], ldwork);
685 t_offset], ldt, &work[work_offset], ldwork);
695 c_b25, &work[work_offset], ldwork, &v[v_offset],
696 ldv, &c_b14, &c__[c_offset], ldc);
702 &
v_ref(1, *n - *k + 1), ldv, &work[work_offset],
708 for (j = 1; j <= i__1; ++j) {
710 for (i__ = 1; i__ <= i__2; ++i__) {
int integer
Definition: template_blas_common.h:38
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:41
#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:40
side
Definition: Matrix.h:73
int template_blas_copy(const integer *n, const Treal *dx, const integer *incx, Treal *dy, const integer *incy)
Definition: template_blas_copy.h:40
#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:41
logical template_blas_lsame(const char *ca, const char *cb)
Definition: template_blas_common.cc:44