| 
      
      
      From: Dieter K. <cra...@us...> - 2011-06-30 18:11:04
      
     | 
| This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Maxima, A Computer Algebra System".
The branch, master has been updated
       via  efb95b32688ed616971c62f3544a3e08858c469d (commit)
       via  f00ee4d6b1769987884af6f23a28622a3184dfa0 (commit)
      from  1f249cec1d61c4f61d8dbd5efedc7d7fee6441d6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit efb95b32688ed616971c62f3544a3e08858c469d
Author: crategus <cra...@us...>
Date:   Thu Jun 30 20:08:19 2011 +0200
    Adding cross references.
diff --git a/doc/info/Input.texi b/doc/info/Input.texi
index 44a3898..cde661e 100644
--- a/doc/info/Input.texi
+++ b/doc/info/Input.texi
@@ -67,10 +67,10 @@ A directory is just a list of files.  Commands which deal with files are:
 @code{closefile}, and
 @code{appendfile}.
 
-When a file name is passed to functions like @code{plot2d}, @code{save}, or 
-@code{writefile} and the file name does not include a path, Maxima stores 
-the file in the current working directory.  The current working directory 
-depends on the system like Windows or Linux and on the installation.
+When a file name is passed to functions like @mrefcomma{plot2d}@w{}
+@mrefcomma{save} or @mref{writefile} and the file name does not include a path,
+Maxima stores the file in the current working directory.  The current working
+directory depends on the system like Windows or Linux and on the installation.
 
 @c -----------------------------------------------------------------------------
 @node Functions and Variables for File Input and Output,  , Files, File Input and Output
@@ -82,10 +82,10 @@ depends on the system like Windows or Linux and on the installation.
 @deffn {Function} appendfile (@var{filename})
 
 Appends a console transcript to @var{filename}.  @code{appendfile} is the same
-as @code{writefile}, except that the transcript file, if it exists, is always
-appended.
+as @mrefcomma{writefile} except that the transcript file, if it exists, is
+always appended.
 
-@code{closefile} closes the transcript file opened by @code{appendfile} or
+@mref{closefile} closes the transcript file opened by @code{appendfile} or
 @code{writefile}.
 
 @opencatbox
@@ -100,33 +100,34 @@ appended.
 
 @code{batch(@var{filename})} reads Maxima expressions from @var{filename} and 
 evaluates them.  @code{batch} searches for @var{filename} in the list 
-@code{file_search_maxima}.  See @code{file_search}.
+@mrefdot{file_search_maxima}  See also @mrefdot{file_search}
 
 @code{batch(@var{filename}, @code{demo})} is like @code{demo(@var{filename})}.
 In this case @code{batch} searches for @var{filename} in the list
-@code{file_search_demo}.  See @code{demo}.
+@mrefdot{file_search_demo}  See @mrefdot{demo}
 
-@code{batch(@var{filename}, @code{test})} is like @code{run_testsuite} with the
+@code{batch(@var{filename}, @code{test})} is like @mref{run_testsuite} with the
 option @code{display_all=true}.  For this case @code{batch} searches 
 @var{filename} in the list @code{file_search_maxima} and not in the list
-@code{file_search_tests} like @code{run_testsuite}.  Furthermore, 
-@code{run_testsuite} runs tests which are in the list @code{testsuite_files}.
-With @code{batch} it is possible to run any file in a test mode, which can be 
-found in the list @code{file_search_maxima}.  This is useful, when writing a
-test file.
+@mref{file_search_tests} like @code{run_testsuite}.  Furthermore,
+@code{run_testsuite} runs tests which are in the list
+@mrefdot{testsuite_files}  With @code{batch} it is possible to run any file in
+a test mode, which can be found in the list @code{file_search_maxima}.  This is
+useful, when writing a test file.
 
 @var{filename} comprises a sequence of Maxima expressions, each terminated with
-@code{;} or @code{$}.  The special variable @code{%} and the function @code{%th}
-refer to previous results within the file.  The file may include @code{:lisp}
-constructs.  Spaces, tabs, and newlines in the file are ignored.  A suitable
-input file may be created by a text editor or by the @code{stringout} function.
+@code{;} or @code{$}.  The special variable @mref{%} and the function
+@mref{%th} refer to previous results within the file.  The file may include
+@code{:lisp} constructs.  Spaces, tabs, and newlines in the file are ignored.
+A suitable input file may be created by a text editor or by the
+@mref{stringout} function.
 
 @code{batch} reads each input expression from @var{filename}, displays the input
 to the console, computes the corresponding output expression, and displays the
 output expression.  Input labels are assigned to the input expressions and
 output labels are assigned to the output expressions.  @code{batch} evaluates
 every input expression in the file unless there is an error.  If user input is
-requested (by @code{asksign} or @code{askinteger}, for example) @code{batch}
+requested (by @mref{asksign} or @mrefcomma{askinteger} for example) @code{batch}
 pauses to collect the requisite input and then continue.
 
 @c CTRL-C BREAKS batch IN CMUCL, BUT CLISP (ALTHO IT SHOWS "User break") 
@@ -145,7 +146,7 @@ option @code{demo}.  When called with the option @code{test}, the return value
 is a an empty list @code{[]} or a list with @var{filename} and the numbers of
 the tests which have failed.
 
-See also @code{load}, @code{batchload}, and @code{demo}.
+See also @mrefcomma{load} @mrefcomma{batchload} and @mrefdot{demo}
 
 @opencatbox
 @category{Session management} @category{File input}
@@ -160,17 +161,17 @@ See also @code{load}, @code{batchload}, and @code{demo}.
 
 Reads Maxima expressions from @var{filename} and evaluates them, without
 displaying the input or output expressions and without assigning labels to
-output expressions.  Printed output (such as produced by @code{print} or
-@code{describe}) is displayed, however.
+output expressions.  Printed output (such as produced by @mref{print} or
+@mref{describe}) is displayed, however.
 
-The special variable @code{%} and the function @code{%th} refer to previous
+The special variable @mref{%} and the function @mref{%th} refer to previous
 results from the interactive interpreter, not results within the file.
 The file cannot include @code{:lisp} constructs.
 
 @code{batchload} returns the path of @var{filename}, as a string.
 @code{batchload} evaluates its argument.
 
-See also @code{batch} and @code{load}.
+See also @mrefcomma{batch} and @mrefdot{load}
 @c batchload APPEARS TO HAVE THE SAME EFFECT AS load.
 @c WHY NOT GET RID OF batchload ???
 
@@ -183,7 +184,7 @@ See also @code{batch} and @code{load}.
 @anchor{closefile}
 @deffn {Function} closefile ()
 
-Closes the transcript file opened by @code{writefile} or @code{appendfile}.
+Closes the transcript file opened by @mref{writefile} or @mrefdot{appendfile}
 
 @opencatbox
 @category{File output} @category{Console interaction}
@@ -199,11 +200,11 @@ Default value: @code{false}
 truncate their output file.  When @code{file_output_append} is @code{true}, such
 functions append to their output file.  Otherwise, the output file is truncated.
 
-@code{save}, @code{stringout}, and @code{with_stdout} respect
+@mrefcomma{save} @mrefcomma{stringout} and @mref{with_stdout} respect
 @code{file_output_append}.  Other functions which write output files do not
 respect @code{file_output_append}.  In particular, plotting and translation
-functions always truncate their output file, and @code{tex} and
-@code{appendfile} always append.
+functions always truncate their output file, and @mref{tex} and
+@mref{appendfile} always append.
 @c WHAT ABOUT WRITEFILE ??
 
 @opencatbox
@@ -237,12 +238,13 @@ The result is a Lisp pathname object.
 @code{file_search} searches for the file @var{filename} and returns the path to
 the file (as a string) if it can be found; otherwise @code{file_search} returns
 @code{false}.  @code{file_search (@var{filename})} searches in the default
-search directories, which are specified by the @code{file_search_maxima},
-@code{file_search_lisp}, and @code{file_search_demo} variables.
+search directories, which are specified by the
+@mrefcomma{file_search_maxima} @mrefcomma{file_search_lisp} and
+@mref{file_search_demo} variables.
 
 @code{file_search} first checks if the actual name passed exists,
 before attempting to match it to ``wildcard'' file search patterns.
-See @code{file_search_maxima} concerning file search patterns.
+See @mref{file_search_maxima} concerning file search patterns.
 
 The argument @var{filename} can be a path and file name, or just a file name,
 or, if a file search directory includes a file search pattern, just the base of
@@ -265,10 +267,10 @@ any of the default search directories.  Even if there is only one directory in
 @var{pathlist}, it must still be given as a one-element list.
 
 The user may modify the default search directories.
-See @code{file_search_maxima}.
+See @mrefdot{file_search_maxima}
 
-@code{file_search} is invoked by @code{load} with @code{file_search_maxima} and
-@code{file_search_lisp} as the search directories.
+@code{file_search} is invoked by @mref{load} with @code{file_search_maxima} and
+@mref{file_search_lisp} as the search directories.
 
 @opencatbox
 @category{File input}
@@ -287,9 +289,9 @@ See @code{file_search_maxima}.
 @defvrx {Option variable} file_search_usage
 @defvrx {Option variable} file_search_tests
 
-These variables specify lists of directories to be searched by @code{load},
-@code{demo}, and some other Maxima functions.  The default values of these
-variables name various directories in the Maxima installation.
+These variables specify lists of directories to be searched by
+@mrefcomma{load} @mrefcomma{demo} and some other Maxima functions.  The default
+values of these variables name various directories in the Maxima installation.
 
 The user can modify these variables, either to replace the default values or to
 append additional directories.  For example,
@@ -309,6 +311,7 @@ file_search_maxima: append (file_search_maxima,
 appends two additional directories.  It may be convenient to put such an
 expression in the file @code{maxima-init.mac} so that the file search path is
 assigned automatically when Maxima starts.
+See also @ref{Introduction for Runtime Environment}.
 
 Multiple filename extensions and multiple paths can be specified by special 
 ``wildcard'' constructions.  The string @code{###} expands into the sought-after
@@ -340,14 +343,14 @@ to open the file and inspect the content.
 
 The return value is a symbol, either @code{object}, @code{lisp}, or
 @code{maxima}.  If the extension is matches one of the values in
-@code{file_type_maxima} @code{file_type} returns @code{maxima}.  If the
-extension matchees one of the values in @code{file_type_lisp},
-@code{file_type} returns @code{lisp}.  If none of the above,
-@code{file_type} returns @code{object}.
+@code{file_type_maxima}, @code{file_type} returns @code{maxima}.  If the
+extension matches one of the values in @code{file_type_lisp}, @code{file_type}
+returns @code{lisp}.  If none of the above, @code{file_type} returns
+@code{object}.
 
-See also @code{pathname_type}.
+See also @mrefdot{pathname_type}
 
-See @code{file_type_maxima} and @code{file_type_lisp} for the default values.
+See @mref{file_type_maxima} and @mref{file_type_lisp} for the default values.
 
 Examples:
 
@@ -374,7 +377,7 @@ Default value:  @code{[l, lsp, lisp]}
 @code{file_type_lisp} is a list of file extensions that maxima recognizes
 as denoting a Lisp source file.
 
-See also @code{file_type}.
+See also @mrefdot{file_type}
 @end defvr
 
 @c -----------------------------------------------------------------------------
@@ -385,7 +388,7 @@ Default value:  @code{[mac, mc, demo, dem, dm1, dm2, dm3, dmt]}
 @code{file_type_maxima} is a list of file extensions that maxima recognizes
 as denoting a Maxima source file.
 
-See also @code{file_type}.
+See also @mrefdot{file_type}
 @end defvr
 
 @c -----------------------------------------------------------------------------
@@ -395,26 +398,26 @@ See also @code{file_type}.
 Evaluates expressions in @var{filename}, thus bringing variables, functions, and
 other objects into Maxima.  The binding of any existing object is clobbered by
 the binding recovered from @var{filename}.  To find the file, @code{load} calls
-@code{file_search} with @code{file_search_maxima} and @code{file_search_lisp}
-as the search directories.  If @code{load} succeeds, it returns the name of the
-file.  Otherwise @code{load} prints an error message.
+@mref{file_search} with @mref{file_search_maxima} and
+@mref{file_search_lisp} as the search directories.  If @code{load} succeeds, it
+returns the name of the file.  Otherwise @code{load} prints an error message.
 
 @code{load} works equally well for Lisp code and Maxima code.  Files created by
-@code{save}, @code{translate_file}, and @code{compile_file}, which create Lisp
-code, and @code{stringout}, which creates Maxima code, can all be processed by
-@code{load}.  @code{load} calls @code{loadfile} to load Lisp files and
-@code{batchload} to load Maxima files.
+@mrefcomma{save} @mrefcomma{translate_file} and @mrefcomma{compile_file} which
+create Lisp code, and @mrefcomma{stringout} which creates Maxima code, can all
+be processed by @code{load}.  @code{load} calls @mref{loadfile} to load Lisp
+files and @mref{batchload} to load Maxima files.
 
 @code{load} does not recognize @code{:lisp} constructs in Maxima files, and
 while processing @var{filename}, the global variables @code{_}, @code{__},
 @code{%}, and @code{%th} have whatever bindings they had when @code{load} was
 called.
 
-See also @code{loadfile}, @code{batch}, @code{batchload}, and @code{demo}.
-@code{loadfile} processes Lisp files; @code{batch}, @code{batchload}, and
-@code{demo} process Maxima files.
+See also @mrefcomma{loadfile} @mrefcomma{batch} @mrefcomma{batchload} and
+@mrefdot{demo}  @code{loadfile} processes Lisp files; @code{batch},
+@code{batchload}, and @code{demo} process Maxima files.
 
-See @code{file_search} for more detail about the file search mechanism.
+See @mref{file_search} for more detail about the file search mechanism.
 
 @code{load} evaluates its argument.
 
@@ -428,8 +431,8 @@ See @code{file_search} for more detail about the file search mechanism.
 @defvr {System variable} load_pathname
 Default value: @code{false}
 
-When a file is loaded with the functions @code{load}, @code{loadfile} or 
-@code{batchload} the system variable @code{load_pathname} is bound to the 
+When a file is loaded with the functions @mrefcomma{load} @mref{loadfile} or
+@mref{batchload} the system variable @code{load_pathname} is bound to the
 pathname of the file which is processed.
 
 The variable @code{load_pathname} can be accessed from the file during the
@@ -468,12 +471,12 @@ End of batchfile
 @deffn {Function} loadfile (@var{filename})
 
 Evaluates Lisp expressions in @var{filename}.  @code{loadfile} does not invoke
-@code{file_search}, so @code{filename} must include the file extension and as
-much of the path as needed to find the file.
+@mrefcomma{file_search} so @code{filename} must include the file extension and
+as much of the path as needed to find the file.
 
-@code{loadfile} can process files created by @code{save}, @code{translate_file},
-and @code{compile_file}.  The user may find it more convenient to use
-@code{load} instead of @code{loadfile}.
+@code{loadfile} can process files created by @mrefcomma{save}@w{}
+@mrefcomma{translate_file} and @mrefdot{compile_file}  The user may find it
+more convenient to use @mref{load} instead of @code{loadfile}.
 
 @opencatbox
 @category{Session management} @category{File input}
@@ -499,7 +502,7 @@ a file is loaded by the function @code{loadfile}.
 @item
 When @code{loadprint} is @code{'autoload},
 print a message only if a file is automatically loaded.
-See @code{setup_autoload}.
+See @mrefdot{setup_autoload}
 @item
 When @code{loadprint} is @code{false}, never print a message.
 @end itemize
@@ -516,14 +519,15 @@ When @code{loadprint} is @code{false}, never print a message.
 @defvr {Option variable} packagefile
 Default value: @code{false}
 
-Package designers who use @code{save} or @code{translate} to create packages
+Package designers who use @mref{save} or @mref{translate} to create packages
 (files) for others to use may want to set @code{packagefile: true} to prevent
-information from being added to Maxima's information-lists (e.g.  @code{values},
-@code{functions}) except where necessary when the file is loaded in.  In this
-way, the contents of the package will not get in the user's way when he adds his
-own data.  Note that this will not solve the problem of possible name conflicts.
-Also note that the flag simply affects what is output to the package file.
-Setting the flag to @code{true} is also useful for creating Maxima init files.
+information from being added to Maxima's information-lists (e.g.
+@mrefcomma{values} @mref{functions}) except where necessary when the file is
+loaded in.  In this way, the contents of the package will not get in the user's
+way when he adds his own data.  Note that this will not solve the problem of
+possible name conflicts.  Also note that the flag simply affects what is output
+to the package file.  Setting the flag to @code{true} is also useful for
+creating Maxima init files.
 
 @opencatbox
 @category{Translation flags and variables}
@@ -571,7 +575,7 @@ or a symbol; if it is a symbol, it is converted to a string.
 If @var{path} names a file which is accessible from the current working
 directory, that file is printed to the console.  Otherwise, @code{printfile}
 attempts to locate the file by appending @var{path} to each of the elements of
-@code{file_search_usage} via @code{filename_merge}.
+@mref{file_search_usage} via @mrefdot{filename_merge}
 
 @code{printfile} returns @var{path} if it names an existing file,
 or otherwise the result of a successful filename merge.
@@ -660,17 +664,18 @@ ignored.  @code{save} returns @var{filename}.
 
 @code{save} stores data in the form of Lisp expressions.
 The data stored by @code{save} may be recovered by @code{load (@var{filename})}.
+See @mrefdot{load}
 
-The global flag @code{file_output_append} governs whether @code{save} appends or
+The global flag @mref{file_output_append} governs whether @code{save} appends or
 truncates the output file.  When @code{file_output_append} is @code{true},
 @code{save} appends to the output file.  Otherwise, @code{save} truncates the
 output file.  In either case, @code{save} creates the file if it does not yet
 exist.
 
 The special form @code{save (@var{filename}, values, functions, labels, ...)}
-stores the items named by @code{values}, @code{functions}, @code{labels}, etc.
-The names may be any specified by the variable @code{infolists}.
-@code{values} comprises all user-defined variables.
+stores the items named by @mrefcomma{values} @mrefcomma{functions}@w{}
+@mrefcomma{labels} etc.  The names may be any specified by the variable
+@mrefdot{infolists}  @code{values} comprises all user-defined variables.
 
 The special form @code{save (@var{filename}, [@var{m}, @var{n}])} stores the
 values of input and output labels @var{m} through @var{n}.  Note that @var{m}
@@ -694,8 +699,8 @@ For example, @code{save (@var{filename}, aa, bb, cc=42, functions, [11, 17])}.
 The special form @code{save (@var{filename}, all)} stores the current state of
 Maxima.  This includes all user-defined variables, functions, arrays, etc., as
 well as some automatically defined items.  The saved items include system
-variables, such as @code{file_search_maxima} or @code{showtime}, if they have
-been assigned new values by the user; see @code{myoptions}.
+variables, such as @mref{file_search_maxima} or @mrefcomma{showtime} if they
+have been assigned new values by the user; see @mrefdot{myoptions}
 
 @code{save} evaluates @var{filename} and quotes all other arguments.
 
@@ -714,10 +719,10 @@ been assigned new values by the user; see @code{myoptions}.
 
 @code{stringout} writes expressions to a file in the same form the expressions
 would be typed for input.  The file can then be used as input for the
-@code{batch} or @code{demo} commands, and it may be edited for any purpose.
-@code{stringout} can be executed while @code{writefile} is in progress.
+@mref{batch} or @mref{demo} commands, and it may be edited for any purpose.
+@code{stringout} can be executed while @mref{writefile} is in progress.
 
-The global flag @code{file_output_append} governs whether @code{stringout}
+The global flag @mref{file_output_append} governs whether @code{stringout}
 appends or truncates the output file.  When @code{file_output_append} is
 @code{true}, @code{stringout} appends to the output file.  Otherwise,
 @code{stringout} truncates the output file.  In either case, @code{stringout}
@@ -730,7 +735,7 @@ of the variable.  As a useful special case, the expressions may be
 input labels (@code{%i1}, @code{%i2}, @code{%i3}, @dots{}) or output labels
 (@code{%o1}, @code{%o2}, @code{%o3}, @dots{}).
 
-If @code{grind} is @code{true}, @code{stringout} formats the output using the
+If @mref{grind} is @code{true}, @code{stringout} formats the output using the
 @code{grind} format.  Otherwise the @code{string} format is used.  See
 @code{grind} and @code{string}.
 
@@ -741,10 +746,10 @@ The special form @code{stringout (@var{filename}, input)} writes all
 input labels to the file.
 
 The special form @code{stringout (@var{filename}, functions)} writes all
-user-defined functions (named by the global list @code{functions}) to the file.
+user-defined functions (named by the global list @mref{functions}) to the file.
 
 The special form @code{stringout (@var{filename}, values)} writes all
-user-assigned variables (named by the global list @code{values}) to the file.
+user-assigned variables (named by the global list @mref{values}) to the file.
 Each variable is printed as an assignment statement, with the name of the
 variable, a colon, and its value.  Note that the general form of
 @code{stringout} does not print variables as assignment statements.
@@ -785,7 +790,7 @@ return their TeX output as a string.
 label.  Quote-quote @code{''} forces evaluation of the argument, thereby
 defeating the test and preventing the label.
 
-See also @code{texput}.
+See also @mrefdot{texput}
 
 Examples:
 
@@ -1163,17 +1168,17 @@ g\left(x\right)+f\left(x\right)
 Evaluates @var{expr_1}, @var{expr_2}, @var{expr_3}, @dots{} and writes any
 output thus generated to a file @var{f} or output stream @var{s}.  The evaluated
 expressions are not written to the output.  Output may be generated by
-@code{print}, @code{display}, @code{grind}, among other functions.
+@mrefcomma{print} @mrefcomma{display} @mrefcomma{grind} among other functions.
 
-The global flag @code{file_output_append} governs whether @code{with_stdout}
-appends or truncates the output file @var{f}.  When @code{file_output_append} is
-@code{true}, @code{with_stdout} appends to the output file.  Otherwise,
+The global flag @mref{file_output_append} governs whether @code{with_stdout}
+appends or truncates the output file @var{f}.  When @code{file_output_append}
+is @code{true}, @code{with_stdout} appends to the output file.  Otherwise,
 @code{with_stdout} truncates the output file.  In either case,
 @code{with_stdout} creates the file if it does not yet exist.
 
 @code{with_stdout} returns the value of its final argument.
 
-See also @code{writefile}.
+See also @mrefdot{writefile}
 
 @c THIS DOESN'T SEEM VERY IMPORTANT TO MENTION ...
 @c Note the binding of display2d to be
@@ -1218,21 +1223,21 @@ just as it appears on the console.
 
 As the transcript is printed in the console output format, it cannot be reloaded
 into Maxima.  To make a file containing expressions which can be reloaded,
-see @code{save} and @code{stringout}.  @code{save} stores expressions in Lisp
+see @mref{save} and @mrefdot{stringout}  @code{save} stores expressions in Lisp
 form, while @code{stringout} stores expressions in Maxima form.
 
 The effect of executing @code{writefile} when @var{filename} already exists
 depends on the underlying Lisp implementation; the transcript file may be
-clobbered, or the file may be appended.  @code{appendfile} always appends to
+clobbered, or the file may be appended.  @mref{appendfile} always appends to
 the transcript file.
 
-It may be convenient to execute @code{playback} after @code{writefile} to save
+It may be convenient to execute @mref{playback} after @code{writefile} to save
 the display of previous interactions.  As @code{playback} displays only the
 input and output variables (@code{%i1}, @code{%o1}, etc.), any output generated
 by a print statement in a function (as opposed to a return value) is not
 displayed by @code{playback}.
 
-@code{closefile} closes the transcript file opened by @code{writefile} or
+@mref{closefile} closes the transcript file opened by @code{writefile} or
 @code{appendfile}.
 
 @opencatbox
diff --git a/doc/info/Matrices.texi b/doc/info/Matrices.texi
index 962eb48..b0729ef 100644
--- a/doc/info/Matrices.texi
+++ b/doc/info/Matrices.texi
@@ -26,7 +26,7 @@ product.  When the operands are 1-column or 1-row matrices @code{a} and
 complex, this is the scalar product, also called the inner product or dot
 product, of @code{a} and @code{b}.  The scalar product is defined as
 @code{conjugate(a).b} when @code{a} and @code{b} are complex;
-@code{innerproduct} in the @code{eigen} package provides the complex scalar
+@mref{innerproduct} in the @code{eigen} package provides the complex scalar
 product.
 
 When the operands are more general matrices,
@@ -40,11 +40,11 @@ floating point number, it may be necessary to leave spaces on either side.
 For example, @code{5.e3} is @code{5000.0} but @code{5 . e3} is @code{5}
 times @code{e3}.
 
-There are several flags which govern the simplification of
-expressions involving @code{.}, namely
-@code{dot}, @code{dot0nscsimp}, @code{dot0simp}, @code{dot1simp},
-@code{dotassoc}, @code{dotconstrules}, @code{dotdistrib}, @code{dotexptsimp},
-@code{dotident}, and @code{dotscrules}.
+There are several flags which govern the simplification of expressions
+involving @code{.}, namely @mrefcomma{dot0nscsimp} @mrefcomma{dot0simp}@w{}
+@mrefcomma{dot1simp} @mrefcomma{dotassoc} @mrefcomma{dotconstrules}@w{}
+@mrefcomma{dotdistrib} @mrefcomma{dotexptsimp} @mrefcomma{dotident} and
+@mrefdot{dotscrules}
 
 @c -----------------------------------------------------------------------------
 @node Vectors, eigen, Dot, Introduction to Matrices and Linear Algebra
@@ -66,8 +66,8 @@ There are also functions for deriving the scalar or vector potential
 of a field.
 
 The @code{vect} package contains these functions:
-@code{vectorsimp}, @code{scalefactors},
-@code{express}, @code{potential}, and @code{vectorpotential}.
+@mrefcomma{vectorsimp} @mrefcomma{scalefactors} @mrefcomma{express}@w{}
+@mrefcomma{potential} and @mrefdot{vectorpotential}
 @c REVIEW vect.usg TO ENSURE THAT TEXINFO HAS WHATEVER IS THERE
 @c PRINTFILE(VECT,USAGE,SHARE); for details.
 
@@ -96,8 +96,9 @@ of this package.
 but without the user prompt between successive computations.
 
 The functions in the @code{eigen} package are:@*
-@code{innerproduct}, @code{unitvector}, @code{columnvector}, @code{gramschmidt}, @code{eigenvalues},
-@code{eigenvectors}, @code{uniteigenvectors}, and @code{similaritytransform}.
+@mrefcomma{innerproduct} @mrefcomma{unitvector} @mrefcomma{columnvector}@w{}
+@mrefcomma{gramschmidt} @mrefcomma{eigenvalues} @mrefcomma{eigenvectors}@w{}
+@mrefcomma{uniteigenvectors} and @mrefdot{similaritytransform}
 
 @opencatbox
 @category{Vectors} @category{Matrices} @category{Share packages} @category{Package eigen}
@@ -342,7 +343,7 @@ Returns a copy of the matrix @var{M}.  This is the only way
 to make a copy aside from copying @var{M} element by element.
 
 Note that an assignment of one matrix to another, as in @code{m2: m1}, does not
-copy @code{m1}.  An assignment @code{m2 [i,j]: x} or @code{setelmx (x, i, j, m2}
+copy @code{m1}.  An assignment @code{m2 [i,j]: x} or @code{setelmx(x, i, j, m2)}
 also modifies @code{m1 [i,j]}.  Creating a copy with @code{copymatrix} and then
 using assignment creates a separate, modified copy.
 
@@ -353,20 +354,18 @@ using assignment creates a separate, modified copy.
 @end deffn
 
 @c -----------------------------------------------------------------------------
-@anchor{determinat}
+@anchor{determinant}
 @deffn {Function} determinant (@var{M})
 
 Computes the determinant of @var{M} by a method similar to
 Gaussian elimination.
 
 @c JUST HOW DOES ratmx AFFECT THE RESULT ??
-The form of the result depends upon the setting
-of the switch @code{ratmx}.
+The form of the result depends upon the setting of the switch @mrefdot{ratmx}
 
 @c IS A SPARSE DETERMINANT SOMETHING OTHER THAN THE DETERMINANT OF A SPARSE MATRIX ??
-There is a special routine for computing
-sparse determinants which is called when the switches
-@code{ratmx} and @code{sparse} are both @code{true}.
+There is a special routine for computing sparse determinants which is called
+when the switches @code{ratmx} and @mref{sparse} are both @code{true}.
 
 @c EXAMPLES NEEDED HERE
 @opencatbox
@@ -382,9 +381,9 @@ Default value: @code{false}
 When @code{detout} is @code{true}, the determinant of a
 matrix whose inverse is computed is factored out of the inverse.
 
-For this switch to have an effect @code{doallmxops} and @code{doscmxops} should
+For this switch to have an effect @mref{doallmxops} and @mref{doscmxops} should
 be @code{false} (see their descriptions).  Alternatively this switch can be
-given to @code{ev} which causes the other two to be set correctly.
+given to @mref{ev} which causes the other two to be set correctly.
 
 Example:
 
@@ -455,8 +454,8 @@ individual @code{dot} switches govern which operations are performed.
 Default value: @code{true}
 
 When @code{domxexpt} is @code{true},
-a matrix exponential, @code{exp (@var{M})} where @var{M} is a matrix,
-is interpreted as a matrix with element @code{[i,j} equal to @code{exp (m[i,j])}.
+a matrix exponential, @code{exp (@var{M})} where @var{M} is a matrix, is
+interpreted as a matrix with element @code{[i,j} equal to @code{exp (m[i,j])}.
 Otherwise @code{exp (@var{M})} evaluates to @code{exp (@var{ev(M)}}.
 
 @code{domxexpt} affects all expressions of the form
@@ -558,7 +557,7 @@ carried out.
 Default value: @code{false}
 
 When @code{doscmxplus} is @code{true}, scalar-matrix operations yield
-a matrix result.  This switch is not subsumed under @code{doallmxops}.
+a matrix result.  This switch is not subsumed under @mrefdot{doallmxops}
 @c IS THIS AN EVALUATION OR A SIMPLIFICATION FLAG ??
 
 @c NEED EXAMPLE HERE
@@ -636,9 +635,10 @@ Default value: @code{true}
 
 When @code{dotconstrules} is @code{true}, a non-commutative product of a
 constant and another term is simplified to a commutative product.
-@c TERMINOLOGY: (1) SWITCH/FLAG/SOME OTHER TERM ?? (2) ASSIGN/SET/TURN ON/SOME OTHER TERM ??
-Turning on this flag effectively turns on @code{dot0simp}, @code{dot0nscsimp},
-and @code{dot1simp} as well.
+@c TERMINOLOGY: (1) SWITCH/FLAG/SOME OTHER TERM ??
+@c              (2) ASSIGN/SET/TURN ON/SOME OTHER TERM ??
+Turning on this flag effectively turns on @mrefcomma{dot0simp}@w{}
+@mrefcomma{dot0nscsimp} and @mref{dot1simp} as well.
 
 @c NEED EXAMPLE HERE
 @opencatbox
@@ -714,10 +714,10 @@ by elementary row operations such that the first
 non-zero element in each row in the resulting matrix is one and the
 column elements under the first one in each row are all zero.
 
-@code{triangularize} also carries out Gaussian elimination,
-but it does not normalize the leading non-zero element in each row.
+@mref{triangularize} also carries out Gaussian elimination, but it does not
+normalize the leading non-zero element in each row.
 
-@code{lu_factor} and @code{cholesky} are other functions which yield
+@mref{lu_factor} and @mref{cholesky} are other functions which yield
 triangularized matrices.
 
 @c ===beg===
@@ -763,12 +763,11 @@ multiplicities of the eigenvalues in the corresponding order.
 
 @code{eivals} is a synonym for @code{eigenvalues}.
 
-@code{eigenvalues} calls the function @code{solve} to find the roots of the
-characteristic polynomial of the matrix.
-Sometimes @code{solve} may not be able to find the roots of the polynomial;
-in that case some other functions in this
-package (except @code{innerproduct}, @code{unitvector}, @code{columnvector} and
-@code{gramschmidt}) will not work.
+@code{eigenvalues} calls the function @mref{solve} to find the roots of the
+characteristic polynomial of the matrix.  Sometimes @code{solve} may not be able
+to find the roots of the polynomial; in that case some other functions in this
+package (except @mrefcomma{innerproduct} @mrefcomma{unitvector}@w{}
+@mref{columnvector} and @mref{gramschmidt}) will not work.
 @c WHICH ONES ARE THE FUNCTIONS WHICH DON'T WORK ??
 @c ACTUALLY IT'S MORE IMPORTANT TO LIST THE ONES WHICH DON'T WORK HERE
 @c WHAT DOES "will not work" MEAN, ANYWAY ??
@@ -780,7 +779,7 @@ simplify the eigenvalues using some other functions.
 @c WHAT ARE THOSE OTHER FUNCTIONS ??
 
 The package @code{eigen.mac} is loaded automatically when
-@code{eigenvalues} or @code{eigenvectors} is referenced.
+@code{eigenvalues} or @mref{eigenvectors} is referenced.
 If @code{eigen.mac} is not already loaded,
 @code{load ("eigen")} loads it.
 After loading, all functions and variables in the package are available.
@@ -809,7 +808,7 @@ There may be one or more eigenvectors in each list.
 @code{eivects} is a synonym for @code{eigenvectors}.
 
 The package @code{eigen.mac} is loaded automatically when
-@code{eigenvalues} or @code{eigenvectors} is referenced.
+@mref{eigenvalues} or @code{eigenvectors} is referenced.
 If @code{eigen.mac} is not already loaded,
 @code{load ("eigen")} loads it.
 After loading, all functions and variables in the package are available.
@@ -829,7 +828,7 @@ the eigenvalues of the matrix are known to the user and stored under the global
 name @code{listeigvals}.  @code{listeigvals} should be set to a list similar
 to the output @code{eigenvalues}.
 
-The function @code{algsys} is used here to solve for the eigenvectors.
+The function @mref{algsys} is used here to solve for the eigenvectors.
 Sometimes if the eigenvalues are messy, @code{algsys} may not be able to find a
 solution.  In some cases, it may be possible to simplify the eigenvalues by
 first finding them using @code{eigenvalues} command and then using other
@@ -837,7 +836,7 @@ functions to reduce them to something simpler.  Following simplification,
 @code{eigenvectors} can be called again with the @code{knowneigvals} flag set
 to @code{true}.
 
-See also @code{eigenvalues}.
+See also @mrefdot{eigenvalues}
 
 Examples:
 
@@ -1000,10 +999,10 @@ Returns a matrix generated from @var{a}, taking element
 @code{@var{a}[@var{i_1}, @var{j_1}]} as the upper-left element and
 @code{@var{a}[@var{i_2}, @var{j_2}]} as the lower-right element of the matrix.
 Here @var{a} is a declared array (created by @code{array} but not by
-@code{make_array}) or an undeclared array, or an array function, or a lambda
+@mref{make_array}) or an undeclared array, or an array function, or a lambda
 expression of two arguments.  (An array function is created like other functions
-with @code{:=} or @code{define}, but arguments are enclosed in square brackets
-instead of parentheses.)
+with @mref{:=} or @mrefcomma{define} but arguments are enclosed in square
+brackets instead of parentheses.)
 
 If @var{j_1} is omitted, it is assumed equal to @var{i_1}.
 If both @var{j_1} and @var{i_1} are omitted, both are assumed equal to 1.
@@ -1074,11 +1073,11 @@ Examples:
 @deffn  {Function} gramschmidt (@var{x})
 @deffnx {Function} gramschmidt (@var{x}, @var{F})
 
-Carries out the Gram-Schmidt orthogonalization algorithm on @var{x},
-which is either a matrix or a list of lists.
-@var{x} is not modified by @code{gramschmidt}.
-The inner product employed by @code{gramschmidt} is @var{F}, if present,
-otherwise the inner product is the function @code{innerproduct}.
+Carries out the Gram-Schmidt orthogonalization algorithm on @var{x}, which is
+either a matrix or a list of lists.  @var{x} is not modified by
+@code{gramschmidt}.  The inner product employed by @code{gramschmidt} is
+@var{F}, if present, otherwise the inner product is the function
+@mrefdot{innerproduct}
 
 If @var{x} is a matrix, the algorithm is applied to the rows of @var{x}.  If
 @var{x} is a list of lists, the algorithm is applied to the sublists, which must
@@ -1087,7 +1086,7 @@ lists, the sublists of which are orthogonal and span the same space as @var{x}.
 If the dimension of the span of @var{x} is less than the number of rows or
 sublists, some sublists of the return value are zero.
 
-@code{factor} is called at each stage of the algorithm to simplify intermediate
+@mref{factor} is called at each stage of the algorithm to simplify intermediate
 results.  As a consequence, the return value may contain factored integers.
 
 @code{load(eigen)} loads this function.
@@ -1187,17 +1186,16 @@ Returns the inverse of the matrix @var{M}.
 The inverse is computed by the adjoint method.
 
 This allows a user to compute the inverse of a matrix with
-bfloat entries or polynomials with floating pt. coefficients without
+bfloat entries or polynomials with floating point coefficients without
 converting to cre-form.
 
-Cofactors are computed by the @code{determinant} function,
-so if @code{ratmx} is @code{false} the inverse is computed
-without changing the representation of the elements.
+Cofactors are computed by the @mref{determinant} function, so if @mref{ratmx} is
+@code{false} the inverse is computed without changing the representation of the
+elements.
 
-The current
-implementation is inefficient for matrices of high order.
+The current implementation is inefficient for matrices of high order.
 
-When @code{detout} is @code{true}, the determinant is factored out of the
+When @mref{detout} is @code{true}, the determinant is factored out of the
 inverse.
 
 The elements of the inverse are not automatically expanded.
@@ -1247,9 +1245,8 @@ Example:
 @defvr {Option variable} lmxchar
 Default value: @code{[}
 
-@code{lmxchar} is the character displayed as the left
-delimiter of a matrix.
-See also @code{rmxchar}.
+@code{lmxchar} is the character displayed as the left delimiter of a matrix.
+See also @mref{rmxchar}.
 
 Example:
 
@@ -1291,26 +1288,24 @@ operator @code{.}.  The corresponding noncommutative exponentiation operator
 is @code{^^}.  For a matrix @code{@var{A}}, @code{@var{A}.@var{A} = @var{A}^^2}
 and @code{@var{A}^^-1} is the inverse of @var{A}, if it exists.
 
-There are switches for controlling simplification of expressions
-involving dot and matrix-list operations.
-These are
-@code{doallmxops}, @code{domxexpt}
-@code{domxmxops}, @code{doscmxops}, and @code{doscmxplus}.
+There are switches for controlling simplification of expressions involving dot
+and matrix-list operations.  These are
+@mrefcomma{doallmxops} @mrefcomma{domxexpt} @mrefcomma{domxmxops}@w{}
+@mrefcomma{doscmxops} and @mrefdot{doscmxplus}
 @c CHECK -- WE PROBABLY WANT EXHAUSTIVE LIST HERE
 
 There are additional options which are related to matrices.  These are:
-@code{lmxchar}, @code{rmxchar}, @code{ratmx}, @code{listarith}, @code{detout},
-@code{scalarmatrix},
-and @code{sparse}.
+@mrefcomma{lmxchar} @mrefcomma{rmxchar} @mrefcomma{ratmx}@w{}
+@mrefcomma{listarith} @mrefcomma{detout} @mrefcomma{scalarmatrix} and
+@mrefdot{sparse}
 @c CHECK -- WE PROBABLY WANT EXHAUSTIVE LIST HERE
 
-There are a number of
-functions which take matrices as arguments or yield matrices as return values.
-See @code{eigenvalues}, @code{eigenvectors},
-@code{determinant},
-@code{charpoly}, @code{genmatrix}, @code{addcol}, @code{addrow}, 
-@code{copymatrix}, @code{transpose}, @code{echelon},
-and @code{rank}.
+There are a number of functions which take matrices as arguments or yield
+matrices as return values.
+See @mrefcomma{eigenvalues} @mrefcomma{eigenvectors} @mrefcomma{determinant}@w{}
+@mrefcomma{charpoly} @mrefcomma{genmatrix} @mrefcomma{addcol}@w{}
+@mrefcomma{addrow} @mrefcomma{copymatrix} @mrefcomma{transpose}@w{}
+@mrefcomma{echelon} and @mrefdot{rank}
 @c CHECK -- WE PROBABLY WANT EXHAUSTIVE LIST HERE
 
 Examples:
@@ -1474,7 +1469,8 @@ matrix inverse, if it exists.
 
 Returns a matrix with element @code{i,j} equal to @code{@var{f}(@var{M}[i,j])}.
 
-See also @code{map}, @code{fullmap}, @code{fullmapl}, and @code{apply}.
+See also @mrefcomma{map} @mrefcomma{fullmap} @mrefcomma{fullmapl} and
+@mrefdot{apply}
 
 @c NEED EXAMPLE HERE
 @opencatbox
@@ -1506,7 +1502,7 @@ The assigned value may be the name of an operator enclosed in quote marks,
 the name of a function,
 or a lambda expression.
 
-See also @code{matrix_element_mult} and @code{matrix_element_transpose}.
+See also @mref{matrix_element_mult} and @mrefdot{matrix_element_transpose}
 
 Example:
 
@@ -1548,7 +1544,7 @@ or a lambda expression.
 
 The dot operator @code{.} is a useful choice in some contexts.
 
-See also @code{matrix_element_add} and @code{matrix_element_transpose}.
+See also @mref{matrix_element_add} and @mrefdot{matrix_element_transpose}
 
 Example:
 
@@ -1592,12 +1588,11 @@ Default value: @code{false}
 
 @code{matrix_element_transpose} is the operation 
 applied to each element of a matrix when it is transposed.
-@code{matrix_element_mult} can be assigned any unary operator.
+@mref{matrix_element_mult} can be assigned any unary operator.
 The assigned value may be the name of an operator enclosed in quote marks,
-the name of a function,
-or a lambda expression.
+the name of a function, or a lambda expression.
 
-When @code{matrix_element_transpose} equals @code{transpose},
+When @code{matrix_element_transpose} equals @mrefcomma{transpose}
 the @code{transpose} function is applied to every element.
 When @code{matrix_element_transpose} equals @code{nonscalars},
 the @code{transpose} function is applied to every nonscalar element.
@@ -1607,7 +1602,7 @@ while the @code{transpose} option always applies @code{transpose}.
 
 The default value, @code{false}, means no operation is applied.
 
-See also @code{matrix_element_add} and @code{matrix_element_mult}.
+See also @mref{matrix_element_add} and @mrefdot{matrix_element_mult}
 
 Examples:
 
@@ -1653,8 +1648,8 @@ Examples:
 Returns the trace (that is, the sum of the elements on the main diagonal) of
 the square matrix @var{M}.
 
-@code{mattrace} is called by @code{ncharpoly},
-an alternative to Maxima's @code{charpoly}.
+@code{mattrace} is called by @mrefcomma{ncharpoly} an alternative to Maxima's
+@mrefdot{charpoly}
 @c UMM, HOW IS THAT RELEVANT HERE ??
 
 @code{load ("nchrpl")} loads this function.
@@ -1681,7 +1676,7 @@ with row @var{i} and column @var{j} removed.
 @deffn {Function} ncharpoly (@var{M}, @var{x})
 
 Returns the characteristic polynomial of the matrix @var{M}
-with respect to @var{x}.  This is an alternative to Maxima's @code{charpoly}.
+with respect to @var{x}.  This is an alternative to Maxima's @mrefdot{charpoly}
 
 @code{ncharpoly} works by computing traces of powers of the given matrix,
 which are known to be equal to sums of powers of the roots of the
@@ -1718,8 +1713,7 @@ minor algorithm.  @code{newdet} returns the result in CRE form.
 @anchor{nonscalar}
 @defvr {Declaration} nonscalar
 
-Makes atoms behave as does a list or matrix with respect to
-the dot operator.
+Makes atoms behave as does a list or matrix with respect to the dot operator.
 
 @opencatbox
 @category{Declarations and inferences} @category{Vectors} @category{Matrices}
@@ -1783,7 +1777,7 @@ matrix inversion to be left in general representation.
 When @code{ratmx} is @code{true},
 the 4 operations mentioned above are performed in CRE form and the
 result of matrix inverse is in CRE form.  Note that this may
-cause the elements to be expanded (depending on the setting of @code{ratfac})
+cause the elements to be expanded (depending on the setting of @mref{ratfac})
 which might not always be desired.
 
 @opencatbox
@@ -1810,7 +1804,7 @@ Default value: @code{]}
 
 @code{rmxchar} is the character drawn on the right-hand side of a matrix.
 
-See also @code{lmxchar}.
+See also @mrefdot{lmxchar}
 
 @opencatbox
 @category{Display flags and variables}
@@ -1843,20 +1837,19 @@ to scalars.
 @anchor{scalefactors}
 @deffn {Function} scalefactors (@var{coordinatetransform})
 
-Here coordinatetransform
-evaluates to the form [[expression1, expression2, ...],
-indeterminate1, indeterminat2, ...], where indeterminate1,
-indeterminate2, etc. are the curvilinear coordinate variables and
-where a set of rectangular Cartesian components is given in terms of
-the curvilinear coordinates by [expression1, expression2, ...].
-@code{coordinates} is set to the vector [indeterminate1, indeterminate2,...],
-and @code{dimension} is set to the length of this vector.  SF[1], SF[2],
-..., SF[DIMENSION] are set to the coordinate scale factors, and @code{sfprod}
-is set to the product of these scale factors.  Initially, @code{coordinates}
-is [X, Y, Z], @code{dimension} is 3, and SF[1]=SF[2]=SF[3]=SFPROD=1,
-corresponding to 3-dimensional rectangular Cartesian coordinates.
-To expand an expression into physical components in the current
-coordinate system, there is a function with usage of the form
+Here @var{coordinatetransform} evaluates to the form 
+@code{[[expression1, expression2, ...], indeterminate1, indeterminat2, ...]},
+where @var{indeterminate1}, @var{indeterminate2}, etc. are the curvilinear
+coordinate variables and where a set of rectangular Cartesian components is
+given in terms of the curvilinear coordinates by
+@code{[expression1, expression2, ...]}.  @code{coordinates} is set to the vector
+@code{[indeterminate1, indeterminate2,...]}, and @code{dimension} is set to the
+length of this vector.  SF[1], SF[2], @dots{}, SF[DIMENSION] are set to the
+coordinate scale factors, and @code{sfprod} is set to the product of these scale
+factors.  Initially, @code{coordinates} is @code{[X, Y, Z]}, @code{dimension}
+is 3, and SF[1]=SF[2]=SF[3]=SFPROD=1, corresponding to 3-dimensional rectangular
+Cartesian coordinates.  To expand an expression into physical components in the
+current coordinate system, there is a function with usage of the form
 @c SOME TEXT HAS GONE MISSING HERE
 
 @opencatbox
@@ -1913,6 +1906,8 @@ to be able to form @code{rightmatrix}.
 @closecatbox
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{sparse}
 @defvr {Option variable} sparse
 Default value: @code{false}
 
@@ -2052,7 +2047,7 @@ this is a unit vector in the same direction as @var{x}.
 @c NEEDS EXAMPLES
 
 @c -----------------------------------------------------------------------------
-@anchor{vectorpotenial}
+@anchor{vectorpotential}
 @deffn {Function} vectorpotential (@var{givencurl})
 
 Returns the vector potential of a given curl vector, in the current coordinate
commit f00ee4d6b1769987884af6f23a28622a3184dfa0
Author: crategus <cra...@us...>
Date:   Thu Jun 30 20:07:30 2011 +0200
    Some formating and adding nodes for cross references.
diff --git a/doc/info/linearalgebra.texi b/doc/info/linearalgebra.texi
index 2e6c391..9dacf2b 100644
--- a/doc/info/linearalgebra.texi
+++ b/doc/info/linearalgebra.texi
@@ -129,12 +129,14 @@ Example:
 @section Functions and Variables for linearalgebra
 @c -----------------------------------------------------------------------------
 
-@deffn {Function} addmatrices (@var{f}, @var{M_1}, ..., @var{M_n})
+@c -----------------------------------------------------------------------------
+@anchor{addmatrices}
+@deffn {Function} addmatrices (@var{f}, @var{M_1}, @dots{}, @var{M_n})
 
 @c REWORD -- THE RESULT IS NOT GENERALLY THE SUM OF M_1, ..., M_N
-Using the function @var{f} as the addition function, return the sum of
-the matrices @var{M_1}, ..., @var{M_n}. The function @var{f} must accept any number of
-arguments (a Maxima nary function).
+Using the function @var{f} as the addition function, return the sum of the
+matrices @var{M_1}, @dots{}, @var{M_n}.  The function @var{f} must accept any
+number of arguments (a Maxima nary function).
 
 Examples:
 
@@ -156,9 +158,10 @@ Examples:
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{blockmatrixp}
 @deffn {Function} blockmatrixp (@var{M})
 
 Return true if and only if @var{M} is a matrix and every entry of 
@@ -167,50 +170,55 @@ Return true if and only if @var{M} is a matrix and every entry of
 @opencatbox
 @category{Package linearalgebra} @category{Predicate functions}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{columnop}
 @deffn {Function} columnop (@var{M}, @var{i}, @var{j}, @var{theta})
 
-If @var{M} is a matrix, return the matrix that results from doing the  
-column operation @code{C_i <- C_i - @var{theta} * C_j}. If @var{M} doesn't have a row
+If @var{M} is a matrix, return the matrix that results from doing the column
+operation @code{C_i <- C_i - @var{theta} * C_j}. If @var{M} doesn't have a row
 @var{i} or @var{j}, signal an error.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{columnswap}
 @deffn {Function} columnswap (@var{M}, @var{i}, @var{j})
 
-If @var{M} is a matrix, swap columns @var{i} and @var{j}.  If @var{M} doesn't have a column
-@var{i} or @var{j}, signal an error.
+If @var{M} is a matrix, swap columns @var{i} and @var{j}.  If @var{M} doesn't
+have a column @var{i} or @var{j}, signal an error.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{columnspace}
 @deffn {Function} columnspace (@var{M})
 
 If @var{M} is a matrix, return @code{span (v_1, ..., v_n)}, where the set
 @code{@{v_1, ..., v_n@}} is a basis for the column space of @var{M}.  The span 
-of the empty set is @code{@{0@}}. Thus, when the column space has only 
+of the empty set is @code{@{0@}}.  Thus, when the column space has only
 one member, return @code{span ()}.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{copy}
 @deffn {Function} copy (@var{e})
 
-Return a copy of the Maxima expression @var{e}. Although @var{e} can be any
+Return a copy of the Maxima expression @var{e}.  Although @var{e} can be any
 Maxima expression, the copy function is the most useful when @var{e} is either 
 a list or a matrix; consider:
+
 @c ===beg===
 @c m : [1,[2,3]]$
 @c mm : m$
@@ -227,7 +235,9 @@ a list or a matrix; consider:
 (%i5) mm;
 (%o5)                      [1,[x,3]]
 @end example
+
 Let's try the same experiment, but this time let @var{mm} be a copy of @var{m}
+
 @c ===beg===
 @c m : [1,[2,3]]$
 @c mm : copy(m)$
@@ -244,43 +254,49 @@ Let's try the same experiment, but this time let @var{mm} be a copy of @var{m}
 (%i10) mm;
 (%o10)                    [1,[x,3]]
 @end example
+
 This time, the assignment to @var{mm} does not change the value of @var{m}.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
-@deffn {Function} cholesky (@var{M})
+@c -----------------------------------------------------------------------------
+@anchor{cholesky}
+@deffn  {Function} cholesky (@var{M})
 @deffnx {Function} cholesky (@var{M}, @var{field})
 
-Return the Cholesky factorization of the matrix selfadjoint (or hermitian) matrix 
-@var{M}. The second argument defaults to 'generalring.' For a description of the
-possible values for @var{field}, see @code{lu_factor}.
+Return the Cholesky factorization of the matrix selfadjoint (or hermitian)
+matrix @var{M}.  The second argument defaults to 'generalring.' For a
+description of the possible values for @var{field}, see @code{lu_factor}.
 
 @opencatbox
 @category{Matrix decompositions} @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{ctranspose}
 @deffn {Function} ctranspose (@var{M})
 
-Return the complex conjugate transpose of the matrix @var{M}. The function
-@code{ctranspose} uses @code{matrix_element_transpose} to transpose each matrix element.
+Return the complex conjugate transpose of the matrix @var{M}.  The function
+@code{ctranspose} uses @code{matrix_element_transpose} to transpose each matrix
+element.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
-@deffn {Function} diag_matrix (@var{d_1}, @var{d_2},...,@var{d_n})
+@c -----------------------------------------------------------------------------
+@anchor{diag_matrix}
+@deffn {Function} diag_matrix (@var{d_1}, @var{d_2}, @dots{}, @var{d_n})
+
+Return a diagonal matrix with diagonal entries @var{d_1}, @var{d_2}, @dots{},
+@var{d_n}.  When the diagonal entries are matrices, the zero entries of the
+returned matrix are zero matrices of the appropriate size; for example:
 
-Return a diagonal matrix with diagonal entries @var{d_1}, @var{d_2},...,@var{d_n}.
-When the diagonal entries are matrices, the zero entries of the returned matrix
-are zero matrices of the appropriate size; for example:
 @c ===beg===
 @c diag_matrix(diag_matrix(1,2),diag_matrix(3,4));
 @c diag_matrix(p,q);
@@ -305,33 +321,37 @@ are zero matrices of the appropriate size; for example:
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{dotproduct}
 @deffn {Function} dotproduct (@var{u}, @var{v})
 
-Return the dotproduct of vectors @var{u} and @var{v}.  This is the same
-as @code{conjugate (transpose (@var{u})) . @var{v}}.  The arguments @var{u} and @var{v} must be
-column vectors.
+Return the dotproduct of vectors @var{u} and @var{v}.  This is the same as
+@code{conjugate (transpose (@var{u})) .  @var{v}}.  The arguments @var{u} and
+@var{v} must be column vectors.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
-@deffn {Function} eigens_by_jacobi (@var{A})
+@c -----------------------------------------------------------------------------
+@anchor{eigens_by_jacobi}
+@deffn  {Function} eigens_by_jacobi (@var{A})
 @deffnx {Function} eigens_by_jacobi (@var{A}, @var{field_type})
 
-Computes the eigenvalues and eigenvectors of @var{A} by the method of Jacobi rotations.
-@var{A} must be a symmetric matrix (but it need not be positive definite nor positive semidefinite).
-@var{field_type} indicates the computational field, either @code{floatfield} or @code{bigfloatfield}.
+Computes the eigenvalues and eigenvectors of @var{A} by the method of Jacobi
+rotations.  @var{A} must be a symmetric matrix (but it need not be positive
+definite nor positive semidefinite).  @var{field_type} indicates the
+computational field, either @code{floatfield} or @code{bigfloatfield}.
 If @var{field_type} is not specified, it defaults to @code{floatfield}.
 
 The elements of @var{A} must be numbers or expressions which evaluate to numbers
 via @code{float} or @code{bfloat} (depending on @var{field_type}).
 
 Examples:
+
 @c ===beg===
 @c S : matrix ([1/sqrt(2), 1/sqrt(2)], [- 1/sqrt(2), 1/sqrt(2)]);
 @c L : matrix ([sqrt(3), 0], [0, sqrt(5)]);
@@ -390,38 +410,43 @@ number of rotations: 1
 @opencatbox
 @category{Matrix decompositions} @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{get_lu_factors}
 @deffn {Function} get_lu_factors (@var{x}) 
 
-When @code{@var{x} = lu_factor (@var{A})}, then @code{get_lu_factors} returns a list of the 
-form @code{[P, L, U]}, where @var{P} is a permutation matrix, @var{L} is lower triangular with
-ones on the diagonal, and @var{U} is upper triangular, and @code{@var{A} = @var{P} @var{L} @var{U}}.
+When @code{@var{x} = lu_factor (@var{A})}, then @code{get_lu_factors} returns a
+list of the form @code{[P, L, U]}, where @var{P} is a permutation matrix,
+@var{L} is lower triangular with ones on the diagonal, and @var{U} is upper
+triangular, and @code{@var{A} = @var{P} @var{L} @var{U}}.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
-@deffn {Function} hankel (@var{col})
+@c -----------------------------------------------------------------------------
+@anchor{hankel}
+@deffn  {Function} hankel (@var{col})
 @deffnx {Function} hankel (@var{col}, @var{row})
 
-Return a Hankel matrix @var{H}. The first column of @var{H} is @var{col};
-except for the first entry, the last row of @var{H} is @var{row}. The
+Return a Hankel matrix @var{H}.  The first column of @var{H} is @var{col};
+except for the first entry, the last row of @var{H} is @var{row}.  The
 default for @var{row} is the zero vector with the same length as @var{col}.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{hessian}
 @deffn {Function} hessian (@var{f}, @var{x})
 
-Returns the Hessian matrix of @var{f} with respect to the list of variables @var{x}.
-The @code{(i, j)}-th element of the Hessian matrix is @code{diff(@var{f}, @var{x}[i], 1, @var{x}[j], 1)}.
+Returns the Hessian matrix of @var{f} with respect to the list of variables
+@var{x}.  The @code{(i, j)}-th element of the Hessian matrix is
+@code{diff(@var{f}, @var{x}[i], 1, @var{x}[j], 1)}.
 
 Examples:
 
@@ -454,21 +479,23 @@ Examples:
 @opencatbox
 @category{Differential calculus} @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{hilbert_matrix}
 @deffn {Function} hilbert_matrix (@var{n})
 
-Return the @var{n} by @var{n} Hilbert matrix. When @var{n} isn't a positive
+Return the @var{n} by @var{n} Hilbert matrix.  When @var{n} isn't a positive
 integer, signal an error.
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
-@deffn {Function} identfor (@var{M})
+@c -----------------------------------------------------------------------------
+@anchor{identfor}
+@deffn  {Function} identfor (@var{M})
 @deffnx {Function} identfor (@var{M}, @var{fld})
 
 Return an identity matrix that has the same shape as the matrix
@@ -476,19 +503,20 @@ Return an identity matrix that has the same shape as the matrix
 multiplicative identity of the field @var{fld}; the default for
 @var{fld} is @var{generalring}.
 
-The first argument @var{M} should be a square matrix or a 
-non-matrix. When @var{M} is a matrix, each entry of @var{M} can be a
-square matrix -- thus @var{M} can be a blocked Maxima matrix. The
-matrix can be blocked to any (finite) depth.
+The first argument @var{M} should be a square matrix or a non-matrix.  When
+@var{M} is a matrix, each entry of @var{M} can be a square matrix -- thus
+@var{M} can be a blocked Maxima matrix.  The matrix can be blocked to any
+(finite) depth.
 
 See also @code{zerofor}
 
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{invert_by_lu}
 @deffn {Function} invert_by_lu (@var{M}, @var{(rng generalring)})
 
 Invert a matrix @var{M} by using the LU factorization.  The LU factorization
@@ -497,13 +525,15 @@ is done using the ring @var{rng}.
 @opencatbox
 @category{Package linearalgebra}
 @closecatbox
-
 @end deffn
 
+@c -----------------------------------------------------------------------------
+@anchor{jacobian}
 @deffn {Function} jacobian (@var{f}, @var{x})
 
-Returns the Jacobian matrix of the list of functions @var{f} with respect to the list of variables @var{x}.
-The @code{(i, j)}-th element of the Jacobian matrix is @code{diff(@var{f}[i], @var{x}[j])}.
+Returns the Jacobian matrix of the list of functions @var{f} with respect to
+the list of variables @var{x}.  The @code{(i,...
 
[truncated message content] |