Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

LAPACKE_dtpqrt and LAPACKE_dtpmqrt bugs report

hussam_a_
Beginner
775 Views

machine: MAC

mkl version: 2019.4.233

compiler: clang-1001.0.46.4

LAPACKE_dtpqrt:

layout row major

prameters m = n = l = lda = ldb = ldt = 12

if we set nb > 1,

the routines generates nan in the lower part of the triangular matrices stored in t.

This makes LAPACKE_dtpmqrt returns an error indicating invalid t array.

LAPACKE_dtpmqrt:

layout row major, left side multiplication, no transposition

case 1:

prameters m = k = n = l =  ldv = ldt = lda = ldb = 12

If nb != k

The routines does not compute the correct product.

case 2:

prameters m = k =  l = nb = ldv = ldt = 12,

n = lda = ldb

if n != k

the routines returns an error -14 meaning that lda does not have a valid value,

however, it should be valid

0 Kudos
6 Replies
Gennady_F_Intel
Moderator
775 Views

Could you give us an example of this case which we may compile, run and investigate the problem on our side?

0 Kudos
hussam_a_
Beginner
775 Views

Here I attach the file.

I compute the QR decomposition of the matrix [a ; b] (vertical block concatenation) by using dtpqrt.

I set a matrix [c ; d] to match the first n columns of the identity and apply Q from the left by using dtpmqrt.

I get the error from dtpmqrt.

I form the concatenated matrices from their original data (i.e., before any computation).

I call dgeqrf and dormqr to compare data and clearly it is wrong

Note: In this example I didn't get nans from dtpqrt in my other code I did have some.

0 Kudos
Gennady_F_Intel
Moderator
775 Views

Thanks,  the problem is reproduced on with mkl 2019 u4. We will investigate the case and keep this thread updated.

0 Kudos
Gennady_F_Intel
Moderator
775 Views

    ierr = LAPACKE_dtpmqrt(LAPACK_ROW_MAJOR, 'L', 'N', k, n, k, k, nb, b, k, t, k, c, m, d, n); // passed lda == m

 

0 Kudos
Gennady_F_Intel
Moderator
775 Views

pls look at  the mkl reference :  https://software.intel.com/en-us/mkl-developer-reference-c-tpmqrt

0 Kudos
hussam_a_
Beginner
775 Views

Following the mkl reference the argument lda is the leading dimension of the array c in the code which is equal to n in that case (number of columns). I do pass this argument.

Excuse me I did not get what is wrong.

0 Kudos
Reply