]> thyrsus.com Git - mad.git/commitdiff
Index up to Matrices.
authorEric S. Raymond <esr@thyrsus,com>
Mon, 28 Jun 2004 16:04:57 +0000 (16:04 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Mon, 28 Jun 2004 16:04:57 +0000 (16:04 +0000)
doc/mad-manual.xml

index 57bc972bfb10246a29195861d95ea68f86e2e75f..6243c3ea4857f22552bb43242fa212d8f3a40c06 100644 (file)
@@ -689,6 +689,8 @@ iteration box, (not related to the example above) might be:</para>
 increasing it by the amount 3 after each time until either &alpha; >
 90, or |x + y| &le; &epsi;.</para>
 
+<indexterm><primary>Iteration Statement</primary></indexterm> 
+
 <para>We shall abbreviate this by the form:</para>
 
 <programlisting>
@@ -1863,6 +1865,9 @@ to be performed by its presence or absence.</para>
 
 <sect2 id='THROUGH'><title>THROUGH (Iteration) Statement</title>
 
+<indexterm><primary>Iteration Statement</primary></indexterm> 
+<indexterm><primary>Iteration Variable</primary></indexterm> 
+
 <para>The following program segment illustrates the use of this
 statement.</para>
 
@@ -2016,6 +2021,8 @@ might write the iteration as follows:</para>
 
 <!-- beginpage II.17 -->
 
+<indexterm><primary>Iteration, Nested</primary></indexterm> 
+
 <programlisting>
        THROUGH END, FOR J = 2, .GE. K
        ...
@@ -2231,6 +2238,8 @@ will raise a compile-time error.</para></note>
 </sect2>
 <sect2 id='list_statements'><title>List Manipulation Statements</title>
 
+<indexterm><primary>List Manipulation</primary></indexterm> 
+
 <para>These statements facilitate the writing of recursive internal
 and external functions.  (see <xref linkend='funcdefs'/>) They cause
 the designation and use of a vector for the temporary storage of data
@@ -3126,13 +3135,15 @@ Vector</primary></indexterm> </para></listitem>
 <para>Variables may be declared to be array variables, such as vectors or
 matrices of various dimensions, rather than individual variables.</para>
 
- <para>Each array is stored in a region whose elements may be referred to by
-means of a single subscript, such as A(0), A(1), B(16), etc.  Even
-elements of higher dimensional arrays may be referred to in this way
-at any time.  We shall call the subscript thus associated with each
-element of an array its "linear subscript."  If A is an array then the
-name A is equivalent to A(0), e.e., the name A written without a
-subscript is assumed to have a subscript of zero.</para>
+ <para>Each array is stored in a region whose elements may be referred
+to by means of a single subscript, such as A(0), A(1), B(16), etc.
+Even elements of higher dimensional arrays may be referred to in this
+way at any time.  We shall call the subscript thus associated with
+each element of an array its "linear
+subscript."<indexterm><primary>Linear Subscript</primary></indexterm>
+If A is an array then the name A is equivalent to A(0), e.e., the name
+A written without a subscript is assumed to have a subscript of
+zero.</para>
 
 <para>Two dimensional matrices are stored internally by rows, i.e., an
 m &times; n matrix will be stored in the order: a<subscript>11</subscript>,
@@ -3148,6 +3159,8 @@ a<subscript>1122</subscript>, ... a<subscript>112q</subscript>, ...,
 a<subscript>11pq</subscript>, a<subscript>1211</subscript>,...,
 a<subscript>1npq</subscript>, ... a<subscript>mnpq</subscript>.</para>
 
+<indexterm><primary>Matrix Notation</primary></indexterm> 
+
 <para>Elements of higher dimensional arrays may be referred to not only by
 their linear subscripts but also by the usual matrix notation, such as
 A(1,1), A(I,J), B(I+6,J/3+3).</para>
@@ -3426,6 +3439,7 @@ identical in all sections of the program.</para>
 <sect2 id='funcdefs'><title>Function Definitions</title>
 
 <indexterm><primary>Function Definition</primary></indexterm>
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm> 
 
 <!-- the xrefs here were in the form "subsection 3.8.x" in the original -->
 
@@ -3484,6 +3498,8 @@ Functions</primary></indexterm></para>
 </sect3>
 <sect3 id='internal_functions'><title>Internal Function Definitions</title>
 
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm> 
+
 <para>These statements define functions not yet available in the
 language or as standard package programs ("subroutines").  The
 designation "INTERNAL" implies that the definition program which
@@ -3563,6 +3579,7 @@ ZQ = SIN.(J * Y).P.(M + 1) - Y/XBAR + COS.(J*Z).P.(M-1)-Z/XBAR.
 </sect3>
 <sect3 id='internal_and_external'><title>Internal and External Functions</title>
 <indexterm><primary>Function Definition</primary></indexterm>
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm> 
 
 <para>Each function definition (except single statement definitions
 described in <xref linkend='internal_functions'/>) may define any
@@ -3675,6 +3692,7 @@ some Boolean expression.</para>
 <para>It is important to note that internal function definitions of
 any kind whatever (including the single statement definition of <xref
 linkend='internal_functions'/>) may occur anywhere in the program,
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm> 
 except within another internal function definition.  Internal function
 definitions may occur within external function definitions, however.
 External function definitions may not occur within any other programs,
@@ -3824,6 +3842,8 @@ form:</para> <!-- yes, that's "present", not "represented" -->
   </imageobject>
 </mediaobject>
 
+<indexterm><primary>Iteration Statement</primary></indexterm> 
+
 <para>Here the scope of the iteration lies between the hexagonal box
 and diamond box A, and the calculation proceeds from A when the stated
 relation is true.</para>
@@ -4147,6 +4167,8 @@ program deck.</para></note>
 <!-- beginpage III.15 -->
 <sect2><title>Example 5<emphasis role='note'>: Compute the transpose of a matrix</emphasis></title>
 
+<indexterm><primary>Matrix Transpose Example</primary></indexterm> 
+
 <para><emphasis>Problem:</emphasis> Find the transpose A' of an n&times;n
 matrix A = (a<subscript>ij</subscript>).</para>
 
@@ -4233,6 +4255,8 @@ compile this example.  The problem is the array I/O.</para></note>
 <!-- beginpage III.19 -->
 <sect2><title>Example 7<emphasis role='note'>: Solve simultaneous linear equations</emphasis></title>
 
+<indexterm><primary>Jordan Elimination Method Example</primary></indexterm> 
+
 <para><emphasis>Problem</emphasis> Solve a system of n &le; 20 simultaneous
 linear equations in n unknowns, assuming that one does not encounter a
 zero on the main diagonal of the coefficient matrix during the
@@ -4802,6 +4826,9 @@ character per word in W(1)...W(L).</para>
 <sect2><title><emphasis role='note'>Example 2: Compute the factorial function</emphasis></title>
 <para><emphasis>Problem:</emphasis> Evaluate the recursive function,</para>
 
+<!-- not clear what this is referring to -->
+<indexterm><primary>List Manipulation</primary></indexterm> 
+
 <para role='centered'>f(0) = 1</para>
 <para role='centered'>f(n) = f(n-1) * n</para>
 
@@ -6178,7 +6205,9 @@ example, if A is a 4 x 3 matrix (m = 4, n = 3) and b = 1, then V(1) =
 <indexterm><primary>Hierarchy of Parentheses</primary><see>Parentheses</see></indexterm>
 <indexterm><primary>Individual Variables</primary><see>Single Variables</see></indexterm>
 <indexterm><primary>Input-Output Blocks</primary><see>Blocks, Input-Output</see></indexterm>
-
+<indexterm><primary>Labels, Statement</primary><see>Statement, Labels</see></indexterm> 
+<indexterm><primary>List, Input-Output</primary><see>Input-Output List</see></indexterm> 
+<indexterm><primary>Matrices</primary><see>Array Variables</see></indexterm> 
 
 <index/>
 </appendix>