Missing resimplify in lambert_w



Billinghurst, David (RTATECH) wrote:
> .......
> I was also wondering how to add a hook/property to integrate 
> (simple) expressions containing a special function, such as:
>  * integrate( sin(x)/x, x)
>  * integrate( x^(n+1).bessel_j(n,x), x)
>  * integrate( jacobi_sn(u,m)^n, dx)
>
> If we could search the expression for special functions and
> have a general, table-driven way of trying custom integration 
> routines.  Perhaps an 'integral-hook (or some better name) 
> property on %sin, %bessel_j .... that returns points to 
> a function with specialized knowledge.
....
transformations based on the occurrence of key words like Bessel_J would 
not be hard to do,
but sin(x)/x  does not have any special function in the input, just in 
the output (Si(x)).

A relatively disciplined way to do this is to look at the organization 
of Tilu, which has a few thousand
patterns. Clearly you do not want to test them one at a time, so they 
have to be organized. Tilu uses
a kind of tree-hashing, but it became rather ad hoc as it was refined.  
A fresh look could be based
on the same kind of organization used in classic tables of integrals, 
where chapter heading indicate
the nature of the patterns contained.  (e.g. sqrt of cubic,  log of 
something).  Also note that most of
the integrals of interest in the world of applied science are DEFINITE 
integrals whose indefinite
integrals do not exist in neat form.  Therefore spending a great deal of 
time doing the (few!)
indefinite integrals may not be particularly useful.

Check a large table of integrals to get some perspective.

The other (major, and generally successful) approach is used in Yannis's 
specint code in Maxima,
as well as in later efforts, especially in Mathematica, to map functions 
to a very general representation
where integration may be possible, e.g. Meier G functions,   and then 
map back if possible.

Going back to the integral-hook notion, the right way to do this would 
be, I think, to have a utility
that inserts your new integral into the tree-like structure of patterns 
that already exist. This is what
Tilu does:  it starts with an empty tree and inserts thousands of 
patterns from several reference books.
Our hope was that users from all over the internet would insert 
additional patterns. It didn't happen.

RJF