Hi Norman,
I added a simple fix to make-prm-par.c yesterday to get it to compile
under Tru64 UNIX (which doesn't have a stdint.h include file, just
inttypes.h). That has worked but unfortunately make-prm-par now core
dumps. The problem is the call to par_f on line 549:
par_f(1, "VAL__SMLR", min_denorm_f());
which doesn't cast the float returned from min_denorm_f() to a double,
leading to an FPE. However, if you do that things do not really improve
and another FPE happens within par_f itself when you assign the double to
a float... Looks to me like you need two versions of par_f, one for
doubles and one for floats (I think the byte swapping on an Alpha produces
a bit pattern that cannot be cast back to float without an FPE, but I
don't know why this isn't seen on Linux).
Anyway, and potentially more serious, while looking at that I've noticed
that there is an odd value for VAL__BADD in the prm_par.h files under
Linux and Solaris. These have:
#define VAL__BADD -1.79769313486231571e+308
whereas, the actual -DBL_FLT value is:
-1.7976931348623157e+308
so we have an extra "1" inserted at the end. On an alpha that value is
defined to be:
-1.79769313486231570e+308
(and incidently in values.h under Solaris) so it may matter. Hmm, couple
for your list I think.
Cheers,
Peter.
|