more comments Jim Rees (11 Jan 2017 20:24 UTC)
Fwd: more comments Arthur A. Gleckler (20 Apr 2017 18:05 UTC)
Re: more comments John Cowan (20 Apr 2017 19:01 UTC)
Re: more comments Jim Rees (20 Apr 2017 19:08 UTC)
Re: more comments John Cowan (20 Apr 2017 19:53 UTC)

more comments Jim Rees 11 Jan 2017 20:24 UTC

1)
flexponent is specified to return a value equal to:

(* (fltrunc (fllog (flabs x) fl-radix)) (flsgn x))

..but I don't think multiplying by (flsgn x) makes sense nor was
intended.  C99 logb also does not do this.

2)
In the specification for fl-integer-exponent-nan,  typo:   +0.nan ==> +nan.0

3)
and for clarification, fleven? and flodd? should return #f for any
flonum not satisfying flinteger? ?

...or is it "an error" instead?

4) flmax/flmin

"Return the maximum/minimum argument. If there are no arguments, these
procedures return +inf.0/-inf.0 if the implementation provides these
numbers"

This seems to suggest that (flmax) ==> +inf.0 and (flmin) ==> -inf.0,
but that's not intuitively consistent with a folding algorithm to
implement flmax -- the starting state should be -inf.0, not +inf.0.
Is this really what was intended?

5) (flremquo x y)

"Returns two values, the result of (flround-remainder x y) and the
low-order n bits (as a correctly signed exact integer) of the rounded
quotient. The value of n is implementation-dependent but at least 3.
This function can be used to reduce the argument of the inverse
trigonometric functions, while preserving the correct quadrant or
octant."

How can client code make use of the second value if it does not know
what n is?    The range might be -4...3, or -8...7, or -16...15  --
but if the caller doesn't know what this range is, it will
misinterpret the meaning of the second value.  Perhaps the result
should be an exact ratio instead?  ie.  (/
<n-low-order-bits-sign-extended> (expt 2 n))