intfudu ignores logabs



Thanks for the quick help, this seems to do the trick :)



On 03/30/2011 01:30 PM, Barton Willis wrote:
> -----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
>