1 Feb 19:26 2009

### Mirror symmetry and realpart/imagpart of functions

Dieter Kaiser <drdieterkaiser <at> web.de>

2009-02-01 18:26:10 GMT

2009-02-01 18:26:10 GMT

We know that realpart/imagpart do not work correctly for most functions with complex arguments. An example is: (%i1) realpart(gamma(1+%i)); (%o1) gamma(1+%i) (%i2) imagpart(gamma(1+%i)); (%o2) 0 Maxima assumes a function always to be real valued. This can be changed by declaring the symbol gamma to be complex. Then we get the noun form for the realpart and the imagpart. For functions which have mirror symmetry we can do more. In general we have realpart(f(x+%i*y)) = 1/2* (conjugate(f(x+%i)) + f(x+%i*y)) imagpart(f(x+%i*y)) = 1/2*%i*(conjugate(f(x+%i)) - f(x+%i*y)) If the function has mirror symmetry this simplifies to: realpart(f(x+%i*y)) = 1/2* (f(x-%i) + f(x+%i*y)) imagpart(f(x+%i*y)) = 1/2*%i*(f(x-%i) - f(x+%i*y)) This is implemented directly into the routine risplit for the Erf function. It is possible to support this simplification in general for function which are declared to have mirror symmetry (or partially). We have to add the following code to the routine risplit:(Continue reading)