regression in lambert_w (in Maxima 5.28 for Windows)
Subject: regression in lambert_w (in Maxima 5.28 for Windows)
From: David Billinghurst
Date: Sun, 26 Aug 2012 09:49:56 +1000
On 26/08/2012 12:32 AM, David Billinghurst wrote:
> On 25/08/2012 11:35 PM, Jean-Claude Arbaut wrote:
>> Hello,
>>
>> I get the following error in Maxima 5.28 on Windows (it works with
>> Maxima 5.27, also on Windows) :
>>
>> (%i15) lambert_w(1), numer;
>> Maxima encountered a Lisp error:
>> Error in MACSYMA-TOP-LEVEL [or a callee]: No matching method for the
>> generic-function #<compiled-closure BIGFLOAT-IMPL:EPSILON>,
>> when called with arguments (1).
>> Automatically continuing.
>> To enable the Lisp debugger set *debugger-hook* to nil.
>>
>>
>> However, the following work (in both 5.27 and 5.28) :
>> lambert_w(1.0);
>> lambert_w(1), bfloat;
>
> Thanks for the report. I rewrote parts of the lambert_w code since
> 5.27 and probably introduced this bug.
>
> "lambert_w(2), float;" has the same problem. I will investigate.
>
>
OK. I see what happens here. The function simp-lambert uses the
function complex-float-numerical-eval-p to determine if lambert_w(1)
should be evaluated numerically, then passes the integer 1 to
bigfloat::lambert-w-k, which chokes as it was expecting a floating point
number of some sort.
The numer evflag doesn't convert integers to floats, but I had forgotten
that detail.
Fixed:
http://maxima.git.sourceforge.net/git/gitweb.cgi?p=maxima/maxima;a=commit;h=7a55f2616bd46d6adb5fffa873c3c317b8e65b29