Waldek Hebisch schrieb: > > firstname.lastname@example.org wrote: > > > > Waldek Hebisch schrieb: > > > > > > BTW: Core integrator normally only deals with algebraics, > > > exponential and logarithms, sometimes with tangent (when > > > the integrand is a rational function of integration variable > > > and a single tangent). What users see is the result of > > > a postprocessor. I will probably modify postprocessor > > > to restore asin-s and acos-es. > > > > > > > I suspect this would not help in all situations: it would not convert > > the FriCAS term SQRT(x/(x+1))*SQRT(x+1) in example 81 back to my (it is > > not Derive's) term (x+1)*SQRT(1/(x+1))*SQRT(x/(x+1)), or would it? > > Of course asin-s and acos-es are separate from roots. However, > 'sqrt(1/(x+1))' is indirectly part of user input (as part > of derivative of 'asin') so restoring user expressions involves > using 'sqrt(1/(x+1))' too. > > > Since the ASIN's in an integrand get improperly converted to (or are > > improperly interpreted as) ATAN's (perhaps the rational derivative of > > the latter is preferred) you might consider forestalling this branch-cut > > violating act by preprocessing them like this: > > > > ASIN(z) <- 2*ATAN(z/(1+SQRT(1-z^2))) > > > > This is a relation from the Wolfram functions site that holds for > > arbitrary complex z (assuming the MMA choices of branch cuts). It is > > also valid in Derive. > > This formula may have advantages, thanks. However, most complex > processing happens in Risch algorithm, so I need to look at > what consequence it has for Risch. As I wrote atans get > converted to logs anyway. For logs the factor of two before > formula means that we are effectively taking log of a square > root. If that root can be obtained for free, then it is great. > But if some root which otherwise would get squared survives, > then it means much harder job for Risch. So it may be > better to restore asins and acoses from logs, than to > use different transformation to atans and restore atans. >
Such a restoration should be able to correct many antiderivatives, but I also fear that it may be no more than a kludge which can be fooled. Do you consider this a general solution to problem of branch-cut memory loss in the FriCAS integrator?