@@ -51,16 +51,21 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
5151#ifndef LAPACK_DISABLE_NAN_CHECK
5252 if ( LAPACKE_get_nancheck () ) {
5353 /* Optionally check input matrices for NaNs */
54- ncols_v = LAPACKE_lsame ( storev , 'c' ) ? k :
55- ( ( LAPACKE_lsame ( storev , 'r' ) &&
56- LAPACKE_lsame ( side , 'l' ) ) ? m :
57- ( ( LAPACKE_lsame ( storev , 'r' ) &&
58- LAPACKE_lsame ( side , 'r' ) ) ? n : 1 ) );
59- nrows_v = ( LAPACKE_lsame ( storev , 'c' ) &&
60- LAPACKE_lsame ( side , 'l' ) ) ? m :
61- ( ( LAPACKE_lsame ( storev , 'c' ) &&
62- LAPACKE_lsame ( side , 'r' ) ) ? n :
63- ( LAPACKE_lsame ( storev , 'r' ) ? k : 1 ) );
54+ lapack_int lrv , lcv ; /* row, column stride */
55+ if ( matrix_layout == LAPACK_COL_MAJOR ) {
56+ lrv = 1 ;
57+ lcv = ldv ;
58+ } else {
59+ lrv = ldv ;
60+ lcv = 1 ;
61+ }
62+ ncols_v = LAPACKE_lsame ( storev , 'c' ) ? k :
63+ ( ( LAPACKE_lsame ( storev , 'r' ) && LAPACKE_lsame ( side , 'l' ) ) ? m :
64+ ( ( LAPACKE_lsame ( storev , 'r' ) && LAPACKE_lsame ( side , 'r' ) ) ? n : 1 ) );
65+
66+ nrows_v = ( LAPACKE_lsame ( storev , 'c' ) && LAPACKE_lsame ( side , 'l' ) ) ? m :
67+ ( ( LAPACKE_lsame ( storev , 'c' ) && LAPACKE_lsame ( side , 'r' ) ) ? n :
68+ ( LAPACKE_lsame ( storev , 'r' ) ? k : 1 ) );
6469 if ( LAPACKE_cge_nancheck ( matrix_layout , m , n , c , ldc ) ) {
6570 return -13 ;
6671 }
@@ -70,32 +75,32 @@ lapack_int LAPACKE_clarfb( int matrix_layout, char side, char trans, char direct
7075 if ( LAPACKE_lsame ( storev , 'c' ) && LAPACKE_lsame ( direct , 'f' ) ) {
7176 if ( LAPACKE_ctr_nancheck ( matrix_layout , 'l' , 'u' , k , v , ldv ) )
7277 return -9 ;
73- if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v - k , ncols_v , & v [ k * ldv ],
74- ldv ) )
78+ if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v - k , ncols_v ,
79+ & v [ k * lrv ], ldv ) )
7580 return -9 ;
7681 } else if ( LAPACKE_lsame ( storev , 'c' ) && LAPACKE_lsame ( direct , 'b' ) ) {
7782 if ( k > nrows_v ) {
7883 LAPACKE_xerbla ( "LAPACKE_clarfb" , -8 );
7984 return -8 ;
8085 }
8186 if ( LAPACKE_ctr_nancheck ( matrix_layout , 'u' , 'u' , k ,
82- & v [(nrows_v - k )* ldv ], ldv ) )
87+ & v [(nrows_v - k )* lrv ], ldv ) )
8388 return -9 ;
8489 if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v - k , ncols_v , v , ldv ) )
8590 return -9 ;
8691 } else if ( LAPACKE_lsame ( storev , 'r' ) && LAPACKE_lsame ( direct , 'f' ) ) {
8792 if ( LAPACKE_ctr_nancheck ( matrix_layout , 'u' , 'u' , k , v , ldv ) )
8893 return -9 ;
89- if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v , ncols_v - k , & v [ k ],
90- ldv ) )
94+ if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v , ncols_v - k ,
95+ & v [ k * lrv ], ldv ) )
9196 return -9 ;
92- } else if ( LAPACKE_lsame ( storev , 'r' ) && LAPACKE_lsame ( direct , 'f ' ) ) {
97+ } else if ( LAPACKE_lsame ( storev , 'r' ) && LAPACKE_lsame ( direct , 'b ' ) ) {
9398 if ( k > ncols_v ) {
9499 LAPACKE_xerbla ( "LAPACKE_clarfb" , -8 );
95100 return -8 ;
96101 }
97- if ( LAPACKE_ctr_nancheck ( matrix_layout , 'l' , 'u' , k , & v [ ncols_v - k ],
98- ldv ) )
102+ if ( LAPACKE_ctr_nancheck ( matrix_layout , 'l' , 'u' , k ,
103+ & v [( ncols_v - k ) * lcv ], ldv ) )
99104 return -9 ;
100105 if ( LAPACKE_cge_nancheck ( matrix_layout , nrows_v , ncols_v - k , v , ldv ) )
101106 return -9 ;
0 commit comments