--- ais/ai-00185.txt 2000/12/14 00:10:32 1.3 +++ ais/ai-00185.txt 2000/12/22 00:23:07 1.4 @@ -255,3 +255,222 @@ mathematical formulas in a plain text file. **************************************************************** + +From: Pascal Leroy +Sent: Thursday, December 14, 2000 4:35 AM + +> Hi, Pascal. I thought I'd spare the others the gruesome mathematical +> details, and just converse with you. + +Good idea. I am copying John, who is as far as I can tell the only other +ARG member interested in "gruesome mathematical details". I am also copying +Randy to make sure that the discussion is recorded in the AI. + +> >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 #3 I agree. For #1 and #2 I don't see this, unless there are +> *different* implicit assumptions being made, in which case it might be +> worthwhile to explicitly state *those* assumptions. +> +> Could you supply the proofs in question to me? + +I am copying the following from a 1987 paper by W. Kahan on the +implementation of complex elementary functions. + +"Each of our nine elementary complex function f(z) has a slit or slits that +bound a region, called the principal domain, inside which f(z) has a +principal value that is single valued and analytic (representable locally by +power series), though it must be discontinuous across the slit(s). That +principal value is an extension, with maximal principal domain, of a real +elementary function f(x) analytic at every interior point of its domain, +which is a segment of the real x-axis. To conserve the power series' +validity, points strictly inside that segment must also lie strictly inside +the principal domain; therefore the slit(s) cannot intersect the segment's +interior. Let z* = x - iy denote the complex conjugate of z = x + iy; the +power series for f(x) satisfy the identity f(z*) = f(z)* within some complex +neighbourhood of the segment's interior, so the identity should persevere +throughout the principal domain's interior too. Consequently complex +conjugation must map the slit(s) to itself/themselves. The slit(s) of an +odd function f(z) = -f(-z) must be invariant under reflection in the origin +z = 0. Finally, the slit(s) must begin and end at branch-points: these are +singularities around which some branch of the function cannot be represented +by a Taylor nor Laurent series expansion. A slit can end at branch point at +infinity. + +Consequently the slit for Sqrt, Log, and z ** w turns out to be the negative +real axis. Then the slits for Arcsin, Arccos and Arctanh turn out to be +those parts of the real axis not between -1 and +1; similarly those parts of +the imaginary axis not between -i and +i serve as slits for Arctan and +Arcsinh. The slit for Arccosh, the only slit with a finite branch-point +(-1) inside it, must be drawn along the real axis where z <= +1. None of +this is controversial, although a few other writers have at times drawn the +slits elsewhere either for a special purpose or by mistake; other tastes can +be accomodated by substitutions sometimes so simple as writing, say, Log +(-1) - Log (-1/z) in place of Log (z) to draw its slit along (and just +under) the positive real axis instead of the negative real axis." + +> As extrinsic evidence +> for this, I'll quote Ahlfors p. 98: "The cut along the positive axis could +> be replaced by a cut along any simple arc from 0 to [infinity]... the cuts +> are in no way distinguished lines on the surface, but the introduction of +> specific cuts is necessary for descriptive purposes." In his context he +> was constructing a cut which would *not* be a usual choice, for the +> function z**(1/n) where n > 1 is an integer. + +First, note that the cut for z ** (1/n) falls "naturally" on the negative +real axis. This is quite important, because we don't want the cut to lie on +a part of the real axis where the equivalent real function is well-defined +(x ** (1/n) is perfectly well-defined for x >= 0). + +Now it is true that you can put the cuts where you want. For instance if +you rewrite z ** (1/n) as ((a * z) ** (1/n)) * ((1/a) ** (1/n)), that causes +the cut to rotate around the origin (its direction is given by -a*). But +then the resulting function is _not_ the sum of a power series, because we +don't have f(z*) = f(z)* anymore. + +> Regardless, I intend to drop the suggestion that any secondary principle is +> needed. + +I don't think a secondary principle is needed, but a note could be in order, +to summarize the discussion we are having (if we are having this discussion, +probably someone else could get confused too). + +**************************************************************** + +From: Michael Yoder +Sent: Thursday, December 14, 2000 12:20 PM + +Here (from Kahan's words) are the additional assumptions I knew had to be +there: + +> Let z* = x - iy denote the complex conjugate of z = x + iy; the +>power series for f(x) satisfy the identity f(z*) = f(z)* within some complex +>neighbourhood of the segment's interior, so the identity should persevere +>throughout the principal domain's interior too. Consequently complex +>conjugation must map the slit(s) to itself/themselves. The slit(s) of an +>odd function f(z) = -f(-z) must be invariant under reflection in the origin +>z = 0. + +Here he assumes *without* explicit statement (presumably by analogy) that +if the multivalued function is odd, our single-valued restriction of it +should be odd as well. + +Many years ago I would have taken assumptions like this for granted with +impunity. I am more careful nowadays because I've found cases where two +seemingly self-evident assumptions contradict, and also cases where +obviously desirable axioms lead to potentially large implementation +difficulties. + +Indeed, the following problem occurs with his oddness axiom for Arcsin and +Arctanh on machines without signed zeros. (Here the branch cuts are that +part of the real axis with absolute value greater than 1.) Is it +preferable for the implementation function to be odd on the branch cuts +themselves, or for the result to match that which would obtain on an +implementation with signed zeros for an argument with imaginary part ++0.0? Of course he may have only meant to demand that symmetry in most of +the complex plane and not on the cuts; this might be resolvable by reading +the rest of his paper. + +To sum up: I prefer to state explicitly even the "obvious" axioms because, +as in the example just cited, it is possible for two "obvious" axioms to +collide. + +**************************************************************** + +From: John Barnes +Sent: Thursday, December 14, 2000 10:20 AM + +Thanks for keeping old John informed on this indeed gruesome +mathematical topic. Analysis never was my first love - I was more for +geometry (and curvacious girls). + +I met Kahan once. In fact I gave him a lift from a conference we were +both at somewhere in Oregon to the airport. It was a strange +conference arranged by Los Alamos and I was invited to tell them about +Ada. Must have been around 1982. + +A bright man. He told me how he designed the algorithms built in to +the HP pocket calculator for intergration and equation solution. He +was given so many bytes to fit it in. + +Anyway, without reading this discussion in too much detail, I think +the main thing is to ensure that the truth is told but I wouldn't give +the reader too much detail or alternative views in case it just +confuses. + +**************************************************************** + +From: Randy Brukardt +Sent: Thursday, December 14, 2000 5:14 PM + +> I don't think a secondary principle is needed, but a note could be in order, +> to summarize the discussion we are having (if we are having this discussion, +> probably someone else could get confused too). + +While I barely have a clue what this discussion is about (no, no, NO don't try +to tell me!!), this sounds like an AARM-only note. I doubt we would want to +clutter up the RM with this stuff. + +**************************************************************** + +From: Pascal Leroy +Sent: Friday, December 15, 2000 3:45 AM + +> While I barely have a clue what this discussion is about (no, no, NO don't +> try to tell me!!), + +That's OK, as I said I am only copying you to make sure that the discussion +is recorded in extenso. + +> this sounds like an AARM-only note. I doubt we would want +> to clutter up the RM with this stuff. + +Undoubtedly. Users of the RM don't want to know the details. However a +numerics expert would probably be interested in finding the assumptions +documented in the AARM. I wish the original authors of annex G had done +that, because it would have been much easier to correct their mistake (and +maybe they wouldn't even have made the mistake in the first place). + +**************************************************************** + +From: Pascal Leroy +Sent: Friday, December 15, 2000 3:57 AM + +> Here he assumes *without* explicit statement (presumably by analogy) that +> if the multivalued function is odd, our single-valued restriction of it +> should be odd as well. + +True. Making this assumption explicit in the AI (and the AARM) is fine with +me. + +> Indeed, the following problem occurs with his oddness axiom for Arcsin and +> Arctanh on machines without signed zeros. (Here the branch cuts are that +> part of the real axis with absolute value greater than 1.) Is it +> preferable for the implementation function to be odd on the branch cuts +> themselves, or for the result to match that which would obtain on an +> implementation with signed zeros for an argument with imaginary part +> +0.0? Of course he may have only meant to demand that symmetry in most of +> the complex plane and not on the cuts; this might be resolvable by reading +> the rest of his paper. + +Kahan's paper was, among other things, insisting on the importance of signed +zeros (the subtitle of the paper is: Much Ado About Nothing's Sign Bit). +Other than explaining how complex elementary functions should be computed +(this is surprisingly difficult because some of these functions behave +wildly in the vicinity of their cuts), he explains that if you don't have +signed zeros then you run into all sorts of contradictions when +implementing/using these functions, because many natural mathematical +identities become wrong on the cuts. + +(I must say btw that I cannot get too excited by non-IEEE machines these +days. And I would definitely say that, if the underlying hardware is IEEE, +a decent Ada compiler must have 'Signed_Zeros = True.) + +****************************************************************

Questions? Ask the ACAA Technical Agent