GSL on Hitachi SR8000

Reinhold Bader Reinhold.Bader@lrz-muenchen.de
Fri Aug 23 02:32:00 GMT 2002


  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





More information about the Gsl-discuss mailing list