[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] editorial: 2-argument log function

On Sat, Nov 3, 2012 at 2:53 PM, Per Bothner <per@x> wrote:
> On 11/02/2012 09:52 PM, Alex Shinn wrote:
>> On Sat, Nov 3, 2012 at 1:43 PM, Per Bothner <per@x> wrote:
>>> R6RS has a 2-operand version of the log function:
>>>     (log zi zii) computes the base-zii logarithm of zi.
>>> This function is not in the latest R7RS draft that I've seen,
>>> which means it should be listed in the "Incompatibilities with
>>> the main R6RS document" section of the NOTES.
>> The two argument log function has already been added.
> In that case, I guess I need to implement it ...
> Is there a recommended reference implementation?
> IIRC mathematically (log a b) is (/ (log a) (log b)),
> but that might not provide the best accuracy.

That's how I implement it, and neither libc nor
the underlying x87 processor have a more accurate
alternative (the x87 actually has instructions to
push log constants for common conversions from
the native log2).

In practice b will most often be 2, e or 10, which
have well behaved denominators.  Except for
bases approaching zero I doubt a numerical
approach would help.


Scheme-reports mailing list