CVS difference for ais/ai-00185.txt
--- 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