diff --git a/coreblas/compute/core_ztpmqrt.c b/coreblas/compute/core_ztpmqrt.c index e83dbfc9e70cf3fc4d29e5cfdab56a927530c4ec..b6199e5c6f84854f83585391056c4fc27958a7c4 100644 --- a/coreblas/compute/core_ztpmqrt.c +++ b/coreblas/compute/core_ztpmqrt.c @@ -174,7 +174,7 @@ int CORE_ztpmqrt( MORSE_enum side, MORSE_enum trans, WORK, ldwork ); } /* TT case */ - else if( L == M ) { + else if( L == M ) { CORE_zttmqr( side, trans, m1, n1, M, N, K, IB, A, LDA, B, LDB, V, LDV, T, LDT, WORK, ldwork ); diff --git a/coreblas/compute/core_ztpqrt.c b/coreblas/compute/core_ztpqrt.c index 1b1137b23c74e0b33934f37dc0abf8c5e0b7c8bf..ab95fce0a3815937644965d50e6ff5de57f534c6 100644 --- a/coreblas/compute/core_ztpqrt.c +++ b/coreblas/compute/core_ztpqrt.c @@ -132,6 +132,11 @@ int CORE_ztpqrt( int M, int N, int L, int IB, coreblas_error(6, "Illegal value of LDT"); return -10; } + if ((L != 0) && (L != chameleon_min(M, N))) { + //LAPACKE_ztpmqrt_work( LAPACK_COL_MAJOR, M, N, K, L, IB, V, LDV, T, LDT, A, LDA, B, LDB, WORK ); + coreblas_error( 6, "Illegal value of L (only 0 or min(M,N) handled for now)"); + return -6; + } #endif /*!defined(NDEBUG)*/ /* Quick return */ @@ -141,13 +146,13 @@ int CORE_ztpqrt( int M, int N, int L, int IB, if ( L == 0 ) { CORE_ztsqrt( M, N, IB, A, LDA, B, LDB, T, LDT, WORK, WORK+N ); } - else if (L == M) { + else /* if (L == M) */ { CORE_zttqrt( M, N, IB, A, LDA, B, LDB, T, LDT, WORK, WORK+N ); } - else { - //LAPACKE_ztpqrt_work( LAPACK_COL_MAJOR, M, N, L, IB, A, LDA, B, LDB, T, LDT, WORK ); - coreblas_error( 3, "Illegal value of L (only 0 or M handled for now)"); - return -3; - } + /* else { */ + /* //LAPACKE_ztpqrt_work( LAPACK_COL_MAJOR, M, N, L, IB, A, LDA, B, LDB, T, LDT, WORK ); */ + /* coreblas_error( 3, "Illegal value of L (only 0 or M handled for now)"); */ + /* return -3; */ + /* } */ return MORSE_SUCCESS; }