CVS difference for ais/ai-00185.txt

Differences between 1.4 and version 1.5
Log of other versions for file 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