--- ais/ai-00185.txt 1999/09/23 18:39:39 1.2 +++ ais/ai-00185.txt 2000/12/14 00:10:32 1.3 @@ -139,3 +139,119 @@ **************************************************************** + +From: Mike Yoder +On: Monday, December 11, 2000, 5:33 PM + +Re: AI95-00185, "Branch cuts of inverse trigonometric and hyperbolic functions" + +I agree with the stated conclusions, and with the suggested fix. I have a +mathematical quibble with one paragraph; this is given at the end, since it +affects no conclusions. In the following, mathematical terminology is as in +Ahlfors, _Complex Analysis_, 2nd edition. + +I had this significant difficulty: though I agree with the fixes, the RM +language as it stands doesn't imply that the fixes are the right ones. Nor +does the Ada 95 Rationale provide any help. There is, however, a simple +principle that would make all cases unambiguous for all practical purposes: +namely, that the (ideal) functions are always analytic continuations of the +(ideal) functions of the same name over the reals. (That is, the ones in +Ada.Numerics.Generic_Elementary_Functions.) It would be good to make this +principle explicit somewhere, ideally somewhere preceding the statements in +G.1.2(12) and G.1.2(20). + +By "for all practical purposes" I mean: the remaining ambiguity is removable by +adding the subsidiary principle that branch cuts are always subsets of the real +or the imaginary axis. This is "intuitively obvious" in some sense but is +perhaps worth stating explicitly for the sake of complete clarity. + +The quibble I mentioned is with this paragraph: + +>These rules are puzzling, because the natural mathematical definition of +>Arcsin and Arccos is such that the real part is continuous; it is the +>imaginary part which has branch cuts. Similarly, the natural mathematical +>definition of Arcsinh is such that the imaginary part is continuous; it is the +>real part which has branch cuts. + +I'm pretty sure I know what is meant here by extending the notion of "branch +cut" to real-valued functions. I'm dubious about whether this is the right way +to do so. For example, the real part of arccos is continuous but not +differentiable across its cut: its behavior is like that of abs(x) at x=0. For +any chosen function among those under discussion (call it 'f'), there is never +an analytic function in any neighborhood straddling a branch cut of f whose +real part matches f's real part. So, I'd prefer to let "branch cut" apply only +to analytic functions. + +**************************************************************** + +From: Pascal Leroy +Sent: Wednesday, December 13, 2000 4:15 AM +Subject: Re: [Ada-Comment] AI-00185 + +> I had this significant difficulty: though I agree with the fixes, the RM +> language as it stands doesn't imply that the fixes are the right ones. Nor +> does the Ada 95 Rationale provide any help. + +Agreed. I looked for guidance in these documents, and couldn't find any, so +I had to go back to the math textbooks. + +> There is, however, a simple +> principle that would make all cases unambiguous for all practical purposes: +> namely, that the (ideal) functions are always analytic continuations of the +> (ideal) functions of the same name over the reals. (That is, the ones in +> Ada.Numerics.Generic_Elementary_Functions.) It would be good to make this +> principle explicit somewhere, ideally somewhere preceding the statements in +> G.1.2(12) and G.1.2(20). + +Agreed. + +> By "for all practical purposes" I mean: the remaining ambiguity is removable +> by adding the subsidiary principle that branch cuts are always subsets of the +> real or the imaginary axis. This is "intuitively obvious" in some sense but +> is perhaps worth stating explicitly for the sake of complete clarity. + +If a complex function is (1) analytic and (2) an extension of the real +function with the same name, you can _prove_ the following: + +1 - The branch cuts are invariant by complex conjugation. +2 - For odd functions the branch cuts are invariant by reflection in the +origin. +3 - The branch cuts begin and end at the points where the function has no +Taylor/Laurent series expansion. + +For the functions at hand, this pretty much constrains the cuts to lie on +the axes. So it seems to me that your "subsidiary principle" is +unnecessary. + +> >These rules are puzzling, because the natural mathematical definition of +> >Arcsin and Arccos is such that the real part is continuous; it is the +> >imaginary part which has branch cuts. Similarly, the natural mathematical +> >definition of Arcsinh is such that the imaginary part is continuous; it is +> > the real part which has branch cuts. +> +> I'm pretty sure I know what is meant here by extending the notion of "branch +> cut" to real-valued functions. I'm dubious about whether this is the right +> way to do so. For example, the real part of arccos is continuous but not +> differentiable across its cut: its behavior is like that of abs(x) at x=0. +> For any chosen function among those under discussion (call it 'f'), there is +> never an analytic function in any neighborhood straddling a branch cut of f +> whose real part matches f's real part. So, I'd prefer to let "branch cut" +> apply only to analytic functions. + +I understand the argument that we should not apply the words "branch cut" to +a function which is not analytic, and surely the real/imaginary parts of +these function aren't. How about replacing "has branch cuts" by "is +discontinuous" in the above paragraph. I.e.: + +"These rules are puzzling, because the natural mathematical definition of +Arcsin and Arccos is such that the real part is continuous; it is the +imaginary part which is discontinuous. Similarly, the natural mathematical +definition of Arcsinh is such that the imaginary part is continuous; it is +the real part which is discontinuous." + +Note that at some point I tried to spell out what I meant by "natural +mathematical definition" (essentially the definition based on the complex +logarithm) but I gave up because of the difficulty of writing complicated +mathematical formulas in a plain text file. + +****************************************************************

Questions? Ask the ACAA Technical Agent