CVS difference for ais/ai-00418.txt

Differences between 1.1 and version 1.2
Log of other versions for file ais/ai-00418.txt

--- ais/ai-00418.txt	2005/03/10 01:03:21	1.1
+++ ais/ai-00418.txt	2005/03/11 21:41:33	1.2
@@ -1,4 +1,4 @@
-!standard G.3.1(1)                                 05-03-09  AI95-00418-01/01
+!standard G.3.1(1)                                 05-03-11  AI95-00418-01/02
 !standard G.3.2(1)
 !class amendment 05-03-09
 !status work item 05-03-09
@@ -21,11 +21,8 @@
 
 !proposal
 
-Add "abs" operators implementing the L2-norm.
+Add "abs" operators implementing the L2-norm. Specify their accuracy.
 
-[What the heck is an L2-norm? We can't have terms that poorly defined in the
-standard. - ED]
-
 !wording
 
 Add after G.3.1(9):
@@ -35,9 +32,27 @@
 Add after G.3.1(39):
 
 function "abs" (Right : Real_Vector) return Real'Base;
+
+This operation returns the L2-norm of Right (the square root of the inner
+product of the vector with itself).
 
-This operation returns the L2-norm of Right.  This operation involves an inner
-product.
+AARM Note: Normalization of vectors is a frequent enough operation that it is
+useful to provide the norm as a basic operation. Furthermore, implementing the
+norm is not entirely straightforward, because the inner product might overflow
+while the final norm does not. An implementation cannot merely return Sqrt (X *
+X), it has to cope with a possible overflow of the inner product.
+
+Add after G.3.1(81):
+
+For the L2-norm, no accuracy requirements are specified in the relaxed mode. In
+the strict mode the relative error on the norm shall not exceed:
+
+    g / 2.0 + 3.0 * Real'Model_Epsilon
+
+AARM Note: This is simply the combination of the error on the inner product
+with the error on Sqrt. A first order computation would lead to 2.0 *
+Real'Model_Epsilon above, but we are adding an extra Real'Model_Epsilon to
+account for higher order effects.
 
 Add after G.3.2(15):
 
@@ -46,9 +61,18 @@
 Add after G.3.2(73):
 
 function "abs" (Right : Complex_Vector) return Real'Base;
+
+This operation returns the Hermitian L2-norm of Right (the square root of the
+inner product of the vector with its conjugate).
+
+Add after G.3.2(150):
+
+For the L2-norm, no accuracy requirements are specified in the relaxed mode. In
+the strict mode the relative error on the norm shall not exceed:
+
+    g / 2.0 + 3.0 * Real'Model_Epsilon
 
-This operation returns the Hermitian L2-norm of Right.  This operation involves
-an inner product.
+Where g has the definition appropriate for two complex operands.
 
 !discussion
 

Questions? Ask the ACAA Technical Agent