irreproducable test fails in freshly built octave

Thorsten Meyer thorsten.meyier at gmx.de
Sun Dec 7 11:07:08 CST 2008


Jaroslav Hajek wrote:
> On Sat, Dec 6, 2008 at 11:29 PM, Thorsten Meyer <thorsten.meyier at gmx.de> wrote:
>> Hi,
>>
>> in octave freshly built from the mercurial sources (on a debian intel machine) I got the following
>> test fails:
>>  src/DLD-FUNCTIONS/svd.cc ............................... PASS   13/15   FAIL 2
>>
>> then I tried the tests in an interactive octave session and could not reproduce them.
>>
>> Then I ran make check again, and this time I got
>>  src/DLD-FUNCTIONS/svd.cc ............................... PASS   14/15   FAIL 1
>>
>>
>> with this log entry:
>>  ***** test
>>  a = single([1, 2, 3; 4, 5, 6]);
>>  [u, s, v] = svd (a);
>>  assert (u * s * v', a, sqrt (eps('single')));
>> !!!!! test failed
>> assert (u * s * v',a,sqrt (eps ('single'))) expected
>>   1   2   3
>>   4   5   6
>> but got
>>   2.22474  -0.44949   4.22475
>>   6.44949   0.10102   8.44949
>> maximum absolute error 4.89898 exceeds tolerance 0.000345267>>>>> processing
>> /home/thorsten/hg/octave/src/DLD-FUNCTIONS/syl.cc
>>
>> Then in an octave session I get:
>>
>> octave:1>  a = single([1, 2, 3; 4, 5, 6]);
>> octave:2>  [u, s, v] = svd (a);
>> octave:3>  assert (u * s * v', a, sqrt (eps('single')));
>> octave:4> u * s * v'
>> ans =
>>
>>   1.0000   2.0000   3.0000
>>   4.0000   5.0000   6.0000
>>
[...]
> please try rebuilding with
> http://hg.savannah.gnu.org/hgweb/octave/rev/dbe67764e628
> 
> although I couldn't reproduce your problem, I discovered and fixed
> uninitialized memory problems in diagonal matrix multiplication
> routines, and your observations appear exactly like that kind of
> problem. 
After rebuilding with your patch, the tests pass reproducibly again.

thanks

Thorsten


More information about the Bug-octave mailing list