HP Forums
(28/48/50) Lambert W Function - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: General Software Library (/forum-13.html)
+--- Thread: (28/48/50) Lambert W Function (/thread-19689.html)

Pages: 1 2 3


RE: (28/48/50) Lambert W Function - Albert Chan - 01-30-2024 04:04 PM

(01-30-2024 02:52 PM)Gil Wrote:  FNL=
«
WHILE x .4 >=
REPEAT 'x/(sqrt(1+x)+1)' ->NUM 'x' STO x FNL 2 * x SQ - 'fnl' STO
END 'x/(x+2)' ->NUM 'X2' STO X2 DUP * 'X4' STO 'X4*(5005-X4*(5082-X4*969))/(15015-X4*(24255-X4*(11025-X4*1225)))' ->NUM 'X4' STO 'X2*(X4+X4-x)' ->NUM 'fnl' STO
»

Again, FNL is a recursive function!
I don't know RPL, but the fact it started with WHILE already look wrong.

Also, FNL is unsuitable for big x. (excess recursions cause unnessary rounding errors)
For big x, return LOGP1(X)-X, or simply LN(1+X)-X, is faster and better.

Again, please read thread: Accurate x - log(1+x)

If your question is only about accurate log(1+x)-x, please posted there.


RE: (28/48/50) Lambert W Function - Gil - 01-31-2024 07:10 PM

John,
Great your LambertW implementation!
Comparing your results with my proper HP50G program, I think that for special cases like:

k=-1 & input x tiny like {x=-1E-496 or x=-1E-497 or x=-1E-497 or x=-1E-499 }

or k=0 and x=1E-499

your program cannot give a correct answer.

Almost a pity.

Regards,
Gil