components/libgsl/patches/fix-tests.patch
changeset 7909 59e0622d905d
parent 7906 57070a2dbc4f
child 7910 054905eb71e9
equal deleted inserted replaced
7906:57070a2dbc4f 7909:59e0622d905d
     1 Fix the linalg and multilarge_nlinear test failures by lowering the tolerance.
       
     2 
       
     3 The linalg problem has been reported upstream at:
       
     4 
       
     5   http://savannah.gnu.org/bugs/?49697
       
     6 
       
     7 No solution there, but libgsl version 2.3 (released on 6th Dec 2016)
       
     8 does have the following changes to the test_cholesky.c test program
       
     9 which does fix it.
       
    10 
       
    11 Also by adjusting the tolerance in the test_powell3.c tests, the failures
       
    12 there can be prevented.
       
    13 
       
    14 This change has been reported upstream and accepted.
       
    15 
       
    16 See email thread starting at:
       
    17 
       
    18   http://lists.gnu.org/archive/html/bug-gsl/2017-01/msg00010.html
       
    19 
       
    20 
       
    21 --- gsl-2.2.1/linalg/test_cholesky.c.orig	2017-01-10 10:21:58.703790247 +0000
       
    22 +++ gsl-2.2.1/linalg/test_cholesky.c	2017-01-10 12:42:03.946024028 +0000
       
    23 @@ -195,7 +195,7 @@
       
    24  
       
    25        gsl_linalg_cholesky_rcond(V, &rcond, work);
       
    26  
       
    27 -      gsl_test_rel(rcond, expected_rcond, 1.0e-10,
       
    28 +      gsl_test_rel(rcond, expected_rcond, 1.0e-6,
       
    29                     "%s rcond: (%3lu,%3lu): %22.18g   %22.18g\n",
       
    30                     desc, N, N, rcond, expected_rcond);
       
    31  
       
    32 @@ -235,7 +235,7 @@
       
    33  
       
    34            create_hilbert_matrix2(m);
       
    35  
       
    36 -          test_cholesky_decomp_eps(0, m, expected_rcond, GSL_DBL_EPSILON, "cholesky_decomp unscaled hilbert");
       
    37 +          test_cholesky_decomp_eps(0, m, expected_rcond, N * GSL_DBL_EPSILON, "cholesky_decomp unscaled hilbert");
       
    38            test_cholesky_decomp_eps(1, m, expected_rcond, N * GSL_DBL_EPSILON, "cholesky_decomp scaled hilbert");
       
    39          }
       
    40  
       
    41 @@ -786,8 +786,8 @@
       
    42        gsl_matrix * m = gsl_matrix_alloc(N, N);
       
    43  
       
    44        create_posdef_matrix(m, r);
       
    45 -      test_pcholesky_decomp_eps(0, m, -1.0, 20.0 * N * GSL_DBL_EPSILON, "pcholesky_decomp unscaled random");
       
    46 -      test_pcholesky_decomp_eps(1, m, -1.0, 20.0 * N * GSL_DBL_EPSILON, "pcholesky_decomp scaled random");
       
    47 +      test_pcholesky_decomp_eps(0, m, -1.0, 1024.0 * N * GSL_DBL_EPSILON, "pcholesky_decomp unscaled random");
       
    48 +      test_pcholesky_decomp_eps(1, m, -1.0, 1024.0 * N * GSL_DBL_EPSILON, "pcholesky_decomp scaled random");
       
    49  
       
    50        if (N <= 12)
       
    51          {
       
    52 --- gsl-2.2.1/multilarge_nlinear/test_powell3.c.orig	2017-01-10 10:33:08.905770897 +0000
       
    53 +++ gsl-2.2.1/multilarge_nlinear/test_powell3.c	2017-01-10 11:23:15.584632882 +0000
       
    54 @@ -2,7 +2,7 @@
       
    55  #define powell3_P         2
       
    56  
       
    57  static double powell3_x0[powell3_P] = { 0.0, 1.0 };
       
    58 -static double powell3_epsrel = 1.0e-10;
       
    59 +static double powell3_epsrel = 1.0e-8;
       
    60  
       
    61  static double powell3_J[powell3_N * powell3_P];
       
    62