Skip to content

Commit 5ea1d00

Browse files
committed
Fix computation of uplo in LAPACKE_xlarfb
The shape of V depends on how the vectors are stored, not from which side the block reflector is applied. Fixes #877
1 parent f92afd2 commit 5ea1d00

File tree

8 files changed

+8
-8
lines changed

8 files changed

+8
-8
lines changed

LAPACKE/src/lapacke_clarfb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
5858

5959
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6060
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
61-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
61+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6262

6363
if( ( col && k > nrows_v ) || ( !col && k > ncols_v ) ) {
6464
LAPACKE_xerbla( "LAPACKE_clarfb", -8 );

LAPACKE/src/lapacke_clarfb_work.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ lapack_int LAPACKE_clarfb_work( int matrix_layout, char side, char trans,
6060

6161
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6262
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
63-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
63+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6464

6565
ldc_t = MAX(1,m);
6666
ldt_t = MAX(1,k);

LAPACKE/src/lapacke_dlarfb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ lapack_int LAPACKE_dlarfb( int matrix_layout, char side, char trans, char direct
5757

5858
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
5959
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
60-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
60+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6161

6262
if( ( col && k > nrows_v ) || ( !col && k > ncols_v ) ) {
6363
LAPACKE_xerbla( "LAPACKE_dlarfb", -8 );

LAPACKE/src/lapacke_dlarfb_work.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ lapack_int LAPACKE_dlarfb_work( int matrix_layout, char side, char trans,
5959

6060
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6161
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
62-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
62+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6363

6464
ldc_t = MAX(1,m);
6565
ldt_t = MAX(1,k);

LAPACKE/src/lapacke_slarfb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ lapack_int LAPACKE_slarfb( int matrix_layout, char side, char trans, char direct
5757

5858
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
5959
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
60-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
60+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6161

6262
if( ( col && k > nrows_v ) || ( !col && k > ncols_v ) ) {
6363
LAPACKE_xerbla( "LAPACKE_slarfb", -8 );

LAPACKE/src/lapacke_slarfb_work.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ lapack_int LAPACKE_slarfb_work( int matrix_layout, char side, char trans,
5959

6060
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6161
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
62-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
62+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6363

6464
ldc_t = MAX(1,m);
6565
ldt_t = MAX(1,k);

LAPACKE/src/lapacke_zlarfb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ lapack_int LAPACKE_zlarfb( int matrix_layout, char side, char trans, char direct
5858

5959
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6060
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
61-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
61+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6262

6363
if( ( col && k > nrows_v ) || ( !col && k > ncols_v ) ) {
6464
LAPACKE_xerbla( "LAPACKE_zlarfb", -8 );

LAPACKE/src/lapacke_zlarfb_work.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ lapack_int LAPACKE_zlarfb_work( int matrix_layout, char side, char trans,
6060

6161
nrows_v = ( col && left ) ? m : ( ( col && !left ) ? n : ( !col ? k : 1) );
6262
ncols_v = ( !col && left ) ? m : ( ( !col && !left ) ? n : ( col ? k : 1 ) );
63-
uplo = ( ( left && col ) || !( left || col ) ) ? 'l' : 'u';
63+
uplo = ( ( forward && col ) || !( forward || col ) ) ? 'l' : 'u';
6464

6565
ldc_t = MAX(1,m);
6666
ldt_t = MAX(1,k);

0 commit comments

Comments
 (0)