This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]