changeset 10791:3140cb7a05a1

Add spellchecker scripts for Octave and run spellcheck of documentation interpreter/doccheck: New directory for spelling/grammar scripts. interpreter/doccheck/README: Instructions for using scripts. interpreter/doccheck/spellcheck: Script to spellcheck a Texinfo file. interpreter/doccheck/aspell.conf: GNU Aspell configuration file for Octave documentation. interpreter/doccheck/aspell-octave.en.pws: Private Aspell dictionary. interpreter/doccheck/add_to_aspell_dict: Script to add new Octave-specific words to private Aspell dictionary. interpreter/octave.texi: New @nospell macro which forces Aspell to ignore the word marked by the macro. interpreter/mk_doc_cache.m: Skip new @nospell macro when building doc_cache.
author Rik <octave@nomad.inbox5.com>
date Sat, 17 Jul 2010 19:53:01 -0700
parents 01f1643dfbb1
children 91342260063e
files doc/ChangeLog doc/interpreter/arith.txi doc/interpreter/audio.txi doc/interpreter/bugs.txi doc/interpreter/contrib.txi doc/interpreter/debug.txi doc/interpreter/diagperm.txi doc/interpreter/doccheck/README doc/interpreter/doccheck/add_to_aspell_dict doc/interpreter/doccheck/aspell-octave.en.pws doc/interpreter/doccheck/aspell.conf doc/interpreter/doccheck/spellcheck doc/interpreter/dynamic.txi doc/interpreter/geometry.txi doc/interpreter/matrix.txi doc/interpreter/mk_doc_cache.m doc/interpreter/numbers.txi doc/interpreter/octave.texi doc/interpreter/oop.txi doc/interpreter/package.txi doc/interpreter/sparse.txi doc/interpreter/tips.txi scripts/ChangeLog scripts/audio/lin2mu.m scripts/general/common_size.m scripts/general/interp1.m scripts/general/interp2.m scripts/general/interpn.m scripts/general/quadl.m scripts/geometry/dsearchn.m scripts/geometry/voronoi.m scripts/geometry/voronoin.m scripts/image/hsv2rgb.m scripts/image/imread.m scripts/image/rgb2hsv.m scripts/linear-algebra/commutation_matrix.m scripts/linear-algebra/condest.m scripts/linear-algebra/expm.m scripts/linear-algebra/krylov.m scripts/linear-algebra/onenormest.m scripts/miscellaneous/perl.m scripts/plot/linkprop.m scripts/plot/plot.m scripts/plot/print.m scripts/plot/stem3.m scripts/signal/diffpara.m scripts/signal/stft.m scripts/sparse/pcg.m scripts/sparse/pcr.m scripts/specfun/primes.m scripts/special-matrix/hadamard.m scripts/special-matrix/hankel.m scripts/special-matrix/invhilb.m scripts/special-matrix/pascal.m scripts/special-matrix/rosser.m scripts/special-matrix/toeplitz.m scripts/special-matrix/vander.m scripts/special-matrix/wilkinson.m scripts/testfun/speed.m src/ChangeLog src/DLD-FUNCTIONS/balance.cc src/DLD-FUNCTIONS/ccolamd.cc src/DLD-FUNCTIONS/cellfun.cc src/DLD-FUNCTIONS/dasrt.cc src/DLD-FUNCTIONS/dmperm.cc src/DLD-FUNCTIONS/eigs.cc src/DLD-FUNCTIONS/qz.cc src/DLD-FUNCTIONS/rand.cc src/DLD-FUNCTIONS/sparse.cc src/DLD-FUNCTIONS/sqrtm.cc src/DLD-FUNCTIONS/symrcm.cc src/dirfns.cc src/file-io.cc src/syscalls.cc
diffstat 74 files changed, 1198 insertions(+), 182 deletions(-) [+]
line wrap: on
line diff
--- a/doc/ChangeLog	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/ChangeLog	Sat Jul 17 19:53:01 2010 -0700
@@ -1,3 +1,33 @@
+2010-07-17  Rik <octave@nomad.inbox5.com>
+
+        * interpreter/doccheck: New directory for spelling/grammar scripts.
+        * interpreter/doccheck/README: Instructions for using scripts.
+        * interpreter/doccheck/spellcheck: Script to spellcheck a Texinfo file.
+        * interpreter/doccheck/aspell.conf: GNU Aspell configuration file for
+        Octave documentation.
+        * interpreter/doccheck/aspell-octave.en.pws: Private Aspell dictionary.
+        * interpreter/doccheck/add_to_aspell_dict: Script to add new 
+        Octave-specific words to private Aspell dictionary.
+        * interpreter/octave.texi: New @nospell macro which forces Aspell to
+          ignore the word marked by the macro.
+        * interpreter/mk_doc_cache.m: Skip new @nospell macro when 
+          building doc_cache.
+        * interpreter/arith.txi, interpreter/audio.txi, 
+          interpreter/bugs.txi, interpreter/contrib.txi, 
+          interpreter/debug.txi, interpreter/diagperm.txi,
+          interpreter/dynamic.txi, interpreter/geometry.txi,
+          interpreter/matrix.txi, interpreter/numbers.txi, 
+          interpreter/oop.txi, interpreter/package.txi,
+          interpreter/sparse.txi, interpreter/tips.txi: 
+          Spellcheck documentation.
+
+          DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc,
+          DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc,
+          DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc,
+          DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc, 
+          DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc,
+          file-io.cc, syscalls.cc
+
 2010-07-01  Rik <octave@nomad.inbox5.com>
 
         * refcard/refcard.tex: Fix italic macro typo for stem.
--- a/doc/interpreter/arith.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/arith.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -148,7 +148,7 @@
 
 Octave provides the following trigonometric functions where angles are
 specified in degrees.  These functions produce true zeros at the appropriate
-intervals rather than the small roundoff error that occurs when using
+intervals rather than the small round-off error that occurs when using
 radians.  For example:
 @example
 @group
--- a/doc/interpreter/audio.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/audio.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -32,7 +32,7 @@
 There are many different formats for representing such data.  Currently,
 only the two most popular, @emph{linear encoding} and @emph{mu-law
 encoding}, are supported by Octave.  There is an excellent FAQ on audio
-formats by Guido van Rossum <guido@@cwi.nl> which can be found at any
+formats by Guido van Rossum @email{guido@@cwi.nl} which can be found at any
 FAQ ftp site, in particular in the directory
 @file{/pub/usenet/news.answers/audio-fmts} of the archive site
 @code{rtfm.mit.edu}.
--- a/doc/interpreter/bugs.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/bugs.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -270,7 +270,7 @@
 
 Even if the problem you experience is a fatal signal, you should still
 say so explicitly.  Suppose something strange is going on, such as, your
-copy of the interpreter is out of synch, or you have encountered a bug
+copy of the interpreter is out of sync, or you have encountered a bug
 in the C library on your system.  Your copy might crash and the copy
 here would not.  If you said to expect a crash, then when the
 interpreter here fails to crash, we would know that the bug was not
@@ -359,7 +359,7 @@
 @item
 Use @samp{diff -c} to make your diffs.  Diffs without context are hard
 for us to install reliably.  More than that, they make it hard for us to
-study the diffs to decide whether we want to install them.  Unidiff
+study the diffs to decide whether we want to install them.  Unified diff
 format is better than contextless diffs, but not as easy to read as
 @samp{-c} format.
 
@@ -392,7 +392,7 @@
 The mailing list @email{help@@octave.org} exists for the discussion of
 matters related to using and installing Octave.  If would like to join
 the discussion, please send a short note to
-@email{help@strong{-request}@@octave.org}.
+@email{help-request@@octave.org}.
 
 @strong{Please do not} send requests to be added or removed from the
 mailing list, or other administrative trivia to the list itself.
--- a/doc/interpreter/contrib.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/contrib.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -307,7 +307,7 @@
 @node Other Sources
 @section Other Sources
 Apart from C++ and Octave language (m-files), Octave's sources include files
-written in C, Fortran, M4, perl, unix shell, AWK, texinfo and @TeX{}.  There are
+written in C, Fortran, M4, Perl, Unix shell, AWK, Texinfo and @TeX{}.  There are
 not many rules to follow when using these other languages; some of them are
 summarized below.  In any case, the golden rule is: if you modify a source
 file, try to follow any conventions you can detect in the file or other similar
@@ -320,12 +320,12 @@
 to be compilable with the f2c and g77 compilers, without special flags if
 possible.  This usually means that non-legacy compilers also accept the sources.
 
-The M4 macro language is mainly used for autoconf configuration files.  You should
+The M4 macro language is mainly used for Autoconf configuration files.  You should
 follow normal M4 rules when contributing to these files.  Some M4 files come
 from external source, namely the Autoconf archive
 @url{http://autoconf-archive.cryp.to}.
 
-If you give a code example in the documentation written in texinfo with the 
+If you give a code example in the documentation written in Texinfo with the 
 @code{@@example} environment, you should be aware that the text within such an 
 environment will not be wrapped.  It is recommended that you keep the lines
 short enough to fit on pages in the generated pdf or ps documents.  Here is a 
--- a/doc/interpreter/debug.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/debug.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -55,7 +55,7 @@
 @DOCSTRING(debug_on_error)
 
 @node Leaving Debug Mode
-@section Leavinging Debug Mode
+@section Leaving Debug Mode
 
 To leave the debug mode, use either @code{dbcont} 
 or @code{return}.
--- a/doc/interpreter/diagperm.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/diagperm.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -39,7 +39,7 @@
 @code{D(i,j) == 0} if @code{i != j}.
 @end ifnottex
 Most often, square diagonal matrices are considered; however, the definition can equally
-be applied to nonsquare matrices, in which case we usually speak of a rectangular diagonal 
+be applied to non-square matrices, in which case we usually speak of a rectangular diagonal 
 matrix.
 
 A permutation matrix is defined as a square matrix that has a single element equal to unity
@@ -243,7 +243,7 @@
 
 The expressions @code{D \ M} and @code{M / D} perform inverse scaling.
 They are equivalent to solving a diagonal (or rectangular diagonal)
-in a least-squares minimum-norm sense.  In exact arithmetics, this is
+in a least-squares minimum-norm sense.  In exact arithmetic, this is
 equivalent to multiplying by a pseudoinverse.  The pseudoinverse of
 a rectangular diagonal matrix is again a rectangular diagonal matrix
 with swapped dimensions, where each nonzero diagonal element is replaced
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/interpreter/doccheck/README	Sat Jul 17 19:53:01 2010 -0700
@@ -0,0 +1,76 @@
+################################################################################
+                                   README
+                             doccheck directory
+################################################################################
+This directory contains scripts and data for validating Octave's Texinfo
+documentation.  These scripts are internal developer tools for ensuring 
+consistent documentation formats and avoiding misspellings.
+
+The scripts provide two services:
+
+1) A spellchecker, built atop GNU Aspell with a private dictionary of keywords
+   specific to Octave.
+
+2) A grammarchecker designed from scratch in Perl to ensure a common format
+   for Octave documentation and make use of as many features of Texinfo as 
+   possible.
+
+
+################################################################################
+                                   FILES
+################################################################################
+spellcheck : script to spellcheck a single .texi file.
+aspell.conf: Octave-specific configuration file for Aspell.
+aspell-octave.en.pws : private dictionary of Octave keywords for Aspell.
+add_to_aspell_dict : script to add new words to the private Octave dictionary.
+
+grammarcheck : Perl script to check Octave Texinfo documentation in a single
+               m-file(.m), C++ file(.cc), or Texinfo file(.txi, .texi).
+
+################################################################################
+                                   USAGE
+################################################################################
+
+SPELLING:
+
+From the doc/interpreter/ directory, type 'doccheck/spellcheck FILENAME.texi'.
+This will produce a list of misspelled words on stdout.
+
++Sample Flow
+
+cd doc/interpreter
+doccheck/spellcheck arith.texi > misspellings
+vi arith.texi
+vi misspellings
+....
+  Review misspellings and identify where to correct the source (.m, .cc, .txi)
+  The original source file is marked with a comment: '@c SRC_DIR/SRC_FILE'
+  When there is no source file comment, the source file is the .txi source.
+  Make corrections to source files, *not* arith.texi which is derived.
+....
+cd ../../  # top-level of Octave development tree
+make       # propagate changes to arith.texi
+  repeat spellcheck until the words that remain are not misspellings.
+
++Special Cases
+
+Any words remaining after all misspellings have been corrected are
+Octave-specific spellings and should be added to the Octave private dictionary.
+
+doccheck/add_to_aspell_dict misspellings
+
+Words which are misspellings, but which can't be changed in the original
+source, should be marked with the @nospell{WORD} macro.  This will cause Aspell
+to ignore this particular instance of the word.
+
+For example, in linalg.texi there is a citation of a paper from the
+Manchester Centre for Computational Mathematics.  The proper spelling of Centre
+in the en_US locale is Center.  This word is not an Octave-specific exception
+which can be added to the private dictionary.  Instead the source is marked up:
+Manchester @nospell{Centre} for Computational Mathematics.
+
+Now Aspell no longer reports any misspellings for linalg.texi.
+
+GRAMMAR:
+
+To be added
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/interpreter/doccheck/add_to_aspell_dict	Sat Jul 17 19:53:01 2010 -0700
@@ -0,0 +1,44 @@
+#!/usr/bin/perl -w
+
+################################################################################
+# File   : add_to_aspell_dict
+# Purpose: Merges a file of new words into an existing dictionary file.
+#          The resulting file is uniquified and sorted before being written out.
+# Usage  : add_to_aspell_dict <filename_of_new_words>
+################################################################################
+# Initialize variables
+# Private Octave dictionary for Aspell
+$octdict_fname = './doccheck/aspell-octave.en.pws';
+
+################################################################################
+# Parse command line arguments
+if (@ARGV != 1)
+{
+   die "USAGE: add_to_aspell_dict <filename_of_new_words>\n";
+}
+
+$new_words_fname = shift(@ARGV);
+if (!-r $new_words_fname)
+{
+	die "Unable to read input file: $new_words_fname\n";
+}
+
+################################################################################
+# Add new words to a dictionary database
+open (FH, "<$new_words_fname") or die "Unable to open file: $new_words_fname\n";
+while (<FH>) { $dict_db{$_} = 1; }
+close (FH);
+
+# Add words from existing dictionary to dictionary database
+open (FH, "<$octdict_fname") or die "Unable to open Octave dictionary: $octdict_fname\n";
+$header = <FH>;
+while (<FH>) { $dict_db{$_} = 1; }
+close (FH);
+
+# Remove old dictionary file and write out new one
+unlink ($octdict_fname) or die "Unable to delete Octave dictionary: $octdict_fname\n";
+open (FH, ">$octdict_fname") or die "Unable to open file for writing: $octdict_fname\n";
+print FH $header;
+print FH sort keys(%dict_db);
+close (FH);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/interpreter/doccheck/aspell-octave.en.pws	Sat Jul 17 19:53:01 2010 -0700
@@ -0,0 +1,776 @@
+personal_ws-1.1 en 1
+ACM
+AIX
+API
+ARMA
+AWK
+Abramowitz
+Acknowledgements
+Affero
+Ahalt
+Alamos
+Ashok
+Attr
+AutoCAD
+Autoconf
+Autoload
+Autoloading
+BDF
+BFGS
+BV
+BZ
+Backends
+Bateman
+Bilbert
+Biomathematics
+Blackman
+Brenan
+Brockwell
+ButtonDownFcn
+CCR
+CCS
+CDF
+CMatrix
+CPLEX
+CTS
+CallbackObject
+ChangeLog
+Chaves
+Cholesky
+Comint
+Commandline
+Corel
+CorelDraw
+CreateFcn
+Cuthill
+Cygwin
+DAE
+DMS
+Delaunay
+DeleteFcn
+Demmel
+DeskJet
+Dn
+Dobkin
+Downarrow
+Driebeck
+Dt
+Dulmage
+Durbin
+EIDORS
+EOF
+EOS
+EastOutside
+Ekerdt
+Elfers
+Endian
+Engle's
+ErrorHandler
+Errorbar
+Errorbars
+Esmond
+Executables
+FFT
+FFTs
+FG
+FIRfilter
+FIXME
+FSF
+Filesystem
+FlashPix
+Fortran
+FreeBSD
+Frobenius
+GECOS
+GEP
+GIF
+GLS
+GPL
+Gautschi
+Ghostscript
+Gnuplot
+Golub
+Goto
+Graz
+HDF
+HH
+HSV
+Hackbusch
+Hadamard
+Haddad
+Hankel
+Hanning
+Hauberg
+Helvetica
+Hermitian
+Hessenberg
+Higham
+Hindmarsh
+Hindmarsh's
+Hodel
+Horner's
+Hudak
+Huhdanpaa
+IEEE
+IIP
+Im
+Imenu
+Indices
+Inline
+JPEG
+Jacobian
+Konrod
+Krishnamurthy
+Krylov
+LM
+LabelSpacing
+Lanzcos
+Larimore
+LaserJet
+Leftarrow
+Leftrightarrow
+Lehoucq
+Levinson
+Liu
+Lobatto
+Lookup
+Los
+Lovato
+Lua
+MIP
+MMM
+Magnus
+Mandriva
+Marsaglia
+Maschhoff
+Matsumoto
+MaxIntervalCount
+Mendelsohn
+Mersenne
+Metafile
+Metafont
+Michelsen
+Microsystems
+Misra
+Moler
+Montanet
+Multi
+MxN
+MxNx
+NLP
+NTSC
+NaN
+NeXT
+Neudecker
+Neumann
+Ng
+Nishimura
+NorthOutside
+Nx
+OLS
+OpenGL
+Oppenheim
+OutputFcn
+PBM
+PBMplus
+PCG
+PCX
+PDF
+PHP
+PNG
+POSIX
+PWS
+Petzold's
+PointJet
+PostScript
+Pothen
+Prepend
+Pseudospectra
+QP
+QQ
+QZ
+Qci
+Qhull
+Quickhull
+RET
+RGB
+RMS
+RPMs
+Rajamanickam
+Rawlings
+Readline
+Reindent
+Resize
+Riccati
+Rightarrow
+Rosser
+Rossum
+SCO
+SIGNUM
+SIMAX
+SPARSKIT
+STFT
+STL
+SV
+SVD
+SVG
+SYMAMD
+Saad
+Sandia
+Schafer
+Schur
+Sep
+Shampine
+Sorensen
+SouthOutside
+Stadlober
+Stallman
+Startup
+Stegun
+Stepleman
+Subfunction
+Subfunctions
+Sublicensing
+Subprocesses
+Subscripted
+SunOS
+SwitzerlandLight
+Sym
+Tcv
+Texinfo
+TikZ
+Tikhonov
+Tisseur
+Tisseur's
+Toeplitz
+TolF
+TolFun
+TolX
+Tsang
+UB
+UID
+Ultrix
+Unary
+Uncomments
+UniformOutput
+Uninstall
+Uparrow
+Username
+Vandermonde
+Vectorize
+Villadsen
+Voronoi
+WIPO
+WestOutside
+Whitespace
+Wikipedia
+Wildcards
+WinRand
+XFig
+YY
+YYYY
+Zechner
+Ziggurat
+accumarray
+acknowledgements
+adams
+aifm
+al
+aleph
+amd
+arpack
+async
+atan
+autocorrelations
+autocovariances
+autoload
+autoloaded
+autoloading
+autoregression
+autoregressions
+autoscaled
+backend
+backends
+bdf
+bigtriangledown
+bincoeff
+bitmax
+bitwise
+blas
+bof
+boolMatrix
+boolean
+boxerrorbars
+boxoff
+boxon
+boxxyerrorbars
+bracketx
+brackety
+breakpoint
+builtin
+builtins
+bz
+bzip
+cURL
+callee's
+caxis
+ccolamd
+cd
+cdata
+cdot
+ceil
+cellstr
+changeset
+changesets
+chdir
+chisq
+chisquare
+chol
+cindex
+circ
+circshift
+circum
+clim
+clubsuit
+cmd
+cmember
+cof
+colamd
+colorbar
+colormap
+colperm
+cond
+condest
+conformant
+cong
+const
+constuctors
+contextless
+contourc
+convhull
+cosecant
+courseware
+cov
+csymamd
+ctranspose
+dMatrix
+dOmega
+datasets
+datasource
+davis
+ddd
+dddd
+dddddddddd
+deallocate
+deallocated
+deconv
+deftypefn
+delaunay
+delaunayn
+delim
+demi
+det
+diag
+diamondsuit
+dir
+disp
+dmperm
+dotall
+dotexceptnewline
+downarrow
+downdate
+dpi
+dt
+dx
+dy
+eigenpairs
+eigenvector
+eigenvectors
+eigs
+elseif
+emacs
+endfunction
+endian
+endif
+eof
+eps
+eq
+equidistributed
+equispaced
+erf
+errno
+errorbar
+errorbars
+et
+etree
+etreeplot
+eval
+exitflag
+extendedtext
+facevertexcdata
+femmodel
+fft
+fftn
+fftpack
+fftw
+fieldname
+fieldnames
+filename
+filenames
+fontname
+forall
+formfeed
+fprintf
+freespacing
+frob
+gcbo
+ge
+genvarname
+geq
+glibc
+globbing
+gnuplot
+gnuplot's
+goto
+gotos
+gplot
+grabdemo
+griddata
+gswin
+gunzipped
+gz
+gzip
+gzipped
+hardcode
+heartsuit
+heteroscedascity
+hggroup
+hh
+holomorphic
+horzcat
+iff
+ifft
+ifftn
+ignorecase
+ij
+imag
+indices
+infty
+init
+inline
+inpolygon
+interp
+interpderiv
+interpft
+interpn
+interpolant
+inv
+ipermute
+ishandle
+ishghandle
+isolines
+isreal
+issparse
+isvector
+ith
+iy
+ji
+keybindings
+keypress
+kron
+langle
+lapack
+lceil
+ldiv
+ldivide
+ldots
+le
+leftarrow
+leftrightarrow
+leq
+lfloor
+li
+libcruft
+libcurl
+liboctave
+licensors
+lineanchors
+linefeeds
+linesearch
+linespoints
+linkprop
+literalspacing
+lm
+loadpath
+lookup
+lookups
+lpx
+lr
+lsode
+lt
+lu
+luinc
+lvalue
+lvl
+lx
+ly
+lz
+makefile
+makefiles
+matchcase
+matlab
+maxima
+meshgrid
+meshgridded
+metafiles
+mex
+minima
+minval
+mkoctfile
+mldivide
+mmd
+mmm
+mmmm
+mmmyy
+mmmyyyy
+modelled
+mpoles
+mpower
+mrdivide
+mtimes
+multi
+multibyte
+multiline
+mxArray
+myclass
+nabla
+nargin
+nd
+ndgrid
+ne
+neq
+nfev
+ni
+nnls
+nnz
+nocompute
+noncommercially
+nonzeros
+normest
+notin
+nul
+nzmax
+oct
+octaverc
+online
+oplus
+oregonator
+oslash
+otimes
+outputfcn
+paperposition
+papersize
+parseparams
+pcg
+pchip
+pcr
+pdf
+periodogram
+perp
+pinv
+polyderiv
+polyfit
+polyval
+postorder
+pre
+preconditioner
+premultiplied
+prepended
+presolver
+printf
+priori
+propto
+proven
+ps
+pseudoinverse
+pseudonorm
+pseudorandom
+ptrace
+qhull
+qz
+radices
+randn
+randperm
+rangle
+rceil
+rdivide
+readline
+recursing
+regressor
+relicensing
+ren
+repmat
+resampled
+resampling
+resize
+resized
+resnorm
+resparsify
+rfloor
+rightarrow
+rline
+sB
+sa
+screenful
+se
+seealso
+semidefinite
+shiftdim
+si
+signum
+sim
+simplechol
+simplecholperm
+simplematrix
+simplices
+sinetone
+sm
+sp
+spadesuit
+spalloc
+spaugment
+spchol
+spcholperm
+spconvert
+spdiags
+speye
+spfun
+spmatrix
+spones
+spparms
+sprand
+sprandn
+sprandsym
+sprank
+spstats
+sqrt
+sqrtm
+sr
+ss
+stairstep
+startup
+stepsize
+strcmp
+stringanchors
+strncmp
+strncmpi
+struct
+structs
+subarrays
+subdirectories
+subdirectory
+subexpressions
+subfunction
+subfunctions
+subinterval
+sublicenses
+submatrices
+submatrix
+subprocess
+subprocesses
+subsasgn
+subscripted
+subscripting
+subseteq
+subsindex
+subsref
+substring
+substrings
+superiorto
+supradiagonal
+supset
+supseteq
+svd
+svds
+sym
+symamd
+symbfact
+symrcm
+terminal's
+tex
+th
+ths
+tokenExtents
+tp
+traceback
+treelayout
+treeplot
+tridiagonal
+triplot
+tuples
+txi
+typedefs
+ub
+uint
+umfpack
+uminus
+un
+unary
+uncomment
+unformatted
+unimodal
+uninstalled
+univariate
+unnormalized
+unpadded
+unpivoted
+unshare
+unsymmetric
+uparrow
+uplus
+userdata
+variable's
+varphi
+varpi
+varsigma
+vartheta
+vec
+vech
+vectorize
+vectorizing
+vee
+versa
+vertcat
+vertices
+voronoi
+whitespace
+whos
+wildcard
+wildcards
+wp
+xGBTRF
+xGELSD
+xGETRF
+xGTSV
+xN
+xPBTRF
+xPOTRF
+xPTSV
+xTRTRS
+xb
+xerrorbar
+xerrorbars
+xl
+xmin
+xu
+xy
+xyerrorbar
+xyerrorbars
+yerrorbar
+yerrorbars
+yy
+yyyy
+yyyymmdd
+yyyymmddTHHMMSS
+zer
+zlib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/interpreter/doccheck/aspell.conf	Sat Jul 17 19:53:01 2010 -0700
@@ -0,0 +1,15 @@
+lang en_US
+mode texinfo
+add-filter tex
+add-texinfo-ignore  set
+add-texinfo-ignore  ifclear
+add-texinfo-ignore  ifset
+add-texinfo-ignore  macro
+add-texinfo-ignore  include
+add-texinfo-ignore  anchor
+add-texinfo-ignore  deftypefn
+add-texinfo-ignore  deftypefnx
+add-texinfo-ignore  printindex
+add-texinfo-ignore  multitable
+add-texinfo-ignore  nospell
+personal ./doccheck/aspell-octave.en.pws
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/interpreter/doccheck/spellcheck	Sat Jul 17 19:53:01 2010 -0700
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+
+################################################################################
+# File   : spellcheck
+# Purpose: Spellcheck a single Texinfo file
+#          written in Perl, rather than the shell, to be more portable to OS 
+#          without good command lines such as Windows.
+# Usage  : spellcheck FILENAME.texi
+################################################################################
+use File::Temp ":POSIX";
+
+# Initialize variables
+# Octave specific configuration file for Aspell
+$aspell_conf = './doccheck/aspell.conf';
+
+################################################################################
+# Parse command line arguments
+if (@ARGV != 1)
+{
+   die ("USAGE: spellcheck <filename.texi>\n",
+        "       invoked from doc/interpreter directory\n");
+}
+
+################################################################################
+# Run Aspell with Octave-specific configuration file.
+# Avoid use of pipes and use temporary files for portability
+$fname = shift(@ARGV);
+$tmp_fname = &tmpnam();  # from File::Temp
+system ("aspell --conf=$aspell_conf list < $fname > $tmp_fname");
+
+if ($?)
+{
+   unlink ($tmp_fname);
+   die ("Aspell command unsuccesful.  Cannot continue\n");
+}
+
+open (FH, "<$tmp_fname") or die "Unable to open misspelled words file: $tmp_fname\n";
+while (<FH>) { $words{$_} = 1; }
+close (FH);
+
+# Print out sorted and uniquified list of misspelled words
+print sort keys(%words);
+
+################################################################################
+# Clean up temporary files
+unlink ($tmp_fname) or die "Unable to delete temporary file: $tmp_fname\n";
--- a/doc/interpreter/dynamic.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/dynamic.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -250,7 +250,7 @@
 
 Note that these functions do significant error checking and so in some
 circumstances the user might prefer to access the data of the array or
-matrix directly through the fortran_vec method discussed below.
+matrix directly through the @nospell{fortran_vec} method discussed below.
 
 @deftypefn Method octave_idx_type nelem (void) const
 The total number of elements in the matrix or array.
@@ -578,7 +578,7 @@
 @end example
 
 Finally, as the sparse types aren't just represented as a contiguous
-block of memory, the @code{fortran_vec} method of the @code{Array<T>}
+block of memory, the @nospell{@code{fortran_vec}} method of the @code{Array<T>}
 is not available.  It is however replaced by three separate methods
 @code{ridx}, @code{cidx} and @code{data}, that access the raw compressed
 column format that the Octave sparse matrices are stored in.
@@ -708,7 +708,7 @@
 the data in compressed row format.  An example of this technique might
 be
 
-@c Note the @verbatim environment is a relatively new addition to texinfo.
+@c Note the @verbatim environment is a relatively new addition to Texinfo.
 @c Therefore use the @example environment and replace @, with @@,
 @c { with @{, etc
 
@@ -942,12 +942,12 @@
 
 The underlying Fortran code should use the @code{XSTOPX} function to
 replace the Fortran @code{STOP} function.  @code{XSTOPX} uses the Octave
-exception handler to treat failing cases in the fortran code
+exception handler to treat failing cases in the Fortran code
 explicitly.  Note that Octave supplies its own replacement @sc{blas}
 @code{XERBLA} function, which uses @code{XSTOPX}.
 
 If the underlying code calls @code{XSTOPX}, then the @w{@code{F77_XFCN}}
-macro should be used to call the underlying fortran function.  The Fortran
+macro should be used to call the underlying Fortran function.  The Fortran
 exception state can then be checked with the global variable
 @code{f77_exception_encountered}.  If @code{XSTOPX} will not be called,
 then the @w{@code{F77_FCN}} macro should be used instead to call the Fortran
@@ -967,7 +967,7 @@
 @end example
 
 @noindent
-and the fortran function is
+and the Fortran function is
 
 @example
 @EXAMPLEFILE(fortsub.f)
@@ -986,7 +986,7 @@
 [b, s] = fortdemo(0:3)
 error: fortsub:divide by zero
 error: exception encountered in Fortran subroutine fortsub_
-error: fortdemo: error in fortran
+error: fortdemo: error in Fortran
 @end group
 @end example
 
@@ -1091,7 +1091,7 @@
 memory internally, then this memory might be lost during an interrupt,
 without being deallocated.  Therefore, ideally Octave itself should
 allocate any memory that is needed by the foreign code, with either the
-fortran_vec method or the @w{@code{OCTAVE_LOCAL_BUFFER}} macro.
+@nospell{fortran_vec} method or the @w{@code{OCTAVE_LOCAL_BUFFER}} macro.
 
 The Octave unwind_protect mechanism (@ref{The @code{unwind_protect} Statement})
 can also be used in oct-files.  In conjunction with the exception
--- a/doc/interpreter/geometry.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/geometry.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -21,7 +21,7 @@
 
 Much of the geometry code in Octave is based on the Qhull 
 library@footnote{Barber, C.B., Dobkin, D.P., and Huhdanpaa, H.T., 
-"The Quickhull algorithm for convex hulls," ACM Trans. on Mathematical 
+@cite{The Quickhull Algorithm for Convex Hulls}, ACM Trans. on Mathematical 
 Software, 22(4):469--483, Dec 1996, @url{http://www.qhull.org}}.  
 Some of the documentation for Qhull, particularly for the options that 
 can be passed to @code{delaunay}, @code{voronoi} and @code{convhull}, 
@@ -282,7 +282,7 @@
 than any other point in @var{s}.  The Voronoi diagram is related to the
 Delaunay triangulation of a set of points, in that the vertexes of the
 Voronoi tessellation are the centers of the circum-circles of the
-simplicies of the Delaunay tessellation. 
+simplices of the Delaunay tessellation. 
 
 @DOCSTRING(voronoi)
 
@@ -412,8 +412,8 @@
 interpolate from scattered data to an arbitrary set of points.  To do
 this the N-simplex of the known set of points is calculated with
 @code{delaunay}, @code{delaunay3} or @code{delaunayn}.  Then the
-simplicies in to which the desired points are found are
-identified.  Finally the vertices of the simplicies are used to
+simplices in to which the desired points are found are
+identified.  Finally the vertices of the simplices are used to
 interpolate to the desired points.  The functions that perform this
 interpolation are @code{griddata}, @code{griddata3} and
 @code{griddatan}.
--- a/doc/interpreter/matrix.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/matrix.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -236,7 +236,7 @@
 single element of a random sequence.
 
 The original @code{rand} and @code{randn} functions use Fortran code from
-@sc{Ranlib}, a library of fortran routines for random number generation,
+@sc{Ranlib}, a library of Fortran routines for random number generation,
 compiled by Barry W. Brown and James Lovato of the Department of
 Biomathematics at The University of Texas, M.D. Anderson Cancer Center,
 Houston, TX 77030.
--- a/doc/interpreter/mk_doc_cache.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/mk_doc_cache.m	Sat Jul 17 19:53:01 2010 -0700
@@ -58,6 +58,7 @@
 text = [text{:}, doc_delim];
 
 text = regexprep (text, "@seealso *{([^}]*)}", "See also: $1.");
+text = regexprep (text, "@nospell *{([^}]*)}", "$1");
 text = regexprep (text, "-\\*- texinfo -\\*-[ \t]*[\r\n]*", "");
 text = regexprep (text, "@", "@@");
 
--- a/doc/interpreter/numbers.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/numbers.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -303,7 +303,7 @@
 @subsection Empty Matrices
 
 A matrix may have one or both dimensions zero, and operations on empty
-matrices are handled as described by Carl de Boor in @cite{An Empty
+matrices are handled as described by Carl @nospell{de} Boor in @cite{An Empty
 Exercise}, SIGNUM, Volume 25, pages 2-6, 1990 and C. N. Nett and W. M.
 Haddad, in @cite{A System-Theoretic Appropriate Realization of the Empty
 Matrix Concept}, IEEE Transactions on Automatic Control, Volume 38,
--- a/doc/interpreter/octave.texi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/octave.texi	Sat Jul 17 19:53:01 2010 -0700
@@ -39,6 +39,14 @@
 @strong{See also:} \args\.
 @end macro
 
+@c The following macro marks words that aspell should ignore during
+@c spellchecking.  Within Texinfo it has no effect as it merely replaces
+@c the macro call with the argument itself.
+
+@macro nospell {arg}
+\arg\
+@end macro
+
 @ifinfo
 @format
 START-INFO-DIR-ENTRY
@@ -543,7 +551,7 @@
 * Stem Series::                 
 * Surface group::               
 
-Graphics backends
+Graphics Backends
 
 * Interaction with gnuplot::
 
--- a/doc/interpreter/oop.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/oop.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -732,7 +732,7 @@
 
 In order to change the contents of the object, we need to define a
 @code{subsasgn} method.  For example, we may make the polynomial field
-publicly writeable.
+publicly writable.
 
 @example
 @group
--- a/doc/interpreter/package.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/package.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -467,8 +467,8 @@
 @noindent
 This workaround description will not appear when listing functions in the 
 package with @code{pkg describe} but they will be published
-in the html documentation online.
-Workaround descriptions can use any html markup, but
+in the HTML documentation online.
+Workaround descriptions can use any HTML markup, but
 keep in mind that it will be enclosed in a bold-italic environment.  
 For the special case of:
 
--- a/doc/interpreter/sparse.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/sparse.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -75,7 +75,7 @@
 of the methods have in common is that they attempt to reduce the complexity
 and storage given a-priori knowledge of the particular class of problems
 that will be solved.  A good summary of the available techniques for storing
-sparse matrix is given by Saad @footnote{Youcef Saad "SPARSKIT: A basic toolkit
+sparse matrix is given by Saad @footnote{Y. Saad "SPARSKIT: A basic toolkit
 for sparse matrix computation", 1994,
 @url{http://www-users.cs.umn.edu/~saad/software/SPARSKIT/paper.ps}}.
 With full matrices, knowledge of the point of an element of the matrix
@@ -292,7 +292,7 @@
 assignment functions are written that the assignment will reallocate
 the memory used by the sparse matrix at each iteration of the above loop. 
 Therefore the @dfn{spalloc} function ignores the @var{nz} argument and 
-does not preassign the memory for the matrix.  Therefore, it is vitally
+does not pre-assign the memory for the matrix.  Therefore, it is vitally
 important that code using to above structure should be vectorized
 as much as possible to minimize the number of assignments and reduce the
 number of memory allocations.
--- a/doc/interpreter/tips.txi	Thu Jul 15 12:15:14 2010 +0200
+++ b/doc/interpreter/tips.txi	Sat Jul 17 19:53:01 2010 -0700
@@ -202,7 +202,7 @@
 Sometimes the number of items can't be computed in advance, and stack-like operations
 are needed.  When elements are being repeatedly inserted at/removed from the end of an
 array, Octave detects it as stack usage and attempts to use a smarter memory management
-strategy preallocating the array in bigger chunks.  Likewise works for cell and
+strategy pre-allocating the array in bigger chunks.  Likewise works for cell and
 struct arrays.
 
 @example
@@ -518,7 +518,7 @@
 functions.  The important aspects of the documentation string are
 
 @table @asis
-@item -*- texinfo -*-
+@item -*- @nospell{texinfo} -*-
 This string signals Octave that the following text is in Texinfo format,
 and should be the first part of any help string in Texinfo format.
 @item @@deftypefn@{class@} @dots{} @@end deftypefn
@@ -545,7 +545,7 @@
 with text terminals as well as generating high-quality printed output.
 To these ends, Texinfo has commands which control the diversion of parts
 of the document into a particular output processor.  Three formats are
-of importance: info, html and @TeX{}.  These are selected with
+of importance: info, HTML and @TeX{}.  These are selected with
 
 @example
 @group
@@ -571,7 +571,7 @@
 @end group
 @end example
 
-Note that often @TeX{} output can be used in html documents and so often
+Note that often @TeX{} output can be used in HTML documents and so often
 the @code{@@ifhtml} blocks are unnecessary.  If no specific output
 processor is chosen, by default, the text goes into all output
 processors.  It is usual to have the above blocks in pairs to allow the
--- a/scripts/ChangeLog	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/ChangeLog	Sat Jul 17 19:53:01 2010 -0700
@@ -1,3 +1,20 @@
+2010-07-17  Rik <octave@nomad.inbox5.com>
+
+          * audio/lin2mu.m, general/common_size.m, general/interp1.m, 
+          general/interp2.m, general/interpn.m, general/quadl.m,
+          geometry/dsearchn.m, geometry/voronoi.m, geometry/voronoin.m,
+          image/hsv2rgb.m, image/imread.m, image/rgb2hsv.m,
+          linear-algebra/commutation_matrix.m, linear-algebra/condest.m,
+          linear-algebra/expm.m, linear-algebra/krylov.m,
+          linear-algebra/onenormest.m, miscellaneous/perl.m,
+          plot/linkprop.m, plot/plot.m, plot/print.m, plot/stem3.m,
+          signal/diffpara.m, signal/stft.m, sparse/pcg.m, sparse/pcr.m,
+          specfun/primes.m, special-matrix/hadamard.m, special-matrix/hankel.m,
+          special-matrix/invhilb.m, special-matrix/pascal.m,
+          special-matrix/rosser.m, special-matrix/toeplitz.m,
+          special-matrix/vander.m, special-matrix/wilkinson.m,
+          testfun/speed.m: Spellcheck documentation
+
 2010-07-15  Jaroslav Hajek  <highegg@gmail.com>
 
 	* general/flipdim.m: Suuport flipping about trailing singleton
--- a/scripts/audio/lin2mu.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/audio/lin2mu.m	Sat Jul 17 19:53:01 2010 -0700
@@ -21,7 +21,7 @@
 ## @deftypefn {Function File} {} lin2mu (@var{x}, @var{n})
 ## Converts audio data from linear to mu-law.  Mu-law values use 8-bit
 ## unsigned integers.  Linear values use @var{n}-bit signed integers or 
-## floating point values in the range -1<=@var{x}<=1 if @var{n} is 0.  
+## floating point values in the range -1@leq{}@var{x}<=1 if @var{n} is 0.  
 ## If @var{n} is not specified it defaults to 0, 8 or 16 depending on 
 ## the range values in @var{x}.
 ## @seealso{mu2lin, loadaudio, saveaudio, playaudio, setaudio, record}
--- a/scripts/general/common_size.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/general/common_size.m	Sat Jul 17 19:53:01 2010 -0700
@@ -25,7 +25,7 @@
 ## size.  If so, @var{err} is zero, and @var{yi} is a matrix of the
 ## common size with all entries equal to @var{xi} if this is a scalar or
 ## @var{xi} otherwise.  If the inputs cannot be brought to a common size,
-## errorcode is 1, and @var{yi} is @var{xi}.  For example,
+## @var{err} is 1, and @var{yi} is @var{xi}.  For example,
 ##
 ## @example
 ## @group
--- a/scripts/general/interp1.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/general/interp1.m	Sat Jul 17 19:53:01 2010 -0700
@@ -36,7 +36,7 @@
 ## @item 'linear'
 ## Linear interpolation from nearest neighbors
 ## @item 'pchip'
-## Piece-wise cubic hermite interpolating polynomial
+## Piece-wise cubic Hermite interpolating polynomial
 ## @item 'cubic'
 ## Cubic interpolation from four nearest neighbors
 ## @item 'spline'
--- a/scripts/general/interp2.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/general/interp2.m	Sat Jul 17 19:53:01 2010 -0700
@@ -57,7 +57,7 @@
 ## @item 'linear'
 ## Linear interpolation from nearest neighbors.
 ## @item 'pchip'
-## Piece-wise cubic hermite interpolating polynomial.
+## Piece-wise cubic Hermite interpolating polynomial.
 ## @item 'cubic'
 ## Cubic interpolation from four nearest neighbors.
 ## @item 'spline'
--- a/scripts/general/interpn.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/general/interpn.m	Sat Jul 17 19:53:01 2010 -0700
@@ -198,7 +198,7 @@
 %! A=[13,-1,12;5,4,3;1,6,2];
 %! x=[0,1,4]; y=[10,11,12];
 %! xi=linspace(min(x),max(x),17);
-%! AI=linspace(min(y),max(y),26)';
+%! yi=linspace(min(y),max(y),26)';
 %! mesh(xi,yi,interpn(x,y,A.',xi,yi,"linear").');
 %! [x,y] = meshgrid(x,y); 
 %! hold on; plot3(x(:),y(:),A(:),"b*"); hold off;
--- a/scripts/general/quadl.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/general/quadl.m	Sat Jul 17 19:53:01 2010 -0700
@@ -17,7 +17,7 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b})
+## @deftypefn {Function File}  {@var{q} =} quadl (@var{f}, @var{a}, @var{b})
 ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol})
 ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace})
 ## @deftypefnx {Function File} {@var{q} =} quadl (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{})
@@ -38,8 +38,8 @@
 ## To use default values for @var{tol} and @var{trace}, one may pass
 ## empty matrices.
 ##
-## Reference: W. Gander and W. Gautschi, 'Adaptive Quadrature - 
-## Revisited', BIT Vol. 40, No. 1, March 2000, pp. 84--101.
+## Reference: W. Gander and W. Gautschi, @cite{Adaptive Quadrature - 
+## Revisited}, BIT Vol. 40, No. 1, March 2000, pp. 84--101.
 ## @url{http://www.inf.ethz.ch/personal/gander/}
 ##
 ## @end deftypefn
--- a/scripts/geometry/dsearchn.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/geometry/dsearchn.m	Sat Jul 17 19:53:01 2010 -0700
@@ -23,7 +23,7 @@
 ## @deftypefnx {Function File} {[@var{idx}, @var{d}] =} dsearchn (@dots{})
 ## Returns the index @var{idx} or the closest point in @var{x} to the elements
 ## @var{xi}.  If @var{outval} is supplied, then the values of @var{xi} that are
-## not contained within one of the simplicies @var{tri} are set to 
+## not contained within one of the simplices @var{tri} are set to 
 ## @var{outval}.  Generally, @var{tri} is returned from @code{delaunayn 
 ## (@var{x})}.
 ## @seealso{dsearch, tsearch}
--- a/scripts/geometry/voronoi.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/geometry/voronoi.m	Sat Jul 17 19:53:01 2010 -0700
@@ -21,10 +21,10 @@
 ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle")
 ## @deftypefnx {Function File} {} voronoi (@var{x}, @var{y}, "plotstyle", @var{options})
 ## @deftypefnx {Function File} {[@var{vx}, @var{vy}] =} voronoi (@dots{})
-## plots voronoi diagram of points @code{(@var{x}, @var{y})}.
-## The voronoi facets with points at infinity are not drawn.
+## plots Voronoi diagram of points @code{(@var{x}, @var{y})}.
+## The Voronoi facets with points at infinity are not drawn.
 ## [@var{vx}, @var{vy}] = voronoi(@dots{}) returns the vertices instead of plotting the
-## diagram. plot (@var{vx}, @var{vy}) shows the voronoi diagram.
+## diagram. plot (@var{vx}, @var{vy}) shows the Voronoi diagram.
 ##
 ## A fourth optional argument, which must be a string, contains extra options
 ## passed to the underlying qhull command.  See the documentation for the
--- a/scripts/geometry/voronoin.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/geometry/voronoin.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,10 +19,10 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts})
 ## @deftypefnx {Function File} {[@var{C}, @var{F}] =} voronoin (@var{pts}, @var{options})
-## computes n- dimensional voronoi facets.  The input matrix @var{pts}
+## computes n- dimensional Voronoi facets.  The input matrix @var{pts}
 ## of size [n, dim] contains n points of dimension dim.
-## @var{C} contains the points of the voronoi facets.  The list @var{F}
-## contains for each facet the indices of the voronoi points.
+## @var{C} contains the points of the Voronoi facets.  The list @var{F}
+## contains for each facet the indices of the Voronoi points.
 ##
 ## A second optional argument, which must be a string, contains extra options
 ## passed to the underlying qhull command.  See the documentation for the
--- a/scripts/image/hsv2rgb.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/image/hsv2rgb.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,7 +19,7 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {@var{rgb_map} =} hsv2rgb (@var{hsv_map})
-## Transform a colormap or image from the hsv space to the rgb space. 
+## Transform a colormap or image from the HSV space to the RGB space. 
 ## @seealso{rgb2hsv}
 ## @end deftypefn
 
--- a/scripts/image/imread.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/image/imread.m	Sat Jul 17 19:53:01 2010 -0700
@@ -26,10 +26,10 @@
 ##
 ## The size and numeric class of the output depends on the
 ## format of the image.  A color image is returned as an
-## MxNx3 matrix.  Grey-level and black-and-white images are
+## MxNx3 matrix.  Gray-level and black-and-white images are
 ## of size MxN.
 ## The color depth of the image determines the numeric
-## class of the output: "uint8" or "uint16" for grey
+## class of the output: "uint8" or "uint16" for gray
 ## and color, and "logical" for black and white.
 ##
 ## @seealso{imwrite, imfinfo}
--- a/scripts/image/rgb2hsv.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/image/rgb2hsv.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,14 +19,14 @@
 
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {@var{hsv_map} =} rgb2hsv (@var{rgb_map})
-## Transform a colormap or image from the rgb space to the hsv space.
+## Transform a colormap or image from the RGB space to the HSV space.
 ##
-## A color n the RGB space consists of the red, green and blue intensities.
+## A color in the RGB space consists of the red, green and blue intensities.
 ##
 ## In the HSV space each color is represented by their hue, saturation
 ## and value (brightness).  Value gives the amount of light in the color.
 ## Hue describes the dominant wavelength. 
-## Saturation is the amount of Hue mixed into the color.
+## Saturation is the amount of hue mixed into the color.
 ## @seealso{hsv2rgb}
 ## @end deftypefn
 
--- a/scripts/linear-algebra/commutation_matrix.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/linear-algebra/commutation_matrix.m	Sat Jul 17 19:53:01 2010 -0700
@@ -64,8 +64,8 @@
 ## @end ifnottex
 ##  is returned.
 ##
-## See Magnus and Neudecker (1988), Matrix differential calculus with
-## applications in statistics and econometrics.
+## See Magnus and Neudecker (1988), @cite{Matrix Differential Calculus with
+## Applications in Statistics and Econometrics.}
 ## @end deftypefn
 
 ## Author: KH <Kurt.Hornik@wu-wien.ac.at>
--- a/scripts/linear-algebra/condest.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/linear-algebra/condest.m	Sat Jul 17 19:53:01 2010 -0700
@@ -54,13 +54,13 @@
 ##
 ## References: 
 ## @itemize
-## @item Nicholas J. Higham and Francoise Tisseur, "A Block Algorithm
+## @item N.J. Higham and F. Tisseur, @cite{A Block Algorithm
 ## for Matrix 1-Norm Estimation, with an Application to 1-Norm
-## Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201.
+## Pseudospectra}. SIMAX vol 21, no 4, pp 1185-1201.
 ## @url{http://dx.doi.org/10.1137/S0895479899356080}
-## @item Nicholas J. Higham and Francoise Tisseur, "A Block Algorithm
+## @item N.J. Higham and F. Tisseur, @cite{A Block Algorithm
 ## for Matrix 1-Norm Estimation, with an Application to 1-Norm
-## Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html}
+## Pseudospectra}. @url{http://citeseer.ist.psu.edu/223007.html}
 ## @end itemize
 ##
 ## @seealso{cond, norm, onenormest}
--- a/scripts/linear-algebra/expm.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/linear-algebra/expm.m	Sat Jul 17 19:53:01 2010 -0700
@@ -35,22 +35,9 @@
 ## The Taylor series is @emph{not} the way to compute the matrix
 ## exponential; see Moler and Van Loan, @cite{Nineteen Dubious Ways to
 ## Compute the Exponential of a Matrix}, SIAM Review, 1978.  This routine
-## uses Ward's diagonal
-## @tex
-## Pad\'e
-## @end tex
-## @ifnottex
-## Pade'
-## @end ifnottex
-## approximation method with three step preconditioning (SIAM Journal on
-## Numerical Analysis, 1977).  Diagonal
-## @tex
-## Pad\'e
-## @end tex
-## @ifnottex
-## Pade'
-## @end ifnottex
-##  approximations are rational polynomials of matrices
+## uses Ward's diagonal Pad@'e approximation method with three step 
+## preconditioning (SIAM Journal on Numerical Analysis, 1977).  Diagonal
+## Pad@'e approximations are rational polynomials of matrices
 ## @tex
 ## $D_q(a)^{-1}N_q(a)$
 ## @end tex
@@ -64,7 +51,7 @@
 ## @end example
 ## 
 ## @end ifnottex
-##  whose Taylor series matches the first
+## whose Taylor series matches the first
 ## @tex
 ## $2 q + 1 $
 ## @end tex
@@ -73,13 +60,7 @@
 ## @end ifnottex
 ## terms of the Taylor series above; direct evaluation of the Taylor series
 ## (with the same preconditioning steps) may be desirable in lieu of the
-## @tex
-## Pad\'e
-## @end tex
-## @ifnottex
-## Pade'
-## @end ifnottex
-## approximation when
+## Pad@'e approximation when
 ## @tex
 ## $D_q(a)$
 ## @end tex
--- a/scripts/linear-algebra/krylov.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/linear-algebra/krylov.m	Sat Jul 17 19:53:01 2010 -0700
@@ -38,7 +38,7 @@
 ## @code{length(A)-1}, then @var{h} contains the Hessenberg matrix such
 ## that @code{a*u == u*h}.
 ##
-## The value of @var{nu} is the dimension of the span of the krylov
+## The value of @var{nu} is the dimension of the span of the Krylov
 ## subspace (based on @var{eps1}).
 ##
 ## If @var{b} is a vector and @var{k} is greater than @var{m-1}, then
@@ -50,9 +50,9 @@
 ## If the optional parameter @var{pflg} is nonzero, row pivoting is used
 ## to improve numerical behavior.  The default value is 0.
 ##
-## Reference: Hodel and Misra, "Partial Pivoting in the Computation of
-## Krylov Subspaces", to be submitted to Linear Algebra and its
-## Applications
+## Reference: A. Hodel, P. Misra, @cite{Partial Pivoting in the Computation of
+## Krylov Subspaces of Large Sparse Systems}, Proceedings of the 42nd IEEE 
+## Conference on Decision and Control, December 2003.
 ## @end deftypefn
 
 ## Author: A. Scottedward Hodel <a.s.hodel@eng.auburn.edu>
--- a/scripts/linear-algebra/onenormest.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/linear-algebra/onenormest.m	Sat Jul 17 19:53:01 2010 -0700
@@ -39,13 +39,13 @@
 ##
 ## References: 
 ## @itemize
-## @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm
+## @item N.J. Higham and F. Tisseur, @cite{A Block Algorithm
 ## for Matrix 1-Norm Estimation, with an Application to 1-Norm
-## Pseudospectra." SIMAX vol 21, no 4, pp 1185-1201.
+## Pseudospectra}. SIMAX vol 21, no 4, pp 1185-1201.
 ## @url{http://dx.doi.org/10.1137/S0895479899356080}
-## @item Nicholas J. Higham and Françoise Tisseur, "A Block Algorithm
+## @item N.J. Higham and F. Tisseur, @cite{A Block Algorithm
 ## for Matrix 1-Norm Estimation, with an Application to 1-Norm
-## Pseudospectra." @url{http://citeseer.ist.psu.edu/223007.html}
+## Pseudospectra}. @url{http://citeseer.ist.psu.edu/223007.html}
 ## @end itemize
 ##
 ## @seealso{condest, norm, cond}
--- a/scripts/miscellaneous/perl.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/miscellaneous/perl.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,7 +19,7 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {[@var{output}, @var{status}] =} perl (@var{scriptfile})
 ## @deftypefnx {Function File} {[@var{output}, @var{status}] =} perl (@var{scriptfile}, @var{argument1}, @var{argument2}, @dots{})
-## Invoke perl script @var{scriptfile} with possibly a list of
+## Invoke Perl script @var{scriptfile} with possibly a list of
 ## command line arguments.
 ## Returns output in @var{output} and status
 ## in @var{status}.
--- a/scripts/plot/linkprop.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/plot/linkprop.m	Sat Jul 17 19:53:01 2010 -0700
@@ -23,7 +23,7 @@
 ## string of cell string array by @var{prop} and the objects containing
 ## these properties by the handle array @var{h}.
 ##
-## An example of the use of linkprops is
+## An example of the use of linkprop is
 ##
 ## @example
 ## @group
--- a/scripts/plot/plot.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/plot/plot.m	Sat Jul 17 19:53:01 2010 -0700
@@ -171,6 +171,7 @@
 ##
 ## If the first argument is an axis handle, then plot into these axes, 
 ## rather than the current axis handle returned by @code{gca}. 
+## 
 ## @seealso{semilogx, semilogy, loglog, polar, mesh, contour, bar,
 ## stairs, errorbar, xlabel, ylabel, title, print}
 ## @end deftypefn
--- a/scripts/plot/print.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/plot/print.m	Sat Jul 17 19:53:01 2010 -0700
@@ -77,7 +77,7 @@
 ##   @itemx aifm
 ##     Adobe Illustrator
 ##   @item cdr
-##   @itemx corel
+##   @itemx @nospell{corel}
 ##     CorelDraw
 ##   @item dxf
 ##     AutoCAD
@@ -135,8 +135,8 @@
 ##   For a complete list, type `system ("gs -h")' to see what formats
 ## and devices are available.
 ##
-##   When the ghostscript is sent to a printer the size is determined
-## by the figure's "papersize" property.  When the ghostscript output 
+##   When Ghostscript output is sent to a printer the size is determined
+## by the figure's "papersize" property.  When the output 
 ## is sent to a file the size is determined by the figure's
 ## "paperposition" property.
 ##
@@ -150,8 +150,8 @@
 ## To specify screen resolution, use "-r0".
 ##
 ## @item -tight
-##   Forces a tight bounding box for eps-files.  Since the ghostscript
-## devices are conversion of an eps-file, this option works the those
+##   Forces a tight bounding box for eps-files.  Since the Ghostscript
+## devices are conversions of an eps-file, this option works for those
 ## devices as well.
 ##
 ## @itemx -S@var{xsize},@var{ysize}
@@ -165,7 +165,7 @@
 ## @itemx -F@var{fontname}:@var{size}
 ## @itemx -F:@var{size}
 ##   @var{fontname} set the postscript font (for use with postscript,
-## aifm, corel and fig).  By default, 'Helvetica' is set for PS/Aifm,
+## aifm, @nospell{corel} and fig).  By default, 'Helvetica' is set for PS/aifm,
 ## and 'SwitzerlandLight' for Corel.  It can also be 'Times-Roman'.
 ## @var{size} is given in points.  @var{fontname} is ignored for the
 ## fig device.
--- a/scripts/plot/stem3.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/plot/stem3.m	Sat Jul 17 19:53:01 2010 -0700
@@ -33,7 +33,7 @@
 ##
 ## @noindent
 ## plots 31 stems with heights from 0 to 6 lying on a circle.  Color 
-## definitions with rgb-triples are not valid!
+## definitions with RGB-triples are not valid!
 ## @seealso{bar, barh, stem, plot}
 ## @end deftypefn
 
--- a/scripts/signal/diffpara.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/signal/diffpara.m	Sat Jul 17 19:53:01 2010 -0700
@@ -33,8 +33,8 @@
 ## described above is returned in @var{dd}.  The value of @var{d} is
 ## simply the mean of @var{dd}.
 ##
-## Reference: Brockwell, Peter J. & Davis, Richard A. Time Series:
-## Theory and Methods Springer 1987.
+## Reference: P.J. Brockwell & R.A. Davis. @cite{Time Series:
+## Theory and Methods}. Springer 1987.
 ## @end deftypefn
 
 ## Author: FL <Friedrich.Leisch@ci.tuwien.ac.at>
--- a/scripts/signal/stft.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/signal/stft.m	Sat Jul 17 19:53:01 2010 -0700
@@ -27,9 +27,9 @@
 ## is applied:
 ##
 ## @table @asis
-## @item hanning
+## @item @nospell{hanning}
 ## w_type = 1
-## @item hamming
+## @item @nospell{hamming}
 ## w_type = 2
 ## @item rectangle
 ## w_type = 3
--- a/scripts/sparse/pcg.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/sparse/pcg.m	Sat Jul 17 19:53:01 2010 -0700
@@ -196,15 +196,14 @@
 ## @end group
 ## @end example
 ## 
-## @sc{References}
+## References:
 ## 
-##      [1] C.T.Kelley, 'Iterative methods for linear and nonlinear equations',
-##      SIAM, 1995 (the base PCG algorithm) 
+##   [1] C.T. Kelley, @cite{Iterative Methods for Linear and Nonlinear Equations},
+##       SIAM, 1995 (the base PCG algorithm) 
 ##      
-##      [2] Y.Saad, 'Iterative methods for sparse linear systems', PWS 1996
-##      (condition number estimate from PCG) Revised version of this book is
-##      available online at http://www-users.cs.umn.edu/~saad/books.html
-## 
+##   [2] Y. Saad, @cite{Iterative Methods for Sparse Linear Systems}, PWS 1996
+##       (condition number estimate from PCG) Revised version of this book is
+##       available online at @url{http://www-users.cs.umn.edu/~saad/books.html}
 ##
 ## @seealso{sparse, pcr}
 ## @end deftypefn
--- a/scripts/sparse/pcr.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/sparse/pcr.m	Sat Jul 17 19:53:01 2010 -0700
@@ -158,10 +158,10 @@
 ## @end group
 ## @end example
 ## 
-## @sc{References}
+## References:
 ## 
-##      [1] W. Hackbusch, "Iterative Solution of Large Sparse Systems of
-##      Equations", section 9.5.4; Springer, 1994
+##      [1] W. Hackbusch, @cite{Iterative Solution of Large Sparse Systems of
+##      Equations}, section 9.5.4; Springer, 1994
 ##
 ## @seealso{sparse, pcg}
 ## @end deftypefn
--- a/scripts/specfun/primes.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/specfun/primes.m	Sat Jul 17 19:53:01 2010 -0700
@@ -21,7 +21,7 @@
 ##
 ## Return all primes up to @var{n}.  
 ##
-## The algorithm used is the Sieve of Erastothenes.
+## The algorithm used is the Sieve of Eratosthenes.
 ##
 ## Note that if you need a specific number of primes you can use the
 ## fact the distance from one prime to the next is, on average,
--- a/scripts/special-matrix/hadamard.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/hadamard.m	Sat Jul 17 19:53:01 2010 -0700
@@ -25,7 +25,7 @@
 ## Construct a Hadamard matrix @var{Hn} of size @var{n}-by-@var{n}.  The 
 ## size @var{n} must be of the form @code{2 ^ @var{k} * @var{p}} in which
 ## @var{p} is one of 1, 12, 20 or 28.  The returned matrix is normalized,
-## meaning @code{Hn(:,1) == 1} and @code{H(1,:) == 1}.
+## meaning @code{Hn(:,1) == 1} and @code{Hn(1,:) == 1}.
 ##
 ## Some of the properties of Hadamard matrices are:
 ##
--- a/scripts/special-matrix/hankel.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/hankel.m	Sat Jul 17 19:53:01 2010 -0700
@@ -18,7 +18,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} hankel (@var{c}, @var{r})
+## @deftypefn  {Function File} {} hankel (@var{c})
+## @deftypefnx {Function File} {} hankel (@var{c}, @var{r})
 ## Return the Hankel matrix constructed given the first column @var{c}, and
 ## (optionally) the last row @var{r}.  If the last element of @var{c} is
 ## not the same as the first element of @var{r}, the last element of
--- a/scripts/special-matrix/invhilb.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/invhilb.m	Sat Jul 17 19:53:01 2010 -0700
@@ -60,7 +60,7 @@
 ## The validity of this formula can easily be checked by expanding 
 ## the binomial coefficients in both formulas as factorials.  It can 
 ## be derived more directly via the theory of Cauchy matrices: 
-## see J. W. Demmel, Applied Numerical Linear Algebra, page 92.
+## see J. W. Demmel, @cite{Applied Numerical Linear Algebra}, p. 92.
 ##
 ## Compare this with the numerical calculation of @code{inverse (hilb (n))},
 ## which suffers from the ill-conditioning of the Hilbert matrix, and the
--- a/scripts/special-matrix/pascal.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/pascal.m	Sat Jul 17 19:53:01 2010 -0700
@@ -18,20 +18,21 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} pascal (@var{n}, @var{t})
+## @deftypefn  {Function File} {} pascal (@var{n})
+## @deftypefnx {Function File} {} pascal (@var{n}, @var{t})
 ##
 ## Return the Pascal matrix of order @var{n} if @code{@var{t} = 0}.
-## @var{t} defaults to 0. Return lower triangular Cholesky factor of 
+## @var{t} defaults to 0.  Return lower triangular Cholesky factor of 
 ## the Pascal matrix if @code{@var{t} = 1}.  This matrix is its own
 ## inverse, that is @code{pascal (@var{n}, 1) ^ 2 == eye (@var{n})}.
 ## If @code{@var{t} = -1}, return its absolute value.  This is the
-## standard pascal triangle as a lower-triangular matrix.
+## standard Pascal triangle as a lower-triangular matrix.
 ## If @code{@var{t} = 2}, return a transposed and permuted version of
 ## @code{pascal (@var{n}, 1)}, which is the cube-root of the identity
 ## matrix.  That is @code{pascal (@var{n}, 2) ^ 3 == eye (@var{n})}.
 ##
 ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz
-##           hadamard, wilkinson, compan, rosser}
+##          hadamard, wilkinson, compan, rosser}
 ## @end deftypefn
 
 ## Author: Peter Ekberg
--- a/scripts/special-matrix/rosser.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/rosser.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,11 +19,11 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} rosser ()
 ##
-## Returns the Rosser matrix.  This is a difficult test case used to test
+## Return the Rosser matrix.  This is a difficult test case used to evaluate
 ## eigenvalue algorithms.
 ##
 ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz
-##           hadamard, wilkinson, compan, pascal}
+##          hadamard, wilkinson, compan, pascal}
 ## @end deftypefn
 
 ## Author: Peter Ekberg
--- a/scripts/special-matrix/toeplitz.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/toeplitz.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,7 +19,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} toeplitz (@var{c}, @var{r})
+## @deftypefn  {Function File} {} toeplitz (@var{c})
+## @deftypefnx {Function File} {} toeplitz (@var{c}, @var{r})
 ## Return the Toeplitz matrix constructed given the first column @var{c},
 ## and (optionally) the first row @var{r}.  If the first element of @var{c}
 ## is not the same as the first element of @var{r}, the first element of
--- a/scripts/special-matrix/vander.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/vander.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,7 +19,8 @@
 ## <http://www.gnu.org/licenses/>.
 
 ## -*- texinfo -*-
-## @deftypefn {Function File} {} vander (@var{c}, @var{n})
+## @deftypefn  {Function File} {} vander (@var{c})
+## @deftypefnx {Function File} {} vander (@var{c}, @var{n})
 ## Return the Vandermonde matrix whose next to last column is @var{c}.
 ## If @var{n} is specified, it determines the number of columns;
 ## otherwise, @var{n} is taken to be equal to the length of @var{c}.
--- a/scripts/special-matrix/wilkinson.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/special-matrix/wilkinson.m	Sat Jul 17 19:53:01 2010 -0700
@@ -19,7 +19,9 @@
 ## -*- texinfo -*-
 ## @deftypefn {Function File} {} wilkinson (@var{n})
 ##
-## Return the Wilkinson matrix of order @var{n}.
+## Return the Wilkinson matrix of order @var{n}.  Wilkinson matrices are
+## symmetric and tridiagonal with pairs of nearly, but not exactly, equal
+## eigenvalues.
 ##
 ## @seealso{hankel, vander, sylvester_matrix, hilb, invhilb, toeplitz
 ##           hadamard, rosser, compan, pascal}
@@ -34,9 +36,8 @@
     print_usage ();
   endif
 
-  nmax = length (n);
-  if (! (nmax == 1))
-    error ("wilkinson: expecting scalar argument, found something else");
+  if (! (isscalar (n) && (n == fix (n)) && n > 0))
+    error ("wilkinson: N must be an integer greater than 1");
   endif
 
   side = ones (n-1, 1);
--- a/scripts/testfun/speed.m	Thu Jul 15 12:15:14 2010 +0200
+++ b/scripts/testfun/speed.m	Sat Jul 17 19:53:01 2010 -0700
@@ -39,20 +39,20 @@
 ## @item @var{init}
 ## Initialization expression for function argument values.  Use @var{k} 
 ## for the test number and @var{n} for the size of the test.  This should
-## compute values for all variables listed in args.  Note that init will
+## compute values for all variables used by @var{f}.  Note that init will
 ## be evaluated first for @math{k = 0}, so things which are constant throughout
 ## the test can be computed then.  The default value is @code{@var{x} =
-## randn (@var{n}, 1);}.
+## randn (@var{n}, 1)}.
 ##
 ## @item @var{f2}
 ## An alternative expression to evaluate, so the speed of the two
-## can be compared.  Default is @code{[]}.
+## can be compared.  The default is @code{[]}.
 ##
 ## @item @var{tol}
 ## If @var{tol} is @code{Inf}, then no comparison will be made between the
 ## results of expression @var{f} and expression @var{f2}.  Otherwise,
 ## expression @var{f} should produce a value @var{v} and expression @var{f2} 
-## should produce a value @var{v2}, and these shall be compared using 
+## should produce a value @var{v2}, and these will be compared using 
 ## @code{assert(@var{v},@var{v2},@var{tol})}.  If @var{tol} is positive,
 ## the tolerance is assumed to be absolute.  If @var{tol} is negative,
 ## the tolerance is assumed to be relative.  The default is @code{eps}.
@@ -82,7 +82,7 @@
 ## general order of your algorithm.  It should indicate if for 
 ## example your implementation is unexpectedly @code{O(n^2)} 
 ## rather than @code{O(n)} because it extends a vector each 
-## time through the loop rather than preallocating one which is 
+## time through the loop rather than pre-allocating one which is 
 ## big enough.  For example, in the current version of Octave,
 ## the following is not the expected @code{O(n)}:
 ##
--- a/src/ChangeLog	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/ChangeLog	Sat Jul 17 19:53:01 2010 -0700
@@ -1,6 +1,16 @@
+2010-07-17  Rik <octave@nomad.inbox5.com>
+
+        * DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc,
+          DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc,
+          DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc,
+          DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc, 
+          DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc,
+          file-io.cc, syscalls.cc: Spellcheck documentation
+
 2010-07-08  Rik <octave@nomad.inbox5.com>
 
-	* DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation (bug #30446).
+	* DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation.
+        (bug #30446).
 
 2010-07-13  Jaroslav Hajek  <highegg@gmail.com>
 
--- a/src/DLD-FUNCTIONS/balance.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/balance.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -58,7 +58,7 @@
 row and column norms are roughly equal in magnitude, and\n\
 @code{dd} = @code{p * d}, in which @code{p} is a permutation\n\
 matrix and @code{d} is a diagonal matrix of powers of two.  This allows\n\
-the equilibration to be computed without roundoff.  Results of\n\
+the equilibration to be computed without round-off.  Results of\n\
 eigenvalue calculation are typically improved by balancing first.\n\
 \n\
 If two output values are requested, @code{balance} returns \n\
--- a/src/DLD-FUNCTIONS/ccolamd.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/ccolamd.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -129,7 +129,7 @@
 or out-of-order row indices.  @code{@var{stats} (8 : 20)} is always zero in\n\
 the current version of CCOLAMD (reserved for future use).\n\
 \n\
-The authors of the code itself are S. Larimore, T. Davis (Uni of Florida)\n\
+The authors of the code itself are S. Larimore, T. Davis (Univ. of Florida)\n\
 and S. Rajamanickam in collaboration with J. Bilbert and E. Ng.  Supported\n\
 by the National Science Foundation (DMS-9504974, DMS-9803599, CCR-0203270),\n\
 and a grant from Sandia National Lab.  See\n\
--- a/src/DLD-FUNCTIONS/cellfun.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/cellfun.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -130,8 +130,8 @@
 function (in a character string).  In the case of a character string\n\
 argument, the function must accept a single argument named @var{x}, and\n\
 it must return a string value.  The function can take one or more arguments,\n\
-with the inputs args given by @var{c}, @var{d}, etc.  Equally the function\n\
-can return one or more output arguments.  For example\n\
+with the inputs arguments given by @var{c}, @var{d}, etc.  Equally the\n\
+function can return one or more output arguments.  For example\n\
 \n\
 @example\n\
 @group\n\
--- a/src/DLD-FUNCTIONS/dasrt.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/dasrt.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -305,7 +305,7 @@
 the same problem as @code{daspk} or @code{dassl}.\n\
 \n\
 Note that because of numerical errors in the constraint functions\n\
-due to roundoff and integration error, @sc{Dasrt} may return false\n\
+due to round-off and integration error, @sc{Dasrt} may return false\n\
 roots, or return the same root at two or more nearly equal values of\n\
 @var{T}.  If such false roots are suspected, the user should consider\n\
 smaller error tolerances or higher precision in the evaluation of the\n\
--- a/src/DLD-FUNCTIONS/dmperm.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/dmperm.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -147,8 +147,8 @@
 triangular form.  The values of @var{r} and @var{s} define the boundaries\n\
 of the blocks.  If @var{s} is square then @code{@var{r} == @var{s}}.\n\
 \n\
-The method used is described in: A. Pothen & C.-J. Fan. Computing the block\n\
-triangular form of a sparse matrix. ACM Trans. Math. Software,\n\
+The method used is described in: A. Pothen & C.-J. Fan. @cite{Computing the\n\
+Block Triangular Form of a Sparse Matrix}. ACM Trans. Math. Software,\n\
 16(4):303-324, 1990.\n\
 @seealso{colamd, ccolamd}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/eigs.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/eigs.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -296,8 +296,8 @@
 of the convergence.  If @var{flag} is 0 then all eigenvalues have converged.\n\
 Any other value indicates a failure to converge.\n\
 \n\
-This function is based on the @sc{arpack} package, written by R Lehoucq,\n\
-K Maschhoff, D Sorensen, and C Yang.  For more information see\n\
+This function is based on the @sc{arpack} package, written by R. Lehoucq,\n\
+K. Maschhoff, D. Sorensen, and C. Yang.  For more information see\n\
 @url{http://www.caam.rice.edu/software/ARPACK/}.\n\
 \n\
 @seealso{eig, svds}\n\
--- a/src/DLD-FUNCTIONS/qz.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/qz.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -292,7 +292,7 @@
   "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{lambda} =} qz (@var{a}, @var{b})\n\
 Generalized eigenvalue problem @math{A x = s B x},\n\
-@var{QZ} decomposition.  There are three ways to call this function:\n\
+QZ decomposition.  There are three ways to call this function:\n\
 @enumerate\n\
 @item @code{lambda = qz(A,B)}\n\
 \n\
@@ -332,6 +332,7 @@
 for (e.g.) solution of discrete time algebraic Riccati equations.\n\
 Form 3 is not available for complex matrices, and does not compute\n\
 the generalized eigenvectors @var{V}, @var{W}, nor the orthogonal matrix @var{Q}.\n\
+\n\
 @table @var\n\
 @item opt\n\
 for ordering eigenvalues of the GEP pencil.  The leading block\n\
@@ -341,7 +342,7 @@
 = unordered (default) \n\
 \n\
 @item \"S\"\n\
-= small: leading block has all |lambda| <=1 \n\
+= small: leading block has all |lambda| <= 1 \n\
 \n\
 @item \"B\"\n\
 = big: leading block has all |lambda| >= 1 \n\
@@ -358,7 +359,7 @@
 @end enumerate\n\
 \n\
 Note: qz performs permutation balancing, but not scaling (see balance).\n\
-Order of output arguments was selected for compatibility with @sc{matlab}\n\
+The order of output arguments was selected for compatibility with @sc{matlab}\n\
 \n\
 @seealso{balance, eig, schur}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/rand.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/rand.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -358,13 +358,14 @@
 value of @var{v}, not @var{v} itself.\n\
 \n\
 By default, the generator is initialized from @code{/dev/urandom} if it is\n\
-available, otherwise from cpu time, wall clock time and the current\n\
+available, otherwise from CPU time, wall clock time and the current\n\
 fraction of a second.\n\
 \n\
 To compute the pseudo-random sequence, @code{rand} uses the Mersenne\n\
 Twister with a period of @math{2^{19937}-1} (See M. Matsumoto and T. Nishimura,\n\
-@cite{Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator}, ACM Trans. on\n\
-Modeling and Computer Simulation Vol. 8, No. 1, January pp.3-30 1998,\n\
+@cite{Mersenne Twister: A 623-dimensionally equidistributed uniform \n\
+pseudorandom number generator}, ACM Trans. on\n\
+Modeling and Computer Simulation Vol. 8, No. 1, pp. 3-30, January 1998,\n\
 @url{http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html}).\n\
 Do @strong{not} use for cryptography without securely hashing\n\
 several returned values together, otherwise the generator state\n\
@@ -502,9 +503,11 @@
 elements having zero mean and variance one.  The arguments are\n\
 handled the same as the arguments for @code{rand}.\n\
 \n\
-By default, @code{randn} uses the Marsaglia and Tsang ``Ziggurat technique'' to\n\
-transform from a uniform to a normal distribution.  (G. Marsaglia and\n\
-W.W. Tsang, @cite{Ziggurat method for generating random variables},\n\
+By default, @code{randn} uses the Marsaglia and Tsang ``Ziggurat technique''\n\
+to transform from a uniform to a normal distribution.\n\
+\n\
+Reference: G. Marsaglia and W.W. Tsang,\n\
+@cite{Ziggurat Method for Generating Random Variables},\n\
 J. Statistical Software, vol 5, 2000,\n\
 @url{http://www.jstatsoft.org/v05/i08/})\n\
 \n\
@@ -562,11 +565,14 @@
 Return a matrix with exponentially distributed random elements.  The\n\
 arguments are handled the same as the arguments for @code{rand}.\n\
 \n\
-By default, @code{rande} uses the Marsaglia and Tsang ``Ziggurat technique'' to\n\
-transform from a uniform to a exponential distribution.  (G. Marsaglia and\n\
-W.W. Tsang, @cite{Ziggurat method for generating random variables},\n\
+By default, @code{randn} uses the Marsaglia and Tsang ``Ziggurat technique''\n\
+to transform from a uniform to a exponential distribution.\n\
+\n\
+Reference: G. Marsaglia and W.W. Tsang,\n\
+@cite{Ziggurat Method for Generating Random Variables},\n\
 J. Statistical Software, vol 5, 2000,\n\
 @url{http://www.jstatsoft.org/v05/i08/})\n\
+\n\
 @seealso{rand, randn, randg, randp}\n\
 @end deftypefn")
 {
@@ -866,19 +872,19 @@
 \n\
 @table @asis\n\
 @item For scalar @var{l} <= 12, use direct method.\n\
-Press, et al., 'Numerical Recipes in C', Cambridge University Press, 1992.\n\
+W.H. Press, et al., @cite{Numerical Recipes in C}, Cambridge University Press, 1992.\n\
 @item For scalar @var{l} > 12, use rejection method.[1]\n\
-Press, et al., 'Numerical Recipes in C', Cambridge University Press, 1992.\n\
+W.H. Press, et al., @cite{Numerical Recipes in C}, Cambridge University Press, 1992.\n\
 @item For matrix @var{l} <= 10, use inversion method.[2]\n\
-Stadlober E., et al., WinRand source code, available via FTP.\n\
+E. Stadlober, et al., WinRand source code, available via FTP.\n\
 @item For matrix @var{l} > 10, use patchwork rejection method.\n\
-Stadlober E., et al., WinRand source code, available via FTP, or\n\
-H. Zechner, 'Efficient sampling from continuous and discrete\n\
-unimodal distributions', Doctoral Dissertation, 156pp., Technical\n\
+E. Stadlober, et al., WinRand source code, available via FTP, or\n\
+H. Zechner, @cite{Efficient sampling from continuous and discrete\n\
+unimodal distributions}, Doctoral Dissertation, 156pp., Technical\n\
 University Graz, Austria, 1994.\n\
 @item For @var{l} > 1e8, use normal approximation.\n\
-L. Montanet, et al., 'Review of Particle Properties', Physical Review\n\
-D 50 p1284, 1994\n\
+L. Montanet, et al., @cite{Review of Particle Properties}, Physical Review\n\
+D 50 p1284, 1994.\n\
 @end table\n\
 @seealso{rand, randn, rande, randg}\n\
 @end deftypefn")
@@ -987,8 +993,8 @@
 @deftypefnx {Loadable Function} {} randperm (@var{n}, @var{m})\n\
 Return a row vector containing a random permutation of @code{1:@var{n}}.\n\
 If @var{m} is supplied, return @var{m} permutations,\n\
-one in each row of a NxM matrix.  The complexity is O(M*N) in both time and\n\
-memory.  The randomization is performed using rand().\n\
+one in each row of a @nospell{NxM} matrix.  The complexity is O(M*N) in both\n\
+time and memory.  The randomization is performed using rand().\n\
 All permutations are equally likely.\n\
 @seealso{perms}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/sparse.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/sparse.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -207,7 +207,7 @@
 DEFUN_DLD (spalloc, args, ,
     "-*- texinfo -*-\n\
 @deftypefn {Loadable Function} {@var{s} =} spalloc (@var{m}, @var{n}, @var{nz})\n\
-Creates a @var{m}-by-@var{n} sparse matrix with preallocated space for at most\n\
+Creates a @var{m}-by-@var{n} sparse matrix with pre-allocated space for at most\n\
 @var{nz} nonzero elements.  This is useful for building the matrix incrementally\n\
 by a sequence of indexed assignments.  Subsequent indexed assignments will reuse\n\
 the pre-allocated memory, provided they are of one of the simple forms\n\
@@ -230,7 +230,7 @@
 memory and time-efficient under these circumstances.  In particular, it is possible\n\
 to efficiently build a pre-allocated sparse matrix from contiguous block of columns.\n\
 \n\
-The amount of preallocated memory for a given matrix may be queried using the function\n\
+The amount of pre-allocated memory for a given matrix may be queried using the function\n\
 @code{nzmax}.\n\
 @seealso{nzmax, sparse}\n\
 @end deftypefn")
--- a/src/DLD-FUNCTIONS/sqrtm.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/sqrtm.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -217,9 +217,9 @@
 @deftypefn {Loadable Function} {[@var{result}, @var{error_estimate}] =} sqrtm (@var{a})\n\
 Compute the matrix square root of the square matrix @var{a}.\n\
 \n\
-Ref: Nicholas J. Higham.  A new sqrtm for @sc{matlab}.  Numerical Analysis\n\
-Report No. 336, Manchester Centre for Computational Mathematics,\n\
-Manchester, England, January 1999.\n\
+Ref: N.J. Higham.  @cite{A New sqrtm for @sc{matlab}}.  Numerical\n\
+Analysis Report No. 336, Manchester @nospell{Centre} for Computational\n\
+Mathematics, Manchester, England, January 1999.\n\
 @seealso{expm, logm}\n\
 @end deftypefn")
 {
--- a/src/DLD-FUNCTIONS/symrcm.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/DLD-FUNCTIONS/symrcm.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -429,12 +429,12 @@
 bandwidth minimization problem.  The implementation is based in the\n\
 descriptions found in\n\
 \n\
-E. Cuthill, J. McKee: Reducing the Bandwidth of Sparse Symmetric\n\
-Matrices. Proceedings of the 24th ACM National Conference, 157--172\n\
+E. Cuthill, J. McKee. @cite{Reducing the Bandwidth of Sparse Symmetric\n\
+Matrices}. Proceedings of the 24th ACM National Conference, 157--172\n\
 1969, Brandon Press, New Jersey.\n\
 \n\
-Alan George, Joseph W. H. Liu: Computer Solution of Large Sparse\n\
-Positive Definite Systems, Prentice Hall Series in Computational\n\
+A. George, J.W.H. Liu. @cite{Computer Solution of Large Sparse\n\
+Positive Definite Systems}, Prentice Hall Series in Computational\n\
 Mathematics, ISBN 0-13-165274-5, 1981.\n\
 \n\
 @seealso{colperm, colamd, symamd}\n\
--- a/src/dirfns.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/dirfns.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -547,7 +547,7 @@
 Given an array of pattern strings (as a char array or a cell array) in\n\
 @var{pattern}, return a cell array of file names that match any of\n\
 them, or an empty cell array if no patterns match.  The pattern strings are \n\
-interpreted as filename globbing patterns (as they are used by unix shells).\n\
+interpreted as filename globbing patterns (as they are used by Unix shells).\n\
 Within a pattern\n\
 @table @code\n\
 @itemx *\n\
--- a/src/file-io.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/file-io.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -262,7 +262,7 @@
 stream before calling @code{input}.\n\
 \n\
 @code{fflush} returns 0 on success and an OS dependent error value\n\
-(@minus{}1 on unix) on error.\n\
+(@minus{}1 on Unix) on error.\n\
 @seealso{fopen, fclose}\n\
 @end deftypefn")
 {
--- a/src/syscalls.cc	Thu Jul 15 12:15:14 2010 +0200
+++ b/src/syscalls.cc	Sat Jul 17 19:53:01 2010 -0700
@@ -447,7 +447,7 @@
 Create the file if it does not exist.\n\
 \n\
 @item O_NONBLOCK\n\
-Nonblocking mode.\n\
+Non-blocking mode.\n\
 \n\
 @item O_SYNC\n\
 Wait for writes to complete.\n\