@@ -74,11 +74,10 @@ lapack_int LAPACKE_dormbr_work( int matrix_layout, char vect, char side,
7474 }
7575 /* Allocate memory for temporary array(s) */
7676 if ( LAPACKE_lsame ( vect , 'q' ) ) {
77- a_t = (double * )LAPACKE_malloc ( sizeof (double ) * lda_t * k );
77+ a_t = (double * )LAPACKE_malloc ( sizeof (double ) * lda_t * MAX ( 1 , k ) );
7878 } else {
79- a_t = (double * )LAPACKE_malloc ( sizeof (double ) * lda_t * nq );
79+ a_t = (double * )LAPACKE_malloc ( sizeof (double ) * lda_t * MAX ( 1 , nq ) );
8080 }
81-
8281 if ( a_t == NULL ) {
8382 info = LAPACK_TRANSPOSE_MEMORY_ERROR ;
8483 goto exit_level_0 ;
@@ -89,11 +88,7 @@ lapack_int LAPACKE_dormbr_work( int matrix_layout, char vect, char side,
8988 goto exit_level_1 ;
9089 }
9190 /* Transpose input matrices */
92- if ( LAPACKE_lsame ( vect , 'q' ) ) {
93- LAPACKE_dge_trans ( matrix_layout , nq , k , a , lda , a_t , lda_t );
94- } else {
95- LAPACKE_dge_trans ( matrix_layout , k , nq , a , lda , a_t , lda_t );
96- }
91+ LAPACKE_dge_trans ( matrix_layout , r , MIN (nq ,k ), a , lda , a_t , lda_t );
9792 LAPACKE_dge_trans ( matrix_layout , m , n , c , ldc , c_t , ldc_t );
9893 /* Call LAPACK function and adjust info */
9994 LAPACK_dormbr ( & vect , & side , & trans , & m , & n , & k , a_t , & lda_t , tau , c_t ,
0 commit comments