Hello, The cholesky failures are probably just an issue of too strict a tolerance for that architecture - it is difficult to define tolerances which work on all systems. On lines 554 and 871 of linalg/test_cholesky.c you will find the hilbert tests for mcholesky and pcholesky with a tolerance of:
256 * N * GSL_DBL_EPSILON Could you try increasing the constant 256 until the test passes? Try 512 or 1024. Let me know which number fixes the issue and I will update the git. Thanks, Patrick On 01/27/2017 07:17 AM, Adam Majer wrote: > Hello, > > Building GSL on SUSE's Open Build Service results in test failures on a > few architectures. > > https://build.opensuse.org/package/show/science/gsl > > On PPC64 it dies in > > [ 203s] ./linalg/test-suite.log > [ 203s] ==================================== > [ 203s] gsl 2.3: linalg/test-suite.log > [ 203s] ==================================== > [ 203s] FAIL: test > [ 203s] ========== > [ 203s] > [ 203s] FAIL: pcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 203s] (-2.55795384873636067e-13 observed vs 0 expected) [533911] > [ 203s] FAIL: mcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 203s] (-2.55795384873636067e-13 observed vs 0 expected) [672592] > [ 203s] FAIL test (exit status: 1) > [ 203s] > > > On PPC64le, the tests die in the same tests, > > [ 184s] FAIL: pcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 184s] (-2.55795384873636067e-13 observed vs 0 expected) [533911] > [ 184s] FAIL: mcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 184s] (-2.55795384873636067e-13 observed vs 0 expected) [672592] > [ 184s] FAIL test (exit status: 1) > > > And on AArch64, same tests, > > [ 359s] FAIL: pcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 359s] (-2.55795384873636067e-13 observed vs 0 expected) [533911] > [ 359s] FAIL: mcholesky_invert unscaled hilbert ( 4, 4)[0,2]: > -2.55795384873636067e-13 0 > [ 359s] (-2.55795384873636067e-13 observed vs 0 expected) [672592] > [ 359s] > > > Is this expected? Is this just an expected "feature" of PPC64 and 64-bit > ARM? > > > > > Using an older compiler, on i586 the tests fail to converge in a > multifit_nlinear test, > > [ 304s] FAIL: test > [ 304s] ========== > [ 304s] > [ 304s] trs = levenberg-marquardt > [ 304s] solver = cholesky > [ 304s] solver = qr > [ 304s] solver = svd > [ 304s] trs = levenberg-marquardt+accel > [ 304s] solver = cholesky > [ 304s] solver = qr > [ 304s] solver = svd > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/box3d > did not converge, status=exceede > d max number of iterations [39959] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/weighted/box3d > did not converge, statu > s=exceeded max number of iterations [39963] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/box3d > did not converge, status=exceede > d max number of iterations [40457] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/weighted/box3d > did not converge, statu > s=exceeded max number of iterations [40461] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/box3d > did not converge, status=exceede > d max number of iterations [42066] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/weighted/box3d > did not converge, status=exceeded max number of iterations [42070] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/box3d > did not converge, status=exceeded max number of iterations [42564] > [ 304s] FAIL: > trust-region/levenberg-marquardt+accel/scale=more/solver=svd/fdfvv/weighted/box3d > did not converge, status=exceeded max number of iterations [42568] > [ 304s] trs = dogleg > [ 304s] solver = cholesky > [ 304s] solver = qr > [ 304s] solver = svd > [ 304s] trs = double-dogleg > [ 304s] solver = cholesky > [ 304s] solver = qr > [ 304s] solver = svd > [ 304s] trs = 2D-subspace > [ 304s] solver = cholesky > [ 304s] solver = qr > [ 304s] solver = svd > > but I'm assuming this is just old compiler bug. > > - Adam >
