# [Maxima] Feature request: cosh(asinh(x)) = sqrt(x^2+1)

Robert Dodier robert.dodier at gmail.com
Mon Jan 21 18:58:01 CST 2008

```On 1/20/08, Jan Bessai <jan.bessai at tu-dortmund.de> wrote:

> Maxima is able to differentiate asinh(x) correctly, but does not know
> the equation cosh(asinh(x)) = sqrt(x^2 + 1) (at least not in 5.13.0)
> which is usually needed to do that.

tellsimpafter as mentioned by Barton is one way to implement that Identity.
Here is another way.

matchdeclare(x,true)\$
defrule (r1, cosh(asinh(x)) , sqrt(x^2 + 1));

Now the rule r1 is applied only when specifically requested
(while tellsimp / tellsimpafter rules are always applied).

1/(1+cosh(asinh(1-u)));
=> 1/(1+cosh(asinh(1-u)));
apply1 (%, r1);
=> 1/(sqrt((u-1)^2+1)+1)

If you have a collection of identities r1, r2, r3, ... you could make up
a function to apply all of them, e.g.

simplify_hyperbolic_fcns (expr) := apply1 (expr, r1, r2, r3, ...)

Note the function to apply rules is named apply1.
There is also a function "apply" which is different.

Hope this helps,

Robert
```