Lambert W function?



I agree with you re. unnecessary proliferation of flags, and yes, gradef
does the trick. As a matter of fact, I tested this approach a few hours ago
in a problem that I am working on, and it works.

But please bear with me while I play the Devil's advocate for a moment. This
gradef business works both ways. From the practical perspective of most
Maxima users, algebraic simplification is probably a lot more important than
having a derivative that avoids removable singularities. Is that not a
sufficient reason to define the "stock version" of the derivative of
Lambert's W like Maple does? After all, people who are worried about the
removable singularity can always redefine the derivative to suit their needs
using gradef, but for most of our users working on practical problems (i.e.,
getting integrals that involve Lambert's W and trying to simplify those),
what I am suggesting may make more sense?


Viktor

 

-----Original Message-----
From: Robert Dodier [mailto:robert.dodier at gmail.com] 
Sent: Tuesday, May 20, 2008 10:51 PM
To: Viktor T. Toth
Cc: Barton Willis; maxima at math.utexas.edu
Subject: Re: [Maxima] Lambert W function?

On 5/20/08, Viktor T. Toth <vttoth at vttoth.com> wrote:

> I'm beginning to wonder if this should be controlled by a flag, since in
>  many cases, the ability to effectively simplify large and complex
>  expressions far outweighs the mathematical "purity" of a derivative
defined
>  without removable singularities.

I would rather have users use an explicit declaration to change the
derivative, instead of controlling it via a flag.
That is,

gradef (lambert_w(x), lambert_w(x) / (x*(1 + lambert_w(x))));

to change it instead of

lambert_w_diff_flag : 'the_other_lambert_w_diff_form;

Maxima has approximately 42,000,000 flags of all kinds already
but I think we should try to avoid compounding the problem.
Many of those flags control whether some identities are applied;
it is really only the weakness of the simplification system that
makes them necessary.

The only question is whether gradef changes everything that
needs to be changed. If it doesn't, that probably means we
should work on gradef.

FWIW & all the best.

Robert Dodier