Hello,
We are in the process of trying to upgrade our MKL from 11.2.2.1 to 2017 update 2. We noticed a change in how a singular matrix is handled by zgetrf. In 11.2.2.1, zgetrf would return (via info) a positive number indicating the problem pivot point. Now 2017.2 throws a floating point division by zero exception and we do not know the problem pivot number. Was this an intentional change? If so, how do we find out the problem pivot number?
A simple test case is a 4x4 complex matrix represented by:
+ [0] {d_re=0.00000000000000000 d_im=1000000.0000000000 } complex
+ [1] {d_re=0.00000000000000000 d_im=1000000.0000000000 } complex
+ [2] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [3] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [4] {d_re=0.00000000000000000 d_im=1000000.0000000000 } complex
+ [5] {d_re=0.00000000000000000 d_im=1000000.0000000000 } complex
+ [6] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [7] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [8] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [9] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [10] {d_re=1000000.0005243536 d_im=-16.191775445209515 } complex
+ [11] {d_re=-1000000.0000000000 d_im=0.00000000000000000 } complex
+ [12] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [13] {d_re=0.00000000000000000 d_im=0.00000000000000000 } complex
+ [14] {d_re=-1000000.0000000000 d_im=0.00000000000000000 } complex
+ [15] {d_re=1000000.0005243536 d_im=-16.191775445209515 } complex
Exception info:
First-chance exception at 0x00007FFBFAFEC926 (mkl_avx2.dll) in blah.exe: 0xC000008E: Floating-point division by zero (parameters: 0x0000000000000000). In our exe, we translate select structured exceptions like this to C++ exceptions so we can deal with computation errors at a higher level.
Thanks,
Paul