#2048 In general exp(z)^a --> exp(z*a) not correct


Maxima always simplifies

exp(z)^a --> exp(a*z)

In general this is only correct for -%pi < imagpart(z) <= %pi or a an integer.

This is an example with z = 3/2*%i*%pi and a = 1/2. First we calculate exp(z)^a:

(%i2) sqrt(exp(3/2*%i*%pi)),rectform,factor;
(%o2) -(%i-1)/sqrt(2)

The result for exp(a*z) differs by the sign:

(%i3) exp(3/4*%i*%pi),rectform,factor;
(%o3) (%i-1)/sqrt(2)

In the first example Maxima immediately simplifies exp(3/2*%i*%pi) --> -%i. Therefore, the simplification exp(z)^a is not applied.

Dieter Kaiser


  • Dieter Kaiser

    Dieter Kaiser - 2010-08-03

    In addition:

    The problem is that Maxima simplifies (x^a)^b --> x^(a*b), when x is positive, but this condition is not enough to be correct in general. This is an example:

    (%i2) assume(x>0)$

    (%i3) (x^a)^b;
    (%o3) x^(a*b)

    This type of simplification is correct only if one of the following conditions holds:

    (1) b an integer (correctly implemented) or
    (2) -1 < a <= 1 (not implemented) or
    (3) -%pi < imagpart(a*log(x)) <= %pi (not implemented)

    Dieter Kaiser

  • Dieter Kaiser

    Dieter Kaiser - 2010-09-23
    • status: open --> closed
  • Dieter Kaiser

    Dieter Kaiser - 2010-09-23

    Fixed in simp.lisp revision 1.116.
    Closing this bug report as fixed.
    Dieter Kaiser


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks