Marc:
I found a bug in fllog1p (I think you meant to use (macro-inexact--1) instead of (macro-inexact-+1)) that caused me to look at a lot of the fl<whatever> functions.
I think you lost the trail here. The fl<whatever> functions are supposed to just give you whatever the associated floating-point library functions give you, without checking for range conditions, etc. For example, (fllog -1.0) is +nan.0, not "raise an exception".
So I went through _num.scm and tried to clean up those functions; the attached _num.diff is what I tentatively ended up with.
What do you think?
Brad