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

zlange and Frobenius norm issue

Beginner
358 Views
Hi, I'm getting an incorrect result when I use zlange to compute the Frobenius norm. dlange and clange work fine, as well as the one and infinity norms for zlange. Below illustrates the problem. For a 32-bit build I get a large random number and for a 64-bit build I get 0 for zlange. I'm using MKL 11.0 update 1 on Windows 8 64-bit. Any idea what I'm doing wrong? Thanks, Marcus #include "mkl.h" #include MKL_Complex16 complex16(double r, double i=0){ MKL_Complex16 c = {r, i}; return c; } MKL_Complex8 complex8(float r, float i=0){ MKL_Complex8 c = {r, i}; return c; } int _tmain(int argc, _TCHAR* argv[]) { int order = 3; double* dwork = new double[9]; float* fwork = new float[9]; char f = 'f'; MKL_Complex16* c16 = new MKL_Complex16[9]; c16[0] = complex16(-1.1); c16[1] = complex16( 0.0); c16[2] = complex16(-4.4); c16[3] = complex16(-2.2); c16[4] = complex16( 1.1); c16[5] = complex16( 5.5); c16[6] = complex16(-3.3); c16[7] = complex16( 2.2); c16[8] = complex16( 6.6); MKL_Complex8* c8 = new MKL_Complex8[9]; c8[0] = complex8(-1.1f); c8[1] = complex8( 0.0f); c8[2] = complex8(-4.4f); c8[3] = complex8(-2.2f); c8[4] = complex8( 1.1f); c8[5] = complex8( 5.5f); c8[6] = complex8(-3.3f); c8[7] = complex8( 2.2f); c8[8] = complex8( 6.6f); double d[9] = {-1.1, 0.0, -4.4, -2.2, 1.1, 5.5, -3.3, 2.2, 6.6}; double c16norm = zlange(&f, &order, &order, c16, &order, dwork); std::cout << c16norm <<:ENDL>
6 Replies
Moderator
358 Views
marcus, I see the same resuilts on my side. At the first glance this is the error. Thanks for report. we will check the cause of the problem. --Gennady
Black Belt
358 Views
Here is a shorter Fortran version that also shows up the ZLANGE bug. The program prints out a different result every time that it is run, when MKL Version 11 is used. There is no problem with MKL Version 10.3.12. [fortran]program dzlange implicit none complex*16 z(9) real*8 zr(9),z16norm,wrk(9),zlange integer :: m=9,n=1 data zr/-1.1d0,0.0d0,-4.4d0,-2.2d0,1.1d0,5.5d0,-3.3d0,2.2d0,6.6d0/ z=zr z16norm=zlange('f',m,n,z,m,wrk) write(*,*)z16norm end program dzlange [/fortran]
Moderator
358 Views
Yes, That's right. Thanks a lot, mecej. The problem has already escalated.
Moderator
358 Views

Hello,

This issue has been fixed in MKL v.11.0 update 2 released yesterday.