intfudu ignores logabs



-----maxima-bounces at math.utexas.edu wrote: -----

>I'm?using?the?"intfudu"?function?from?the?"partition.mac"?file?for?my?
>integrals?(as?it?sometimes?yields?"nicer"?results,?see?
>http://www.math.utexas.edu/pipermail/maxima/2011/023943.html),?but?it?
>seems?to?ignore?the?value?of?the?logabs-setting:

intfudu stores antiderivatives in a Maxima hashtable, so it's possible to modify
intfudu at a command line.

  (%i7) load(partition)$

Find the name of the Maxima hashtable

  (%i8) arrays;
  (%o8) [intable,intable2]

We need to modify intable; look at intable["^"]

  (%i9) intable["^"];
  (%o9) lambda([u,v],if freeof(%voi,u) then [u^v/log(u),diff(v,%voi)] else if freeof(%voi,v) then if v#-1 then      [u^(1+v)/(1+v),diff(u,%voi)] else [log(u),diff(u,%voi)] )

Cut and paste a new value for intable["^"]

 (%i10) intable["^"] : lambda([u,v],if freeof(%voi,u) then [u^v/log(u),diff(v,%voi)] else if freeof(%voi,v) then if v#-1 then  [u^(1+v)/(1+v),diff(u,%voi)] else [log(if logabs then  abs(u) else u),diff(u,%voi)] );

Finally, check your work:

 (%i11) intfudu(1/x, x), logabs : false;
 (%o11) log(x)

 (%i12) intfudu(1/x,x), logabs : true;
 (%o12) log(abs(x))

--Barton Willis