[Insight-users] No test for svd? Update.

Frank Miller frankmiller at jhmi.edu
Mon Sep 11 16:45:19 EDT 2006


Luis and Bill,

As Luis suggested, I took a look at the CVS version of ITK and as far as 
I can tell my problem is gone. After building, there is a "vnl_test_all" 
binary in the bin directory that has "test_svd" as a registered test 
name. This test passes on my system with -O3 optimization and I no 
longer get that error message when working with that one particular image.

I think that I will heed Bills advice and avoid -O3 from now on just to 
be on the safe side.

Thank you so much your responses, especially over the weekend.

Frank


Bill Lorensen wrote:
> Frank,
> 
> I have a Continuous itk build (BillsBasement) that is built with -O3 and 
> gcc4.0. As you can see, the vnl_test_svd and vnl_test_qr tests both 
> fail. I used to build with -O2 and they passed.
> 
> http://www.itk.org/Testing/Sites/BillsBasement/Linux-gcc40-release/20060910-1145-Continuous/Test.html
> 
> My advice, in general, avoid -O3. It's amazing after all these years, 
> compiler writers still have optimization woes. I remember in 1969, 
> running an IBM 360/44 FORTRAN compiler. Almost all of the bug reports 
> were due to optimization failures. The workaround was always, turn off 
> the optimization.
> 
> Bill
> 
> 
> On 9/9/06, *Luis Ibanez* <luis.ibanez at kitware.com 
> <mailto:luis.ibanez at kitware.com>> wrote:
> 
>     Hi Frank,
> 
>     You may want to try with ITK CVS version,
>     A couple of VXL bugs were fixed recently that were related to infinte
>     loops that happen only in -O3 optimization.
> 
>     See the following email in the developers list:
>     http://www.itk.org/mailman/private/insight-developers/2006-September/008389.html
> 
>     Please let us know what you find.
> 
> 
>        Thanks
> 
> 
>           Luis
> 
> 
>     --------------------
>     Frank Miller wrote:
>      > This appears to be an upstream problem. I downloaded vxl and
>     there is no
>      > "test_svd" there either.
>      >
>      > However, on a more positive note, I recompiled itk with -O2
>      > optimization, instead of -O3, and the problem seems to be gone.
>      >
>      > Optimization bugs are the worst.
>      >
>      > Frank
>      >
>      > Frank Miller wrote:
>      >
>      >> Greetings,
>      >>
>      >> Im having a very strange problem with the svd algorithm. My
>     experience
>      >> is consistent with the problem mentioned in the comments at line
>     92 in
>      >> the file
>      >>
>      >>   Utilities/vxl/core/vnl/algo/vnl_svd.txx
>      >>
>      >> If this is the source of my problem, the comments state that the
>      >> "core/vnl/tests/test_svd" should have failed. However, I cant find
>      >> this test. I turned BUILD_TESTING on and there is no "test_svd".
>     There
>      >> is a "vnl_test_all" which when run states that
>      >>
>      >>   The registered test names are:
>      >>      test_bignum
>      >>      test_complex
>      >>      test_inverse
>      >>      test_diag_matrix
>      >>      test_file_matrix
>      >>      test_finite
>      >>      test_math
>      >>      test_matrix
>      >>      test_matrix_exp
>      >>      test_matrix_fixed
>      >>      test_matrix_fixed_ref
>      >>      test_numeric_traits
>      >>      test_rational
>      >>      test_real_polynomial
>      >>      test_resize
>      >>      test_sample
>      >>      test_sym_matrix
>      >>      test_transpose
>      >>      test_fastops
>      >>      test_vector
>      >>      test_vector_fixed_ref
>      >>      test_gamma
>      >>      test_random
>      >>      test_arithmetic
>      >>      test_hungarian_algorithm
>      >>      test_integrant
>      >>      test_bessel
>      >>
>      >> all of which pass on my system.
>      >>
>      >> How can I run this test on my system? Is this test not being run by
>      >> Dart? Any help would be much appreciated,
>      >>
>      >>
>      >> Below is some more details if you are interested.
>      >>
>      >> My system is 32bit Linux, my cpu is Intel Xeon, my compiler is
>      >> gcc-4.1.1, and Im using itk-2.8.1.
>      >>
>      >> When updating any pipeline that has a particular image as an
>     input, I
>      >> get the following message printed to standard error:
>      >>
>      >>  
>     /home/frank/opt/src/itk/2.8.1/InsightToolkit-2.8.1/Utilities/vxl/core/
>      >>   vnl/algo/vnl_svd.txx: suspicious return value (3) from SVDC
>      >>  
>     /home/frank/opt/src/itk/2.8.1/InsightToolkit-2.8.1/Utilities/vxl/core/
>      >>   vnl/algo/vnl_svd.txx: M is 3x3
>      >>   M = [ ...
>      >>    0.9788850881159 -0.1393774186727 -5.6885917960696
>      >>    1.0096153244376  0.1351351488847  5.5154448566180
>      >>    0.0000000300788 -1.3927854783833  1.1043995835373  ]
>      >>
>      >> The correct singular values for M are, according to octave, 8.0000,
>      >> 1.4063, 1.4062.
>      >>
>      >> Here is a trace of the image:
>      >>
>      >>   OrientedImage (0x83f0000)
>      >>     RTTI typeinfo:   itk::OrientedImage<int, 3u>
>      >>     Reference Count: 6
>      >>     Modified Time: 714
>      >>     Debug: Off
>      >>     Observers:
>      >>       none
>      >>     Source: (0x83eb4c8)
>      >>     Source output index: 0
>      >>     Release Data: On
>      >>     Data Released: False
>      >>     Global Release Data: Off
>      >>     PipelineMTime: 238
>      >>     UpdateMTime: 715
>      >>     LargestPossibleRegion:
>      >>       Dimension: 3
>      >>       Index: [0, 0, 0]
>      >>       Size: [256, 256, 17]
>      >>     BufferedRegion:
>      >>       Dimension: 3
>      >>       Index: [0, 0, 0]
>      >>       Size: [256, 256, 17]
>      >>     RequestedRegion:
>      >>       Dimension: 3
>      >>       Index: [0, 0, 0]
>      >>       Size: [256, 256, 17]
>      >>     Spacing: [1.40625, 1.40625, 7.99999]
>      >>     Origin: [-37.7846, -241.523, 175.909]
>      >>     Direction:
>      >>   0.696096 -0.0991128 -0.711074
>      >>   0.717949 0.0960961 0.689431
>      >>   2.13894e-08 -0.990425 0.13805
>      >>
>      >>     PixelContainer:
>      >>       ImportImageContainer (0x83f01b8)
>      >>         RTTI typeinfo:   itk::ImportImageContainer<unsigned
>     long, int>
>      >>         Reference Count: 1
>      >>         Modified Time: 288
>      >>         Debug: Off
>      >>         Observers:
>      >>           none
>      >>         Pointer: 0x83f01e8
>      >>         Container manages memory: true
>      >>         Size: 1114112
>      >>         Capacity: 1114112
>      >>
>      >> Thanks,
>      >>
>      >> Frank
>      >> _______________________________________________
>      >> Insight-users mailing list
>      >> Insight-users at itk.org <mailto:Insight-users at itk.org>
>      >> http://www.itk.org/mailman/listinfo/insight-users
>      >
>      > _______________________________________________
>      > Insight-users mailing list
>      > Insight-users at itk.org <mailto:Insight-users at itk.org>
>      > http://www.itk.org/mailman/listinfo/insight-users
>     <http://www.itk.org/mailman/listinfo/insight-users>
>      >
>      >
> 
> 
>     _______________________________________________
>     Insight-users mailing list
>     Insight-users at itk.org <mailto:Insight-users at itk.org>
>     http://www.itk.org/mailman/listinfo/insight-users
> 
> 


More information about the Insight-users mailing list