Hi, John. I'm forwarding these earlier messages from Jim Rees to make sure that you have had a chance to address them. It's possible that some have been addressed in the two recent drafts, but not all of them have. For example, I didn't see any change around flremquo.
Thanks.
---------- Forwarded message ----------
From:
Jim Rees <xxxxxx@gmail.com>Date: Wed, Jan 11, 2017 at 12:24 PM
Subject: more comments
To:
srfi-144@srfi.schemers.org1)
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-extende
d> (expt 2 n))
---------- Forwarded message ----------
From:
Jim Rees <xxxxxx@gmail.com>Date: Wed, Jan 11, 2017 at 2:26 PM
Subject: Re: morecomments
To:
srfi-144@srfi.schemers.orgOk, cancel question #3. I now realize it's an error to call even?,
odd?, fleven?, or flodd? with an inexact number not representing an
integer value.
But add the following,
"
fl-log2-e
Bound to the value of (fllog fl-e 2.0). (C99 M_LOG2E)
fl-log10-e
Bound to the value of (fllog fl-e 10.0). (C99 M_LOG10E)
"
fllog is not specified to take 2 arguments. Should it? Or should
these references to be fllog2 and fllog10 respectively?