abs & asinh



Raymond:

Are you talking below about something other than minimal changes?

If there is a project that is doing something more fundamental about these issues, please let me know more about it.  I'm looking into various things, including:

1.  Propagation of type/range (see Common Lisp declarations) info across argument/function results, which would take care of most of these issues below.
2.  Partial function info, including functions whose domain is not the entire complex plane or the entire real line.
3.  if-then-else simplification, which allows the extension of the less-than-total domains of #2 -- e.g., the if-then-else nature of atan2.

At 07:35 AM 3/25/2011, Raymond Toy wrote:
>>>>>> "Henry" == Henry Baker <hbaker1 at pipeline.com> writes:
>
>    Henry> assume(x>0);
>    Henry> How come
>
>    Henry> abs(sinh(x)) => sinh(x)
>
>    Henry> but
>
>    Henry> abs(asinh(x)) => abs(asinh(x)) SHOULD BE asinh(x)
>
>    Henry> ???
>
>    Henry> asinh(x) is a perfectly good 1-1/onto real increasing odd
>    Henry> function of x.
>
>Exactly, but no one told maxima that fact. :-)
>
>This will be fixed soon.  Maxima also didn't know that atanh is an
>increasing odd function either.  Not sure what to do about acosh since
>the real-valued function is only defined for non-negative x, so maxima
>doesn't know that abs(acosh(x)) = acosh(x) for x>=0.
>
>Ray