41{
45 double *v_t = NULL, *t_t = NULL, *c_t = NULL;
47
48 LAPACK_dlarfb( &side, &trans, &direct, &storev, &m, &
n, &k, v, &ldv, t,
49 &ldt, c, &ldc, work, &ldwork );
50 if( info < 0 ) {
51 info = info - 1;
52 }
66 ldv_t =
MAX(1,nrows_v);
67
69 info = -14;
71 return info;
72 }
73 if( ldt < k ) {
74 info = -12;
76 return info;
77 }
78 if( ldv < ncols_v ) {
79 info = -10;
81 return info;
82 }
83
84 v_t = (double*)
86 if( v_t == NULL ) {
88 goto exit_level_0;
89 }
91 if( t_t == NULL ) {
93 goto exit_level_1;
94 }
96 if( c_t == NULL ) {
98 goto exit_level_2;
99 }
100
104 &v_t[k], ldv_t );
107 if( k > nrows_v ) {
109 return -8;
110 }
112 ldv, &v_t[nrows_v-k], ldv_t );
114 ldv_t );
119 &v_t[k*ldv_t], ldv_t );
122 if( k > ncols_v ) {
124 return -8;
125 }
127 &v_t[(ncols_v-k)*ldv_t], ldv_t );
129 ldv_t );
130 }
133
134 LAPACK_dlarfb( &side, &trans, &direct, &storev, &m, &
n, &k, v_t, &ldv_t,
135 t_t, &ldt_t, c_t, &ldc_t, work, &ldwork );
136 info = 0;
137
139
141exit_level_2:
143exit_level_1:
145exit_level_0:
148 }
149 } else {
150 info = -1;
152 }
153 return info;
154}
#define LAPACK_dlarfb(...)
#define LAPACKE_malloc(size)
#define LAPACK_TRANSPOSE_MEMORY_ERROR
lapack_logical LAPACKE_lsame(char ca, char cb)
void LAPACKE_xerbla(const char *name, lapack_int info)
void LAPACKE_dtr_trans(int matrix_layout, char uplo, char diag, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
void LAPACKE_dge_trans(int matrix_layout, lapack_int m, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)