--- ais/ai-00185.txt 2000/12/22 00:23:07 1.4 +++ ais/ai-00185.txt 2001/01/05 22:56:40 1.5 @@ -1,4 +1,4 @@ -!standard G.1.2 (15) 99-09-18 AI95-00185/01 +!standard G.1.2 (15) 01-01-05 AI95-00185/02 !class binding interpretation 97-03-19 !status work item 99-09-18 !status received 97-03-19 @@ -20,6 +20,15 @@ The real component of the result of the Arccot function is discontinuous as the parameter X crosses the imaginary axis below -i or above i. +Replace G.1.2(20) by: + +The computed results of the mathematically multivalued functions are rendered +single-valued by the following conventions, which are meant to imply that the +principal branch is an analytic continuation of the corresponding real-valued +function in Ada.Numerics.Generic_Elementary_Functions. (For Arctan and Arccot, +the single-argument function in question is that obtained from the two-argument +version by fixing the second argument to be its default value.) + !question The definition of the branch cuts in RM95 G.1.2(15-17) seem contradictory with @@ -36,6 +45,14 @@ !discussion +The RM description of these functions contains contradictions. Fortunately, +these are easily resolved if we assume the (ideal) functions over the complex +plane are meant to be analytic continuations of the (ideal) same-named +functions in Ada.Numerics.Generic_Elementary_Functions. (For Arctan and +Arccot, it is necessary to use the one-argument function derived by using the +default argument of the two-argument function.) This is consistent with normal +mathematical usage, and desirable in its own right. + G.1.2(17) defines the branch cut of Arccot as follows: "The real component of the result of the Arccot function is discontinuous as @@ -47,20 +64,20 @@ approximately Pi." These two paragraphs contradict each other. Consider what happens when X is -real and close to 0.0. Mathematically, the Arccot of 0.0 is any odd multiple of +real and close to 0.0. The multi-valued Arccot of 0.0 is any odd multiple of Pi/2.0. Because G.1.2(17) requires a discontinuity at 0.0, Arccot (-0.0) and Arccot (+0.0) must be two different odd multiples of Pi/2.0. But G.1.2(24) constrains the range of Arccot so that the only acceptable multiple of Pi/2.0 is Pi/2.0. -We resolve the contradiction by following G.1.2(24), because this paragraph is -consistent with the definition of Arccot for a real argument, which states that -the Arccot function "ranges from 0.0 to approximately Pi." (RM95 A.5.1(14-15)) +We follow G.1.2(24), because an analytic continuation of Arccot for real +arguments cannot have a branch cut crossing the real axis. What must be +changed here is the location of the cut. Now consider the rules related to Arcsin: -"The real component of the result of the Arcsin function is discontinuous as the -parameter X crosses the real axis to the left of -1.0 or the right of 1.0." +"The real component of the result of the Arcsin function is discontinuous as +the parameter X crosses the real axis to the left of -1.0 or the right of 1.0." (RM95 G.1.2(15)) and: @@ -68,15 +85,14 @@ "The range of the real component of the result of the Arcsin function is approximately -Pi/2.0 to Pi/2.0." (RM95 G.1.2(23)) -Remember that Arcsin is mathematically multivalued, so that, if Y is one -possible result of Arcsin (X), then Pi - Y and Y + 2.0 * Pi are also possible -results of Arcsin (X). - -Consider what happens when X crosses the real axis to the right of 1.0. Let X = -A + I * B a complex number where A > 0.0 and B is small compared to A (so that -we can use first order approximation). A first order approximation of Arcsin -(X) is: +Remember that if Y is a result of the multi-valued Arcsin, Pi - Y and Y + 2.0 * +Pi are also results. +Consider what happens when X crosses the real axis to the right of 1.0. Let X += A + I * B a complex number where A > 0.0 and B is small compared to A (so +that we can use first order approximation). A first order approximation of +Arcsin (X) is: + Y = Pi / 2.0 + B / Sqrt (A**2 - 1.0) - I * Log (A + Sqrt (A**2 - 1.0)) When B > 0.0, the real part of Y is slightly above Pi / 2.0. In order to keep @@ -87,10 +103,12 @@ real axis to the right of 1.0. A similar analysis could be performed for X to the left of -1.0 and for Arccos -and Arcsinh. +and Arcsinh. For these cases, the description of the cuts is accurate, and +what must change is the description of the properties of the functions. -The rules given in the !summary correspond to the common mathematical -definitions of these functions. +The rules given in the !summary follow from the assumption that the functions +on the complex plane are meant to be an analytic continuations of the +corresponding functions on the real line. !appendix @@ -474,3 +492,4 @@ a decent Ada compiler must have 'Signed_Zeros = True.) **************************************************************** +

Questions? Ask the ACAA Technical Agent