Hmm. My data point:
exp(101);
(1) Result: 73070599793680668906492145854235224565612544.000000
exp(102);
Segmentation fault
Pike 7.4.13 on Linux 2.4.17 i686, glibc-2.3.1
The segfault is due to sprintf("%O",...); write("%e", exp(x)) is OK up to x=710 (at which point it turns "inf" of course).
Aah, nearly forgot: --with-long-double-precision.
/ rjb
Previous text:
2003-01-05 21:37: Subject: exp(511)
I'm happy as long as it doesn't segfault. It probably has a problem because I'm using double precision (up to around e^180 is ok).
I added tests to check that it returns strings for medium (e^200) and large (e^65536) for all five float formats.
/ Mirar