Mantis - ALGLIB
Viewing Issue Advanced Details
689 General minor always 2017-03-14 12:49 2017-10-24 13:19
smani  
SergeyB  
normal  
assigned 3.10.0  
open  
none    
none  
C++
0000689: GCC7: Test failure on i686
The ReportCorrectnessTest of the linlsqr test fails on i686 when building with GCC7 (7.0.1 20170309) on Fedora rawhide. The failure occurs in the below section of test_c.cpp (some debug prints were added). The output of this snippet is:

ReportCorrectnessTest::Fail
1 0
TNorm=8107.5250330521303113;RNorm=8107.5250330521294018;S.R2=8107.525033052130;

-----------
/*
 * check, that RNorm is't more than S.R2
 * and difference between S.R2 and TNorm
 * is't more than 'eps'(here S.R2=||rk||,
 * calculated by the algorithm for LSQR, and
 * TNorm=||A*S.x-b||, calculated by test function).
 */
if( ae_fp_greater(s.r2,rnorm)||ae_fp_greater(ae_fabs(s.r2-tnorm, _state),eps) )
{
    if( !silent )
    {
        printf("ReportCorrectnessTest::Fail\n");
        printf("%d %d\n", ae_fp_greater(s.r2,rnorm), ae_fp_greater(ae_fabs(s.r2-tnorm, _state),eps));
        printf("TNorm=%0.16f;RNorm=%0.16f;S.R2=%0.12f;\n",
            (double)(tnorm),
            (double)(rnorm),
            (double)(s.r2));
    }
    result = ae_true;
    ae_frame_leave(_state);
    return result;
}
-----------

By the way, the comment is also a bit confusing. If "is't" actually means "isn't", then the comment states that the test should verify:
rNorm < s.r2 <=> s.r2 > rNorm
|s.r2 - tNorm| < eps

but as far as I see the code fails if:
a) ae_fp_greater(s.r2,rnorm) <=> s.r2 > rNorm
b) ae_fp_greater(ae_fabs(s.r2-tnorm, _state),eps) <=> |s.r2 - tnorm| > eps

So a) matches the comment, but b) does not (and if "is't" means "is", then the opposite is true).


The build is using the following flags:
-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -fasynchronous-unwind-tables -fPIC

Build log is here:
https://koji.fedoraproject.org/koji/getfile?taskID=18371905&name=build.log

Other arches build correctly:
https://koji.fedoraproject.org/koji/taskinfo?taskID=18371900
Issue History
2017-03-14 12:49 smani New Issue
2017-03-14 12:49 smani Programming language => C++
2017-10-24 13:19 SergeyB Status new => assigned
2017-10-24 13:19 SergeyB Assigned To => SergeyB

There are no notes attached to this issue.