~peterpall/maxima/+git/maxima.code:rtoy-bug-4156-float-generalized-lambert-w

Last commit made on 2023-07-25
Get this branch:
git clone -b rtoy-bug-4156-float-generalized-lambert-w https://git.launchpad.net/~peterpall/maxima/+git/maxima.code

Branch merges

Branch information

Name:
rtoy-bug-4156-float-generalized-lambert-w
Repository:
lp:~peterpall/maxima/+git/maxima.code

Recent commits

c293301... by Raymond Toy <email address hidden>

Clean up old code and add comments

With the def-simplifier, we can get rid of the defmfun and the setting
of the various properties. Make it so.

Add some comments for TEST-FOR-INTEGER to describe what it does.

7e3ca5f... by Raymond Toy <email address hidden>

Add tests where the k arg is not an integer

9d60583... by Raymond Toy <email address hidden>

Add a couple of tests to verify float and bfloat work

Try calling float and bfloat of generalized_lambert_w. These should
return the same values when given an integer arg k and a float/bfloat
of the second arg.

455dd52... by Raymond Toy <email address hidden>

Handle k arg better.

The previous version was incorrectly handling the k arg.

First, to make things a little easier, use def-simplifier to define
the simplifier for generalized_lambert_w. Then we can get rid of the
handwritten code for $generalized_lambert_w and also remove manual
property settings for noun/verb/operator stuff.

Second, use (complex-float-numerical-eval-p k x) to test if we can
numerically evaluate the function. If true, then we know k is an
numerical value of some sort. Then we can check to see if k is equal
to an integer and use the integer value to call the appropriate
routines. If not, then we bail.

4950267... by Raymond Toy <email address hidden>

Fix #4156: float of generalized_lambert_w

In `float(generalized_lambert_w(k,x))`, the simplifier for
`generalized_lambert_w` sees the args `float(k)` and `float(x)`. The
current simplifier only simplifies the result if the first arg is an
integer, not a float that is equal to an integer.

To fix this, treat a float (or bfloat) value as if it were an
integer.

20783e1... by Raymond Toy <email address hidden>

Fix #4156: Float of generalized_lambert_w

When evaluating `float(generalized_lambert_w(-1,x))`, the simplifier
sees the args -1.0, and float(x). The code currently only handles the
case where k is an actual integer, not a float that is an integer.

To fix this, test to see if k is numerically equal to an integer (via
truncate). If it is, set k to be the integer.

903291e... by Raymond Toy <email address hidden>

Merge branch 'master' into rtoy-new-search-paths

2d441fc... by Raymond Toy <email address hidden>

Merge branch 'master' into rtoy-add-def-simp-signum-round-truncate

5579503... by Raymond Toy <email address hidden>

Add comment about filenames in find-toc-file

c5dfb1e... by Raymond Toy <email address hidden>

Support makeinfo 5.1 when building html index

With makeinfo 5.1, the ToC is in maxima_0.html, not index.html, so
search we need to see if either of them exist. Of course, we try
index.html since that's what 6.8 and later create.

Also, makeinfo doesn't create a separate file for the Function and
Variable Index, we have to search for it. The pattern for the title
that we're looking for is slightly different from what we had, update
the regexp for it.

With this change, the index can be created when using makeinfo 5.1.
However, only 2817 entries are found out of the expected 3077. The
missing entries include

 "Airy Functions" "Arithmetic operators" "Arrays" "Assignment
 operators" "Bessel Functions" "Characters" "Combinatorial Functions"
 "Command line options" "Comments" "Constants" "Definitions for IFS
 fractals" "Definitions for Koch snowflakes" "Definitions for Peano
 maps" "Definitions for complex fractals" "Directory operations"
 "Documentation" "Environment operations" "Error Function" "Error
 Messages" "Examples for cobyla"... plus 240 more