Mantis - ALGLIB
Viewing Issue Advanced Details
147 Linear algebra minor have not tried 2009-09-29 20:45 2009-10-13 09:51
SergeyB  
SergeyB  
normal  
resolved  
fixed  
none    
none 2.1.2  
Unspecified
0000147: FIXED: incorrect handling of near-undeflow/subnormals in GenerateReflection()
From: Bela Ujhazi

> I'm a bit stucked up with the SVD lib in ALGLIB,
> I used it for some matrices before, but now I've
> had to use it for some bigger ones (one is
> approx. 3000*10000, second is 950*4500) and the
> results were not satisfying. All the values in
> the 2 mentioned matrices were '1.#QNAN' unlike
> from the little ones (700*1300 was the biggest)
> I tried before.
Issue History
2009-09-29 20:45 SergeyB New Issue
2009-09-29 20:45 SergeyB Status new => assigned
2009-09-29 20:45 SergeyB Assigned To => SergeyB
2009-09-29 20:45 SergeyB Programming language => Unspecified
2009-09-29 20:46 SergeyB Description Updated
2009-10-05 22:55 SergeyB Note Added: 0000041
2009-10-05 22:56 SergeyB Note Edited: 0000041
2009-10-05 22:57 SergeyB Summary BUG: SVD subroutine returns QNANs for large matrices => BUG: incorrect handling of near-undeflow/subnormals in GenerateReflection()
2009-10-05 23:01 SergeyB Note Edited: 0000041
2009-10-13 09:49 SergeyB Note Added: 0000042
2009-10-13 09:51 SergeyB Status assigned => resolved
2009-10-13 09:51 SergeyB Fixed in Version => [NOT RELEASED YET] 2.1.2
2009-10-13 09:51 SergeyB Resolution open => fixed
2009-10-13 09:51 SergeyB Summary BUG: incorrect handling of near-undeflow/subnormals in GenerateReflection() => FIXED: incorrect handling of near-undeflow/subnormals in GenerateReflection()
2009-10-13 23:24 SergeyB Note Edited: 0000041

Notes
(0000041)
SergeyB   
2009-10-05 22:55   
(edited on: 2009-10-13 23:24)
Looks like this error is caused by bug in the GenerateReflection() subroutine - it does not correctly handle subnormalized input vectors.

This bug is not specific to the SVD lib - it can be found almost in any subroutine which relies on GenerateReflection(). There are two ways to trigger this bug:
1. you can trigger it with a very large degenerate matrix
2. or you can trigger it with a moderate size matrix with near-underflow or subnormal elements

Now investigating possible workarounds....

(0000042)
SergeyB   
2009-10-13 09:49   
Fixed. Separate release will be issued for this patch in 5 days.