CD> Yes, one would, for instance, have CD> integral(x,-infty,infty, exp(I*k*x)/(x+I*epsilon)) = -2*Pi*I*step(k). CD> This would give precisely the same right result also at k=0 if CD> step(0)=1/2. For cases like this it seems that 1/2 is the best value. Yes, this is an important case, which needs such a function. CD> maybe the best thing to do would be to have step(0)=1/2 and not to do a CD> simplification step(x)^2 -> step(x). CD> Can everybody live with that? Since it is consistent no reasons to object. CD> After all, if desired, such a CD> simplification could also be done by the user. (S)he could do CD> .subs(step(wild())*step(wild())==step(wild()), subs_options::algebraic). In heavy calculations it is important that some simplifications are made automatically on intermediate cases. To this end we may have (in the core GiNaC or user-defined) another function (say "jump") which have the property jump^2(t) -> jump(t). RC> > I missed it. Should we add its power property like that: RC> > RC> >static ex csgn_power(const ex & arg, const ex & exp) RC> >{ RC> >} RC> RC> But that appears to be missing the possibiliby of fractional powers. I am not sure what fractional powers of a negative values should be... Best wishes, Vladimir -- Vladimir V. Kisil email: kisilv@maths.leeds.ac.uk -- www: http://maths.leeds.ac.uk/~kisilv/