This is the mail archive of the
gsl-discuss@sources.redhat.com
mailing list for the GSL project.
GSL on Hitachi SR8000
- From: Reinhold Bader <Reinhold dot Bader at lrz-muenchen dot de>
- To: gsl-discuss at sources dot redhat dot com
- Date: Fri, 23 Aug 2002 11:31:56 +0200
- Subject: GSL on Hitachi SR8000
Hello,
I've built the GLS 1.2 on a Hitachi SR8000 (PowerPC-derived RISC SMP
architecture
with prefetch extensions, OS is Mach based) and the following part of
the test suite
fails:
gmake[2]: Entering directory `/usr/local/src/gnulrz/gsl/gsl-1.2/ieee-utils'
PASS: float x = 0, sign is + (0 observed vs 0 expected)
PASS: float x = 0, exponent is -127 (-127 observed vs -127 expected)
PASS: float x = 0, mantissa
...
PASS: float x = FLT_MIN, sign is + (0 observed vs 0 expected)
FAIL: float x = FLT_MIN, exponent is -126 (-127 observed vs -126 expected)
PASS: float x = FLT_MIN, mantissa
FAIL: float x = FLT_MIN, type is NORMAL (5 observed vs 3 expected)
PASS: float x = FLT_MAX, sign is + (0 observed vs 0 expected)
FAIL: float x = FLT_MAX, exponent is 127 (128 observed vs 127 expected)
FAIL: float x = FLT_MAX, mantissa (00000000000000000000000 observed vs
111111111
11111111111111 expected)
FAIL: float x = FLT_MAX, type is NORMAL (2 observed vs 3 expected)
PASS: float x = FLT_MIN/2^1, sign is + (0 observed vs 0 expected)
PASS: float x = FLT_MIN/2^1, exponent is -127 (-127 observed vs -127
expected)
FAIL: float x = FLT_MIN/2^1, mantissa (00000000000000000000000 observed
vs 10000
000000000000000000 expected)
(more failures follow).
Furthermore there is a failure in Legendre:
FAIL: gsl_sf_legendre_H3d_1_e(1000.0, 0.001, &r)
expected: 0.301168758650904
obtained: 0.3011687586509037 9.480616873741396e-16 3.14794e-15
fracdiff: 4.60797722512139e-16
value not within tolerance of expected value
0.3011687586509037 9.4806168737413957e-16
and, finally
FAIL: gsl_histogram_fprintf and fscanf work correctly
Concerning the IEEE problems I've done some preliminary investigation, and
it turned out that there were warnings compiling
ieee-utils/test.c:
cc -DHAVE_CONFIG_H -I. -I. -I.. -I.. -g -c test.c
test.c: 140: Error: 3060, Constant value exceeds allowable range.
test.c: 154: Error: 3060, Constant value exceeds allowable range.
test.c: 171: Error: 3060, Constant value exceeds allowable range.
test.c: 198: Error: 3060, Constant value exceeds allowable range.
test.c: 216: Error: 3060, Constant value exceeds allowable range.
test.c: 37: Warning: 2600, Function "main" does not return a value.
replacing the constants
1.17549435e-38f --> 1.17549436e-38f
and
3.40282347e+38f --> 3.40282346e+38f
made these warnings vanish, and the binary now ran without failures.
Questions:
1. Do I need to change these constants elsewhere in the library source
to guarantee correct functionality? Does the above change indicate
that the number format on the SR8000 is non IEEE conformant?
2. The legendre failure seems minor. Any comments?
3. The gsl_histogram stuff: not very urgent, but is there any hint
where things might have gone wrong in
gsl_histogram_fprintf and/or fscanf?
Best regards
--
Dr. Reinhold Bader
Leibniz-Rechenzentrum, Abt. Benutzerbetreuung | Tel. +4989 289 28825
Barerstr. 21, 80333 Muenchen | email Bader@lrz.de