MantisBT - ITK
View Issue Details
0007207ITKpublic2008-06-19 09:492010-11-02 12:54
Hauke Heibel 
Bradley Lowekamp 
normalmajoralways
assignedopen 
 
 
0007207: vnl_sse<double>::matrix_x_vector(...) yields wrong result when VNL_CONFIG_ENABLE_SSE2:BOOL=ON
I build ITK with VNL_CONFIG_ENABLE_SSE2:BOOL=ON (the CMakeCache.txt is attached in the .zip file).

When running the project RUN_TESTS, I recognized some of the VNL related tests failing and I started digging into test no. 35 vnl_test_cholesky. In line 43, b=A*x0, I recognized that the result of the multiplication yielded a wrong result. The result has been verified with a single 3x3 time 3x1 matrix vector multiplication, using fixed values, that have been precomputed with Matlab.

A test showing this result is attached as well.
Build environment:
- Windows XP Professional (english)
- Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762
- Microsoft (R) Incremental Linker Version 8.00.50727.762

System:
- Intel Mobile Core 2 Duo T7400 (Merom)
- Instructions: MMX, SSE, SSE2, SSE3, SSSE3, EM64T
- L1 Cache: 32 KBytes, L2 Cache: 4096 KBytes
- 2048 MBytes DDR2 RAM

Important notes:
I did not yet with VNL_CONFIG_ENABLE_SSE2:BOOL=OFF, it's just an educated guess.
I did not check for vnl_sse<float>::matrix_x_vector(...)
No tags attached.
related to 0007214closed Luis Ibanez ITK CVS does not build with VNL_CONFIG_ENABLE_SSE2 ON when building Mac Universal Binaries 
zip vnl_sse_bug.zip (25,236) 2008-06-19 09:49
https://public.kitware.com/Bug/file/1539/vnl_sse_bug.zip
Issue History
2008-06-19 09:49Hauke HeibelNew Issue
2008-06-19 09:49Hauke HeibelFile Added: vnl_sse_bug.zip
2008-06-20 10:16Sean McBrideNote Added: 0012438
2008-06-20 10:20Sean McBrideRelationship addedrelated to 0007214
2010-11-02 12:47Hans JohnsonStatusnew => assigned
2010-11-02 12:47Hans JohnsonAssigned To => Bradley Lowekamp
2010-11-02 12:49Hans JohnsonNote Added: 0022786
2010-11-02 12:54Sean McBrideNote Added: 0022790

Notes
(0012438)
Sean McBride   
2008-06-20 10:16   
I reproed most of your test failures:
 35/1258 Testing vnl_test_cholesky ***Failed
 44/1258 Testing vnl_test_ldl_cholesky ***Failed
 49/1258 Testing vnl_test_qr ***Failed
 61/1258 Testing vnl_test_svd ***Failed
 91/1258 Testing vnl_test_quaternion Passed

vnl_test_quaternion is passing however. I am using Mac OS X 10.5.3, gcc 4.0, and running in 64 bit.
(0022786)
Hans Johnson   
2010-11-02 12:49   
Brad,

This seems related to other work you are interested in. This bug may already be done by the related bug 0007214 , could you please confirm?

Thanks,
Hans
(0022790)
Sean McBride   
2010-11-02 12:54   
Hans, the fix for 0007214 will not have fixed this bug.