changeset 12119:e320928eeb3a release-3-2-x release-3-2-4

version 3.2.4
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 22 Jan 2010 12:43:12 +0100
parents 973f585cfdf2
children 19ab747d3c42
files ChangeLog WWW/NEWS-1.html WWW/NEWS-2.html WWW/index.html WWW/mailing-lists/index.html WWW/readme.html doc/ChangeLog libcruft/ChangeLog liboctave/ChangeLog scripts/ChangeLog src/ChangeLog src/version.h test/ChangeLog
diffstat 13 files changed, 30 insertions(+), 3207 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 2010-01-19  Jaroslav Hajek  <highegg@gmail.com>
 
 	* octMakefile.in: Add acx_pthread.m4 to CONF_DISTFILES.
--- a/WWW/NEWS-1.html	Fri Jan 22 10:21:33 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1644 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title> Changes in Octave version 1 </title>
-</head>
-
-<body>
-<h1> News for Octave Version 1 </h1>
-<hr>
-
-<h2>Summary of changes for version 1.1.1</h2>
-
-<pre>
-  * New built-in variables, default_return_value and
-    define_all_return_values.
-
-    If define_all_return_values is set to "false", Octave does not do
-    anything special for return values that are left undefined, and
-    you will get an error message if you try to use them.  For
-    example, if the function
-
-      function [x, y] = f ()
-        y = 1;
-      endfunction
-
-    is called as
-
-      octave:13> [a, b] = f ()
-
-    Octave will print an error message for the attempt to assign an
-    undefined value to `a'.
-
-    This is incompatible with Matlab, which will define the return
-    variable `x' to be the empty matrix.  To get the Matlab-like
-    behavior, you can set the variable define_all_return_values to
-    "true" (the default is "false") and default_return_value to `[]'
-    (the default).  Then, any return values that remain undefined when
-    the function returns will be initialized to `[]'.
-
-    If the function is called without explicitly asking for an output,
-    it will succeed.  This behavior is compatible and unchanged from
-    previous versions of Octave.
-
-  * New built-in variable suppress_verbose_help_message.  If set to
-    "true", Octave will not add additional help information to the end
-    of the output from the help command and usage messages for
-    built-in commands.  The default value is "false".
-
-  * New built-in variable PS4 is used as the prefix of echoed input
-    (enabled with the --echo-input (-x) option).
-
-  * The function size() now accepts an optional second argument.
-
-  * Output from `save - ...' now goes through the pager.
-
-  * The break statement may also be used to exit a function, for
-    compatibility with Matlab.
-
-  * The directory tree for installing Octave is now closer to
-    conforming with the current GNU standards.
-
-  * More bug fixes.
-</pre>
-
-<h2>Summary of changes for version 1.1.0</h2>
-
-<pre>
-  * Octave now requires g++ 2.6.3 or later.  This change is necessary
-    to make template instantiations cleaner, and to avoid having to
-    have special cases in the code for earlier versions of gcc.
-
-  * A new data structure type has been added.  The implementation uses
-    an associative array with indices limited to strings, but the
-    syntax is more like C-style structures.  here are some examples of
-    using it.
-
-    Elements of structures can be of any type, including structures:
-
-      octave:1> x.a = 1;
-      octave:2> x.b = [1, 2; 3, 4];
-      octave:3> x.c = "string";
-      octave:4> x
-      x =
-
-      <structure: a b c>
-
-      octave:5> x.a
-      x.a = 1
-      octave:6> x.b
-      x.b =
-
-        1  2
-        3  4
-
-      octave:7> x.c
-      x.c = string
-      octave:8> x.b.d = 3
-      x.b.d = 3
-      octave:9> x.b
-      x.b =
-
-      <structure: d>
-
-      octave:10> x.b.d
-      x.b.d = 3
-
-    Functions can return structures:
-
-      octave:1> a = rand (3) + rand (3) * I;
-      octave:2> function y = f (x)
-      > y.re = real (x);
-      > y.im = imag (x);
-      > endfunction
-      octave:3> f (a)
-      ans =
-
-      <structure: im re>
-
-      octave:4> ans.im
-      ans.im =
-
-        0.093411  0.229690  0.627585
-        0.415128  0.221706  0.850341
-        0.894990  0.343265  0.384018
-
-      octave:5> ans.re
-      ans.re =
-
-        0.56234  0.14797  0.26416
-        0.72120  0.62691  0.20910
-        0.89211  0.25175  0.21081
-
-    Return lists can include structure elements:
-
-      octave:1> [x.u, x.s, x.v] = svd ([1, 2; 3, 4])
-      x.u =
-
-        -0.40455  -0.91451
-        -0.91451   0.40455
-
-      x.s =
-
-        5.46499  0.00000
-        0.00000  0.36597
-
-      x.v =
-
-        -0.57605   0.81742
-        -0.81742  -0.57605
-
-      octave:8> x
-      x =
-
-      <structure: s u v>
-
-    This feature should be considered experimental, but it seems to
-    work ok.  Suggestions for ways to improve it are welcome.
-
-  * Octave now supports a limited form of exception handling modelled
-    after the unwind-protect form of Lisp:
-
-      unwind_protect
-        BODY
-      unwind_protect_cleanup
-        CLEANUP
-      end_unwind_protect
-
-    Where BODY and CLEANUP are both optional and may contain any
-    Octave expressions or commands.  The statements in CLEANUP are
-    guaranteed to be executed regardless of how control exits BODY.
-
-    This is useful to protect temporary changes to global variables
-    from possible errors.  For example, the following code will always
-    restore the original value of the built-in variable
-    do_fortran_indexing even if an error occurs while performing the
-    indexing operation.
-
-      save_do_fortran_indexing = do_fortran_indexing;
-      unwind_protect
-        do_fortran_indexing = "true";
-        elt = a (idx)
-      unwind_protect_cleanup
-        do_fortran_indexing = save_do_fortran_indexing;
-      end_unwind_protect
-
-    Without unwind_protect, the value of do_fortran_indexing would not
-    be restored if an error occurs while performing the indexing
-    operation because evaluation would stop at the point of the error
-    and the statement to restore the value would not be executed.
-
-  * Recursive directory searching has been implemented using Karl
-    Berry's kpathsea library.  Directories below path elements that
-    end in // are searched recursively for .m files.
-
-  * Octave now waits for additional input when a pair of parentheses
-    is `open' instead of giving an error.  This allows one to write
-    statements like this
-
-      if (big_long_variable_name == other_long_variable_name
-          || not_so_short_variable_name > 4
-          && y > x)
-        some (code, here);
-
-    without having to clutter up the if statement with continuation
-    characters.
-
-  * Continuation lines are now allowed in string constants and are
-    handled correctly inside matrix constants.
-
-  * Both `...{whitespace}\n' and `\{whitespace}\n' can be used to
-    introduce continuation lines, where {whitespace} may include
-    spaces, tabs and comemnts.
-
-  * The script directory has been split up by topic.
-
-  * Dynamic linking mostly works with dld.  The following limitations
-    are known problems:
-
-    -- Clearing dynamically linked functions doesn't work.
-
-    -- Dynamic linking only works with dld, which has not been ported
-       to very many systems yet.
-
-    -- Configuring with --enable-lite-kernel seems to mostly work to
-       make nonessential built-in functions dynamically loaded, but
-       there also seem to be some problems.  For example, fsolve seems
-       to always return info == 3.  This is difficult to debug since
-       gdb won't seem to allow breakpoints to be set inside
-       dynamically loaded functions.
-
-    -- Octave uses a lot of memory if the dynamically linked functions
-       are compiled with -g.  This appears to be a limitation with
-       dld, and can be avoided by not using -g to compile functions
-       that will be linked dynamically.
-
-  * fft2 and ifft2 are now built-in functions.
-
-  * The `&&' and `||' logical operators are now evaluated in a
-    short-circuit fashion and work differently than the element by
-    element operators `&' and `|'.  See the Octave manual for more
-    details.
-
-  * Expressions like 1./m are now parsed as 1 ./ m, not 1. / m.
-
-  * The replot command now takes the same arguments as gplot or
-    gsplot (except ranges, which cannot be respecified with replot
-    (yet)) so you can add additional lines to existing plots.
-
-  * The hold command has been implemented.
-
-  * New function `clearplot' clears the plot window.  The name `clg'
-    is aliased to `clearplot' for compatibility with Matlab.
-
-  * The commands `gplot clear' and `gsplot clear' are equivalent to
-    `clearplot'.  (Previously, `gplot clear' would evaluate `clear' as
-    an ordinary expression and clear all the visible variables.)
-
-  * The Matlab-style plotting commands have been improved.  They now
-    accept line-style arguments, multiple x-y pairs, and other plot
-    option flags.  For example,
- 
-      plot (x, y, "@12", x, y2, x, y3, "4", x, y4, "+")
-
-    results in a plot with
-
-      y  plotted with points of type 2 ("+") and color 1 (red).
-      y2 plotted with lines.
-      y3 plotted with lines of color 4.
-      y4 plotted with points which are "+"s.
-
-    the help message for `plot' and `plot_opt' provide full
-    descriptions of the options.
-
-  * NaN is now dropped from plot data, and Inf is converted to a
-    very large value before calling gnuplot.
-
-  * Improved load and save commands:
-
-    -- The save and load commands can now read and write a new binary
-       file format.  Conversion to and from IEEE big and little endian
-       formats is handled automatically.  Conversion for other formats
-       has not yet been implemented.
-
-    -- The load command can now read Matlab .mat files, though it is
-       not yet able to read sparse matrices or handle conversion for
-       all data formats.
-
-    -- The save command can write Matlab .mat files.
-
-    -- The load command automatically determines the save format
-       (binary, ascii, or Matlab binary).
-
-    -- The default format for the save command is taken from the
-       built-in variable `default_save_format'.
-
-    -- The save and load commands now both accept a list of globbing
-       patterns so you can easily load a list of variables from a
-       file.
-
-    -- The load command now accepts the option -list, for listing the
-       variable names without actually loading the data.  With
-       -verbose, it prints a long listing.
-
-    -- The load command now accepts the option -float-binary, for
-       saving floating point data in binary files in single precision.
-
-  * who and whos now accept a list of globbing patterns so you can
-    limit the lists of variables and functions to those that match a
-    given set of patterns.
-
-  * New functions for manipulating polynomials
-      
-      compan     -- companion matrix corresponding to polynomial coefficients
-      conv       -- convolve two vectors
-      deconv     -- deconvolve two vectors
-      roots      -- find the roots of a polynomial
-      poly       -- characteristic polynomial of a matrix
-      polyderiv  -- differentiate a polynomial
-      polyinteg  -- integrate a polynomial
-      polyreduce -- reduce a polynomial to minimum number of terms
-      polyval    -- evaluate a polynomial at a point
-      polyvalm   -- evaluate a polynomial in the matrix sense
-      residue    -- partial fraction expansion corresponding to the ratio
-                    of two polynomials
-
-  * New functions for manipulating sets
-
-      create_set   -- create a set of unique values
-      complement   -- find the complement of two sets
-      intersection -- find the intersection of two sets
-      union        -- find the union of two sets
-
-  * New elementary functions:
-
-      acot   acoth   acsc   acsch
-      asec   asech   cot    coth
-      csc    csch    log2   sec
-      sech
-
-  * New special functions:
-
-      beta   -- beta function
-      betai  -- incomplete beta function
-      gammai -- incomplete gamma function
-
-  * New image processing functions:
-
-      colormap  -- set and return current colormap
-      gray      -- set a gray colormap
-      gray2ind  -- image format conversion
-      image     -- display an image
-      imagesc   -- scale and display an image
-      imshow    -- display images
-      ind2gray  -- image format conversion
-      ind2rgb   -- image format conversion
-      loadimage -- load an image from a file
-      ntsc2rgb  -- image format conversion
-      ocean     -- set a color colormap
-      rgb2ind   -- image format conversion
-      rgb2ntsc  -- image format conversion
-      saveimage -- save an image to a file
-
-  * New time and date funcitons:
-
-      tic          -- set wall-clock timer
-      toc          -- get elapsed wall-clock time, since timer last set
-      etime        -- another way to get elapsed wall-clock time
-      cputime      -- get CPU time used since Octave started
-      is_leap_year -- is the given year a leap year?
-
-  * Other new functions:
-
-      bug_report -- submit a bug report to the bug-octave mailing list
-
-      toascii -- convert a string to a matrix of ASCII character codes
-
-      octave_tmp_file -- generate a unique temporary file name
-
-      undo_string_escapes -- replace special characters in a string by
-                             their backslash forms
-
-      is_struct -- determine whether something is a structure data type
-
-      feof   -- check EOF condition for a specified file
-      ferror -- check error state for a specified file
-      fread  -- read binary data from a file
-      fwrite -- write binary data to a file
-
-      file_in_path -- check to see if named file exists in given path
-
-      kbhit  -- get a single character from the terminal
-
-      axis   -- change plot ranges
-      hist   -- plot histograms
-
-      diary  -- save commands and output to a file
-
-      type   -- show the definition of a function
-      which  -- print the type of an identifier or the location of a
-                function file
-
-      isieee  -- Returns 1 if host uses IEEE floating point
-      realmax -- Returns largest floating point number
-      realmin -- Returns smallest floating point number
-
-      gcd     -- greatest common divisor
-      lcm     -- least common multiple
-
-      null    -- orthonormal basis of the null space of a matrix
-      orth    -- orthonormal basis of the range space of a matrix
-
-      fft2    -- two-dimensional fast fourier transform
-      ifft2   -- two-dimensional inverse fast fourier transform
-      filter  -- digital filter
-      fftfilt -- filter using fft
-      fftconv -- convolve to vectors using fft
-      sinc    -- returns sin(pi*x)/(pi*x)
-      freqz   -- compute the frequency response of a filter
-
-  * The meaning of nargin (== args.length ()) in built-in functions
-    has been changed to match the meaning of nargin in user-defined
-    functions.
-
-  * Variable return lists.  Octave now has a real mechanism for
-    handling functions that return an unspecified number of values,
-    so it is no longer necessary to place an upper bound on the number
-    of outputs that a function can produce.
-
-    Here is an example of a function that uses the new syntax to
-    produce n values:
-
-      function [...] = foo (n)
-        for i = 1:n
-          vr_val (i * x);
-        endfor
-      endfunction
-
-  * New keyword, all_va_args, that allows the entire list of va_args
-    to be passed to another function.  For example, given the functions
-
-      function f (...)
-        while (nargin--)
-          disp (va_arg ())
-        endwhile
-      endfunction
-      function g (...)
-        f ("begin", all_va_args, "end")
-      endfunction
-
-    the statement
-
-      g (1, 2, 3)
-
-    prints
-
-      begin
-      1
-      2
-      3
-      end
-
-    all_va_args may be used more than once, but can only be used
-    within functions that take a variable number of arguments.
-
-  * If given a second argument, svd now returns an economy-sized
-    decomposition, eliminating the unecessary rows or columns of U or
-    V.
-
-  * The max and min functions correctly handle complex matrices in
-    which some columns contain real values only.
-
-  * The find function now handles 2 and 3 output arguments.
-
-  * The qr function now allows computation of QR with pivoting.
-
-  * hilb() is much faster for large matrices.
-
-  * computer() is now a built-in function.
-
-  * pinv() is now a built-in function.
-
-  * The output from the history command now goes through the pager.
-
-  * If a function is called without assigning the result, nargout is
-    now correctly set to 0.
-
-  * It is now possible to write functions that only set some return
-    values.  For example, calling the function
-
-      function [x, y, z] = f () x = 1; z = 2; endfunction
-
-    as
-
-      [a, b, c] = f ()
-
-    produces:
-
-      a = 1
-
-      b = [](0x0)
-
-      c = 2
-
-  * The shell_cmd function has been renamed to system (the name
-    shell_cmd remains for compatibility).  It now returns [output, status].
-
-  * New built-in variable `OCTAVE_VERSION'.  Also a new function,
-    version, for compatibility with Matlab.
-
-  * New built-in variable `automatic_replot'.  If it is "true", Octave
-    will automatically send a replot command to gnuplot each time the
-    plot changes.  Since this is fairly inefficient, the default value
-    is "false".
-
-  * New built-in variable `whitespace_in_literal_matrix' allows some
-    control over how Octave decides to convert spaces to commas in
-    matrix expressions like `[m (1)]'.
-
-    If the value of `whitespace_in_literal_matrix' is "ignore", Octave
-    will never insert a comma or a semicolon in a literal matrix list.
-    For example, the expression `[1 2]' will result in an error
-    instead of being treated the same as `[1, 2]', and the expression
-
-      [ 1, 2,
-        3, 4 ]
-
-    will result in the vector [1 2 3 4] instead of a matrix.
-
-    If the value of `whitespace_in_literal_matrix' is "traditional",
-    Octave will convert spaces to a comma between identifiers and `('.
-    For example, given the matrix
-
-      m = [3 2]
-
-    the expression
-
-      [m (1)]
-
-    will be parsed as
-
-      [m, (1)]
-
-    and will result in
-
-      [3 2 1]
-
-    and the expression
-
-      [ 1, 2,
-        3, 4 ]
-
-    will result in a matrix because the newline character is converted
-    to a semicolon (row separator) even though there is a comma at the
-    end of the first line (trailing commas or semicolons are ignored).
-    This is apparently how Matlab behaves.
-
-    Any other value for `whitespace_in_literal_matrix' results in
-    behavior that is the same as traditional, except that Octave does
-    not convert spaces to a comma between identifiers and `('.
-    For example, the expression
-
-      [m (1)]
-
-    will produce 3.  This is the way Octave has always behaved.
-
-  * Line numbers in error messages for functions defined in files and
-    for script files now correspond to the file line number, not the
-    number of lines after the function keyword appeared.
-
-  * Octave now extracts help from script files.  The comments must
-    come before any other statements in the file.
-
-  * In function files, the first block of comments in the file will
-    now be interpreted as the help text if it doesn't look like the
-    Octave copyright notice.  Otherwise, Octave extracts the first set
-    of comments after the function keyword.
-
-  * The function clock is more accurate on systems that have the
-    gettimeofday() function.
-
-  * The standard output stream is now automatically flushed before
-    reading from stdin with any of the *scanf() functions.
-
-  * Expanded reference card.
-
-  * The Octave distribution now includes a frequently asked questions
-    file, with answers.  Better answers and more questions (with
-    answers!) are welcome.
-
-  * New option --verbose.  If Octave is invoked with --verbose and not
-    --silent, a message is printed if an octaverc file is read while
-    Octave is starting.
-
-  * An improved configure script generated by Autoconf 2.0.
-
-  * Lots of bug fixes.
-</pre>
-
-<h2>Summary of changes for version 1.0</h2>
-
-<pre>
-  * C-style I/O functions now handle files referenced by name or by
-    number more consistently.
-</pre>
-
-<h2>Summary of changes for version 0.83</h2>
-
-<pre>
-  * Loading global symbols should work now.
-
-  * Clearing the screen doesn't reprint the prompt unnecessarily.
-
-  * The operations <complex scalar> OP <real matrix> for OP == +, -,
-    *, or ./ no longer crash Octave.
-
-  * More portability and configuration fixes.
-</pre>
-
-<h2>Summary of changes for version 0.82</h2>
-
-<pre>
-  * Octave now comes with a reference card.
-
-  * The manual has been improved, but more work remains to be done.
-
-  * The atanh function now works for complex arguments.
-
-  * The asin, acos, acosh, and atanh functions now work properly when
-    given real-valued arguments that produce complex results.
-
-  * SEEK_SET, SEEK_CUR, and SEEK_END are now constants.
-
-  * The `using' qualifier now works with gplot and gsplot when the
-    data to plot is coming directly from a file.
-
-  * The strcmp function now works correctly for empty strings.
-
-  * Eliminated bogus parse error for M-files that don't end with `end'
-    or `endfunction'.
-
-  * For empty matrices with one nonzero dimension, the +, -, .*, and
-    ./ operators now correctly preserve the dimension.
-
-  * Octave no longer crashes if you type ^D at the beginning of a line
-    in the middle of defining a loop or if statement.
-
-  * On AIX systems, Back off on indexing DiagArray via Proxy class to
-    avoid gcc (or possibly AIX assembler?) bug. 
-
-  * Various other bug and portability fixes.
-</pre>
-
-<h2>Summary of changes for version 0.81</h2>
-
-<pre>
-  * Octave no longer dumps core if you try to define a function in
-    your .octaverc file.
-
-  * Fixed bug in Array class that resulted in bogus off-diagonal
-    elements when computing eigenvalue and singular value
-    decompositions.
-
-  * Fixed bug that prevented lsode from working on the SPARCstation,
-    at least with some versions of Sun's f77.  This bug was introduced
-    in 0.80, when I changed LSODE to allow the user to abort the
-    integration from within the RHS function.
-
-  * Fixed bug that prevented global attribute of variables from being
-    saved with save(), and another that prevented load() from working
-    at all.
-</pre>
-
-<h2>Summary of changes for version 0.80</h2>
-
-<pre>
-  * I have started working on a manual for the C++ classes.  At this
-    point, it is little more than a list of function names.  If you
-    would like to volunteer to help work on this, please contact
-    bug@octave.org.
-
-  * The patterns accepted by the save and clear commands now work like
-    file name globbing patterns instead of regular expressions.  I
-    apologize for any inconvenience this change may cause, but file
-    name globbing seems like a more reasonable style of pattern
-    matching for this purpose.
-
-  * It is now possible to specify tolerances and other optional inputs
-    for dassl, fsolve, lsode, npsol, qpsol, and quad.  For each of
-    these functions, there is a corresponding function X_options,
-    which takes a keyword and value arguments.  If invoked without any
-    arguments, the X_options functions print a list of possible
-    keywords and current values.  For example,
-
-      npsol_options ()
-
-    prints a list of possible options with values, and
-
-      npsol_options ("major print level", 10)
-
-    sets the major print level to 10.
-
-    The keyword match is not case sensitive, and the keywords may be
-    abbreviated to the shortest unique match.  For example,
-
-      npsol_options ("ma p", 10)
-
-    is equivalent to the statement shown above.
-
-  * The new built-in variable save_precision can be used to set the
-    number of digits preserved by the ASCII save command.
-
-  * Assignment of [] now works in most cases to allow you to delete
-    rows or columns of matrices and vectors.  For example, given a
-    4x5 matrix A, the assignment
-
-      A (3, :) = []
-
-    deletes the third row of A, and the assignment
-
-      A (:, 1:2:5) = []
-
-    deletes the first, third, and fifth columns.
-
-  * Variable argument lists.  Octave now has a real mechanism for
-    handling functions that take an unspecified number of arguments,
-    so it is no longer necessary to place an upper bound on the number
-    of optional arguments that a function can accept.
-
-    Here is an example of a function that uses the new syntax to print
-    a header followed by an unspecified number of values:
-
-      function foo (heading, ...)
-        disp (heading);
-        va_start ();
-        while (--nargin)
-          disp (va_arg ());
-        endwhile
-      endfunction
-
-    Note that the argument list must contain at least one named
-    argument (this restriction may eventually be removed), and the
-    ellipsis must appear as the last element of the argument list.
-
-    Calling va_start() positions an internal pointer to the first
-    unnamed argument and allows you to cycle through the arguments
-    more than once.  It is not necessary to call va_start() if you
-    do not plan to cycle through the arguments more than once.
-
-  * Recursive functions should work now.
-
-  * The environment variable OCTAVE_PATH is now handled in the same
-    way as TeX handles TEXINPUTS.  If the path starts with `:', the
-    standard path is prepended to the value obtained from the
-    environment.  If it ends with `:' the standard path is appended to
-    the value obtained from the environment.
-
-  * New functions, from Kurt Hornik (hornik@neuro.tuwien.ac.at) and
-    the Department of Probability Theory and Statistics TU Wien,
-    Austria:
-
-     corrcoef    -- corrcoef (X, Y) is the correlation between the i-th
-                    variable in X and the j-th variable in Y
-                    corrcoef (X) is corrcoef (X, X)
-     cov         -- cov (X, Y) is the covariance between the i-th
-                    variable in X and the j-th variable in Y
-                    cov (X) is cov (X, X)
-     gls         -- generalized least squares estimation
-     kurtosis    -- kurtosis(x) = N^(-1) std(x)^(-4) SUM_i (x(i)-mean(x))^4 - 3
-                    If x is a matrix, return the row vector containing
-                    the kurtosis of each column
-     mahalanobis -- returns Mahalanobis' D-square distance between the
-                    multivariate samples X and Y, which must have the
-                    same number of components (columns), but may have
-                    a different number of observations (rows)
-     ols         -- ordinary least squares estimation
-     pinv        -- returns the pseudoinverse of X; singular values
-                    less than tol are ignored
-     skewness    -- skewness (x) = N^(-1) std(x)^(-3) SUM_i (x(i)-mean(x))^3
-                    if x is a matrix, return the row vector containing
-                    the skewness of each column
-
-  * Errors in user-supplied functions called from dassl, fsolve,
-    lsode, npsol, and quad are handled more gracefully.
-
-  * Programming errors in the use of the C++ classes within Octave
-    should no longer cause Octave to abort.  Instead, Octave's error
-    handler function is called and execution continues as best as is
-    possible.  This should result in eventually returning control to
-    the top-level Octave prompt.  (It would be nice to have a real
-    exception handling mechanism...)
-
-  * A number of memory leaks have been eliminated.  Thanks to
-    Fong Kin Fui <fui@ee.nus.sg> for reporting them.
-
-  * The C++ matrix classes are now derived from a generic
-    template-based array class.
-
-  * The readline function operate-and-get-next (from bash) is now
-    available and bound to C-O by default.
-
-  * Octave now uses the version of readline currently distributed with
-    bash-1.13.  On some systems, interactive invocations of Octave
-    will now blink the cursor to show matching parens.
-
-  * By default, include files are now installed in
-    $prefix/include/octave instead of $prefix/include.
-
-  * Octave now uses a config.h file instead of putting all defines on
-    the compiler command line.
-</pre>
-
-<h2>Summary of changes for version 0.79</h2>
-
-<pre>
-  * New control systems functions:
-
-     dgram -- Returns the discrete controllability and observability gramian.
-     dlqr  -- Discrete linear quadratic regulator design.
-     dlqe  -- Discrete linear quadratic estimator (Kalman Filter) design.
-     c2d   -- Convert continuous system description to discrete time
-              description assuming zero-order hold and given sample time.
-
-  * The max (min) functions can now return the index of the max (min)
-    value as a second return value.
-</pre>
-
-<h2>Summary of changes for version 0.78</h2>
-
-<pre>
-  * Octave's handling of global variables has been completely
-    rewritten.  To access global variables inside a function, you must
-    now declare them to be global within the function body.  Likewise,
-    if you do not declare a variable as global at the command line,
-    you will not have access to it within a function, even if it is
-    declared global there.  For example, given the function
-
-      function f ()
-        global x = 1;
-        y = 2;
-      endfunction
-
-    the global variable `x' is not visible at the top level until the
-    command
-
-      octave:13> global x
-
-    has been evaluated, and the variable `y' remains local to the
-    function f() even if it is declared global at the top level.
-
-    Clearing a global variable at the top level will remove its global
-    scope and leave it undefined.  For example,
-
-      octave:1> function f ()   # Define a function that accesses
-      >  global x;              #   the global variable `x'.
-      >  x
-      > endfunction
-      octave:2> global x = 1    # Give the variable `x' a value.
-      octave:3> f ()            # Evaluating the function accesses the
-      x = 1                     #   global `x'.
-      octave:4> clear x         # Remove `x' from global scope, clear value.
-      octave:5> x = 2           # Define new local `x' at the top level
-      x = 2
-      octave:6> f               # The global `x' is no longer defined.
-      error: `x' undefined near line 1 column 25
-      error: evaluating expression near line 1, column 25
-      error: called from `f'
-      octave:7> x               # But the local one is.
-      x = 2
-
-  * The new function, `is_global (string)' returns 1 if the variable
-    named by string is globally visible.  Otherwise, returns 0.
-
-  * The implementation of `who' has changed.  It now accepts the
-    following options:
-
-      -b -builtins   -- display info for built-in variables and functions
-      -f -functions  -- display info for currently compiled functions
-      -v -variables  -- display info for user variables
-      -l -long       -- display long info
-
-    The long output looks like this:
-
-      octave:5> who -l
-
-      *** currently compiled functions:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   user function         -      -  f
-
-      *** local user variables:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   real scalar           1      1  y
-
-      *** globally visible user variables:
-
-      prot  type               rows   cols  name
-      ====  ====               ====   ====  ====
-       wd   complex matrix       13     13  x
-
-    where the first character of the `protection' field is `w' if the
-    symbol can be redefined, and `-' if it has read-only access.  The
-    second character may be `d' if the symbol can be deleted, or `-'
-    if the symbol cannot be cleared.
-
-  * The new built-in variable ignore_function_time_stamp can be used
-    to prevent Octave from calling stat() each time it looks up
-    functions defined in M-files.  If set to "system", Octave will not
-    automatically recompile M-files in subdirectories of
-    $OCTAVE_HOME/lib/VERSION if they have changed since they were last
-    compiled, but will recompile other M-files in the LOADPATH if they
-    change.  If set to "all", Octave will not recompile any M-files
-    unless their definitions are removed with clear.  For any other
-    value of ignore_function_time_stamp, Octave will always check to
-    see if functions defined in M-files need to recompiled.  The
-    default value of ignore_function_time_stamp is "system".
-
-  * The new built-in variable EDITOR can be used to specify the editor
-    for the edit_history command.  It is set to the value of the
-    environment variable EDITOR, or `vi' if EDITOR is not set, or is
-    empty.
-
-  * There is a new built-in variable, INFO_FILE, which is used as the
-    location of the info file.  Its initial value is
-    $OCTAVE_HOME/info/octave.info, so `help -i' should now work
-    provided that OCTAVE_HOME is set correctly, even if Octave is
-    installed in a directory different from that specified at compile
-    time.
-
-  * There is a new command line option, --info-file FILE, that may be
-    used to set Octave's idea of the location of the info file.  It
-    will override any value of OCTAVE_INFO_FILE found in the
-    environment, but not any INFO_FILE="filename" commands found in
-    the system or user startup files. 
-
-  * Octave's Info reader will now recognize gzipped files that have
-    names ending in `.gz'.
-
-  * The save command now accepts regular expressions as arguments.
-    Note that these patterns are regular expressions, and do not work
-    like filename globbing.  For example, given the variables `a',
-    `aa', and `a1', the command `save a*' saves `a' and `aa' but not
-    `a1'.  To match all variables beginning with `a', you must use an
-    expression like `a.*' (match all sequences beginning with `a'
-    followed by zero or more characters).
-
-  * Line and column information is included in more error messages.
-</pre>
-
-<h2>Summary of changes for version 0.77</h2>
-
-<pre>
-  * Improved help.  The command `help -i topic' now uses the GNU Info
-    browser to display help for the given topic directly from the
-    Texinfo documenation.
-
-  * New function: chol -- Cholesky factorization.
-</pre>
-
-<h2>Summary of changes for version 0.76</h2>
-
-<pre>
-  * Better run-time error messages.  Many now include line and column
-    information indicating where the error occurred.  Octave will also
-    print a traceback for errors occurring inside functions. If you
-    find error messages that could use improvement, or errors that
-    Octave fails to catch, please send a bug report to
-    bug@octave.org.
-
-  * If gplot (or gsplot) is given a string to plot, and the string
-    does not name a file, Octave will pass the string along to gnuplot
-    directly.  This allows commands like
-
-      gplot "sin (x)" w l, data w p
-
-    to work (assuming that data is a variable containing a matrix of
-    values).
-
-  * Long options (--help, --version, etc.) are supported.
-</pre>
-
-<h2>Summary of changes for version 0.75</h2>
-
-<pre>
-  * The documentation is much more complete, but still could use a lot
-    of work.
-
-  * The history function now prints line numbers by default.  The
-    command `history -q' will  omit them.
-
-  * The clear function now accepts regular expressions.
-
-  * If gplot (or gsplot) is given a string to plot, and the string
-    names a file, Octave attempts to plot the contents of the file.
-
-  * New functions:
-
-    history:
-
-      run_history  -- run commands from the history list.
-      edit_history -- edit commands from the history list with your
-                      favorite editor.
-
-    linear algebra:
-
-      balance         -- Balancing for algebraic and generalized
-                         eigenvalue problems.
-      givens          -- Givens rotation.
-      is_square       -- Check to see if a matrix is square.
-      qzhess          -- QZ decomposition of the matrix pencil (a - lambda b).
-      qzval           -- Generalized eigenvalues for real matrices.
-      syl             -- Sylvester equation solver.
-
-    control systems:
-
-      is_symmetric    -- Check to see if a matrix is symmetric.
-      abcddim         -- Check dimensions of linear dynamic system [A,B,C,D].
-      is_controllable -- Check to see if [A,B,C,D] is controllable.
-      is_observable   -- Check to see if [A,B,C,D] is observable.
-      are             -- Solve algebraic Ricatti equation.
-      dare            -- Solve discrete-time algebraic Ricatti equation.
-      lqe             -- Kalman filter design for continuous linear system.
-      lqr             -- Linear Quadratic Regulator design.
-      lyap            -- Solve Lyapunov equation.
-      dlyap           -- Solve discrete Lyapunov equation.
-      tzero           -- Compute the transmission zeros of [A,B,C,D].
-</pre>
-
-<h2>Summary of changes for version 0.74</h2>
-
-<pre>
-  * Formal parameters to functions are now always considered to be
-    local variables, so things like
-
-      global x = 0
-      global y = 0
-      function y = f (x) x = 1; y = x; end
-      f (x)
-
-    result in the function returning 1, with the global values of x
-    and y unchanged.
-
-  * Multiple assignment expressions are now allowed to take indices,
-    so things like
-
-      octave:13> [a([1,2],[3,4]), b([5,6],[7,8])] = lu ([1,2;3,4])
-
-    will work correctly.
-</pre>
-
-<h2>Summary of changes for version 0.73</h2>
-
-<pre>
-  * Saving and loading global variables works correctly now.
-
-  * The save command no longer saves built-in variables.
-
-  * Global variables are more reliable.
-
-  * Matrices may now have one or both dimensions zero, so that
-    operations on empty matrices are now handled more consistently.
-
-    By default, dimensions of the empty matrix are now printed along
-    with the empty matrix symbol, `[]'.  For example:
-
-      octave:13> zeros (3, 0)
-      ans = 
-
-      [](3x0)
-
-    The new variable `print_empty_dimensions' controls this behavior.
-    
-    See also Carl de Boor, An Empty Exercise, SIGNUM, Volume 25,
-    pages 2--6, 1990, or C. N. Nett and W. M. Haddad, A
-    System-Theoretic Appropriate Realization of the Empty Matrix
-    Concept, IEEE Transactions on Automatic Control, Volume 38,
-    Number 5, May 1993.
-
-  * The right and left division operators `/' and `\' will now find a
-    minimum norm solution if the system is not square, or if the
-    coefficient matrix is singular.
-
-  * New functions:
-
-      hess   -- Hessenberg decomposition
-      schur  -- Ordered Schur factorization
-      perror -- print error messages corresponding to error codes
-                returned from the functions fsolve, npsol, and qpsol
-                (with others to possibly be added later).
-
-  * Octave now prints a warning if it finds anything other than
-    whitespace or comments after the final `end' or `endfunction'
-    statement.
-
-  * The bodies of functions, and the for, while, and if commands are
-    now allowed to be empty.
-
-  * Support for Gill and Murray's QPSOL has been added.  Like NPSOL,
-    QPSOL is not freely redistributable either, so you must obtain
-    your own copy to be able to use this feature.  More information
-    about where to find QPSOL and NPSOL are in the file README.NLP.
-</pre>
-
-<h2>Summary of changes for version 0.72</h2>
-
-<pre>
-  * For numeric output, columns are now lined up on the decimal point.
-    (This requires libg++-2.3.1 or later to work correctly).
-
-  * If octave is running interactively and the output intended for the
-    screen is longer than one page and a pager is available, it is
-    sent to the pager through a pipe.  You may specify the program to
-    use as the pager by setting the variable PAGER.  PAGER may also
-    specify a command pipeline.
-
-  * Spaces are not always significant inside square brackets now, so
-    commands like
-
-      [ linspace (1, 2) ]
-
-    will work.  However, some possible sources of confusion remain
-    because Octave tries (possibly too hard) to determine exactly what
-    operation is intended from the context surrounding an operator.
-    For example:
-
-    -- In the command 
-
-         [ 1 - 1 ]
-
-       the `-' is treated as a binary operator and the result is the
-       scalar 0, but in the command
-
-         [ 1 -1 ]
-
-       the `-' is treated as a unary operator and the result is the
-       vector [ 1 -1 ].
-
-    -- In the command
-
-         a = 1; [ 1 a' ]
-
-       the single quote character `'' is treated as a transpose operator
-       and the result is the vector [ 1 1 ], but in the command
-
-         a = 1; [ 1 a ' ]
-
-       an error message indicating an unterminated string constant is
-       printed.
-
-  * Assignments are just expressions now, so they are valid anywhere
-    other expressions are.  This means that things like
-
-      if (a = n < m) ... endif
-
-    are valid.  This is parsed as:  compare `n < m', assign the result
-    to the variable `a', and use it as the test expression in the if
-    statement.
-
-    To help avoid errors where `=' has been used but `==' was
-    intended, Octave issues a warning suggesting parenthesis around
-    assignments used as truth values.  You can suppress this warning
-    by adding parenthesis, or by setting the value of the new built-in
-    variable `warn_assign_as_truth_value' to 'false' (the default
-    value is 'true').
-
-    This is also true for multiple assignments, so expressions like
-
-      [a, b, c] = [u, s, v] = expression
-
-    are now possible.  If the expression is a function, nargout is set
-    to the number of arguments for the right-most assignment.  The
-    other assignments need not contain the same number of elements.
-    Extra left hand side variables in an assignment become undefined.
-
-  * The default line style for plots is now `lines' instead of
-    `points'.  To change it, use the `set data style STYLE' command.
-
-  * New file handling and I/O functions:
-
-      fopen    -- open a file for reading or writing
-      fclose   -- close a file
-      fflush   -- flush output to a file
-      fgets    -- read characters from a file
-      frewind  -- set file position to the beginning of a file
-      fseek    -- set file position
-      ftell    -- tell file position
-      freport  -- print a report for all open files
-      fscanf   -- read from a file
-      sscanf   -- read from a string
-      scanf    -- read from the standard input
-
-  * New built-in variables for file and I/O functions:
-
-      stdin    -- file number corresponding to the standard input stream.
-      stdout   -- file number corresponding to the standard output stream.
-      stderr   -- file number corresponding to the standard error stream.
-
-    The following may be used as the final (optional) argument for
-    fseek: 
-
-      SEEK_SET -- set position relative to the beginning of the file.
-      SEEK_CUR -- set position relative to the current position.
-      SEEK_END -- set position relative to the end of the file.
-
-  * New function: setstr -- convert vectors or scalars to strings
-    (doesn't work for matrices yet).
-
-  * If possible, computer now prints the system type instead of
-    always printing `Hi Dave, I'm a HAL-9000'.
-
-  * Octave now properly saves and restores its internal state
-    correctly in more places.  Interrupting Octave while it is
-    executing a script file no longer causes it to exit.
-
-  * Octave now does tilde expansion on each element of the LOADPATH.
-
-  * A number of memory leaks have been plugged.
-
-  * Dependencies for C++ source files are now generated automatically
-    by g++.
-
-  * There is a new command line option, -p PATH, that may be used to
-    set Octave's loadpath from the command line.  It will override any
-    value of OCTAVE_PATH found in the environment, but not any
-    LOADPATH="path" commands found in the system or user startup files.
-
-  * It is now possible to override Octave's default idea of the
-    location of the system-wide startup file (usually stored in
-    $(prefix)/lib/octave/octaverc) using the environment variable
-    OCTAVE_HOME.  If OCTAVE_HOME has a value, Octave will look for
-    octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave.
-
-    This allows people who are using binary distributions (as is
-    common with systems like Linux) to install the real octave binary
-    in any directory (using a name like octave.bin) and then install
-    a simple script like this
-
-      #!/bin/sh
-      OCTAVE_HOME=/foo/bar/baz
-      export OCTAVE_HOME
-      exec octave.bin
-
-    to be invoked as octave.
-
-</pre>
-
-<h2>Summary of changes for version 0.71</h2>
-
-<pre>
-  * Much improved plotting facility.  With this release, Octave does
-    not require a specially modified version of gnuplot, so gnuplot
-    sources are no longer distributed with Octave.  For a more
-    detailed description of the new plotting features, see the file
-    PLOTTING.
-
-  * New plotting commands:
-
-      plot            -- 2D plots
-      semilogx        -- 2D semilog plot with logscale on the x axis
-      semilogy        -- 2D semilog plot with logscale on the y axis
-      loglog          -- 2D log-log plot
-      mesh            -- 3D mesh plot
-      meshdom         -- create matrices for 3D plotting from two vectors
-      contour         -- contour plots of 3D data
-      bar             -- create bar graphs
-      stairs          -- create stairstep plots
-      polar           -- 2D plots from theta-R data
-      grid            -- turn plot grid lines on or off
-      xlabel, ylabel  -- place labels on the x and y axes of 2D plots
-      sombrero        -- demonstrate 3D plotting
-      gplot           -- 2D plot command with gnuplot-like syntax
-      gsplot          -- 3D plot command with gnuplot-like syntax
-      set             -- set plot options with gnuplot syntax
-      show            -- show plot options with gnuplot syntax
-      closeplot       -- close stream to gnuplot process
-      purge_tmp_files -- delete temporary files created by plot command
-
-  * Other new commands:
-
-      ls, dir         -- print a directory listing
-      shell_cmd       -- execute shell commands
-      keyboard        -- get input from keyboard, useful for debugging
-      menu            -- display a menu of options and ask for input
-      fft             -- fast fourier transform
-      ifft            -- inverse fast fourier transform
-
-  * Strings may be enclosed in either single or double quote
-    characters.  Double quote characters are not special within single
-    quote strings, and single quotes are not special within double
-    quote strings.
-
-  * Command name completion now works for M-file names too.
-
-  * Better help and usage messages for many functions.
-
-  * Help is now available for functions defined in M-files.  The first
-    block of comments is taken as the text of the help message.
-
-  * Numerous changes in preparation to support dynamic loading of
-    object files with dld.
-
-  * Bug fixes to make solving DAEs with dassl actually work.
-
-  * The command `save file' now saves all variables in the named file.
-
-  * If do_fortran_indexing is 'true', indexing a scalar with
-    [1,1,1,...] (n times) replicates its value n times.  The
-    orientation of the resulting vector depends on the value of
-    prefer_column_vectors.
-
-  * Things like [[1,2][3,4]] no longer cause core dumps, and invalid
-    input like [1,2;3,4,[5,6]] now produces a diagnositic message.
-
-  * The cd, save, and load commands now do tilde expansion.
-
-  * It's now possible to clear global variables and functions by name.
-
-  * Use of clear inside functions is now a parse error.
-</pre>
-
-<h2>Summary of changes for version 0.70</h2>
-
-<pre>
-  * Better parse error diagnostics.  For interactive input, you get
-    messages like
-
-      octave:1> a = 3 + * 4;
-
-      parse error:
-
-          a = 3 + * 4;
-                  ^
-
-    and for script files, the message includes the file name and input
-    line number:
-
-      octave:1> foo
-
-      parse error near line 4 of file foo.m:
-
-          a = 3 + * 4;
-                  ^
-
-  * New built-in variable PS2 which is used as the secondary prompt.
-    The default value is '> '.
-
-  * New file, octave-mode.el, for editing Octave code with GNU Emacs.
-    This is a modified version of Matthew R. Wette's matlab-mode.el.
-
-  * Better support for missing math functions.
-
-  * User preferences are now cached in a global struct so we don't
-    have to do a symbol table lookup each time we need to know what
-    they are.  This should mean slightly improved performance for
-    evaluating expressions.
-</pre>
-
-<h2>Summary of changes for version 0.69</h2>
-
-<pre>
-  * Multiple assignments are now possible, so statements like
-
-      a = b = c = 3;
-      a = b = c = [1,2;3,4];
-
-    or
-
-      c = (a = (b = 2) * 3 + 4) * 5
-
-    are legal, as are things that have even more bizarre effects, like
-
-      a(4:6,4:6) = b(2:3,2:3) = [1,2;3,4];
-
-    (try it).
-
-  * Improved parsing of strings (but they still don't work as matrix
-    elements).
-
-  * An M-file may now either define a function or be a list of
-    commands to execute.
-
-  * Better detection and conditional compilation of IEEE functions
-    isinf, finite, and isnan.
-
-  * Replacements for acosh, asinh, atanh, and gamma from the BSD math
-    library for those systems that don't have them.
-</pre>
-
-<h2>Summary of changes for version 0.68</h2>
-
-<pre>
-  * New functions:
-
-      eval  -- evaluate a string as a sequence of Octave commands. 
-      input -- print a prompt and get user input.
-</pre>
-
-<h2>Summary of changes for version 0.67</h2>
-
-<pre>
-  * New functions:
-
-      find -- return the indices of nonzero elements.
-
-  * Zero-one style indexing now works.  For example,
-
-      a = [1,2,3,4];
-      b = a([1,0,0,1])
-
-    sets b to the first and fourth elememnts of a.
-
-    Zero-one style indexing also works for indexing the left hand side
-    of an assignment.  For example,
-
-      a = rand (1,2;3,4);
-      a([0,1],:) = [-1,-2]
-
-    sets the second row of a to [-1 -2]
-
-    The behavior for the ambiguous case
-
-      a = [1,2,3,4];
-      b = a([1,1,1,1]);
-
-    is controlled by the new global variable `prefer_zero_one_indexing'.
-    If this variable is equal to 'true', b will be set to [1 2 3 4].
-    If it is false, b will be set to [1 1 1 1].  The default value is
-    'false'.
-
-  * Using the new global variable `propagate_empty_matrices', it is
-    possible to have unary andy binary operations on empty matrices
-    return an empty matrix.  The default value of this variable is
-    'warn', so that empty matrices are propagated but you get a
-    warning.  Some functions, like eig and svd have also been changed
-    to handle this.
-
-  * Empty matrices can be used in conditionals, but they always
-    evaluate to `false'.  With propagate_empty_matrices = 'true', both
-    of the following expressions print 0: 
-
-      if  [], 1, else 0, end
-      if ~[], 1, else 0, end
-
-  * Octave no longer converts input like `3.2 i' or `3 I' to complex
-    constants directly because that causes problems inside square
-    brackets, where spaces are important.  This abbreviated notation
-    *does* work if there isn't a space between the number and the i,
-    I, j, or J.
-</pre>
-
-<h2>Summary of changes for version 0.66</h2>
-
-<pre>
-  * Logical unary not operator (~ or !) now works for complex.
-
-  * Left division works.
-
-  * Right and left element by element division should work correctly
-    now.
-
-  * Numbers like .3e+2 are no longer errors.
-
-  * Indexing a matrix with a complex value doesn't cause a core dump.
-
-  * The min and max functions should work correctly for two arguments.
-
-  * Improved (I hope!) configuration checks.
-
-  * Octave is now installed as octave-M.N, where M and N are version
-    numbers, and octave is a link to that file.  This makes it
-    possible to have more than one version of the interpreter installed.
-</pre>
-
-<h2>Summary of changes for version 0.63</h2>
-
-<pre>
-  * The reshape function works again.
-
-  * Octave now converts input like `3.2i' or `3 I' or `2.3e5 j' to be 
-    complex constants directly, rather than requiring an expression
-    like `3.3 * i' to be evaluated.
-</pre>
-
-<h2>Summary of changes for version 0.61</h2>
-
-<pre>
-  * Octave has been successfully compiled using gcc 2.3.3 and libg++ 2.3.
-    on a 486 system running Linux.
-
-  * The win_texas_lotto function is now called texas_lotto (it's a
-    script file, and win_texas_lotto.m is too long for some Linux and
-    System V systems).
-</pre>
-
-<h2>Summary of changes for version 0.57</h2>
-
-<pre>
-  * The C-like formatted print functions printf, fprintf, and sprintf
-    finally work. 
-</pre>
-
-<h2>Summary of changes for version 0.56</h2>
-
-<pre>
-  * By default, octave prints a short disclaimer when it starts.
-    (You can suppress it by invoking octave with -q).
-
-  * You can keep octave from reading your ~/.octaverc and .octaverc
-    files by invoking it with -f.
-
-  * When returning two values, eig now returns [v, d] instead of
-    [lambda, v], where d is a diagonal matrix made from lambda.
-
-  * The win_texas_lotto function now produces a sorted list.
-
-  * New functions:
-
-      expm -- matrix exponential.
-      logm -- matrix logarithm.
-</pre>
-
-<h2>Summary of changes for version 0.55</h2>
-
-<pre>
-  * The following (C-style) backslash escape sequences work in quoted
-    strings (useful(?) with printf()):
-
-      \a  bell         \r  carriage return
-      \b  backspace    \t  horizontal tab
-      \f  formfeed     \v  vertical tab
-      \n  newline      \\  backslash
-
-  * Use of `...' at the end of a line will allow a statement to
-    continue over more than one line.
-
-  * The names `inf' and `nan' are now aliases for `Inf' and `NaN',
-    respectively.
-
-  * New functions:
-
-      casesen -- print a warning if the luser tries to turn off case
-                 sensitivity.
-      median  -- find median value.
-      norm    -- compute the norm of a matrix.
-      sort    -- sort columns.
-
-  * New variable, `silent_functions'.  If silent_functions == 'true',
-    the results of expressions are not printed even if they are not
-    followed by a semicolon.  The disp() and printf() functions still
-    result in output.  The default value for this variable is 'false'.
-
-  * New variable `return_last_value_computed'.  If it is 'true',
-    functions defined in script files return the last value computed
-    if a return value has not been explicitly declared.  The default
-    value for this variable is 'false'.
-</pre>
-
-<h2>Summary of changes for version 0.52</h2>
-
-<pre>
-  * Name completion works for function and variable names currently in
-    the symbol tables.  Coming soon: completion for names of functions
-    defined in script files but not yet compiled. 
-
-  * The initial value of do_fortran_indexing is now false, and the
-    initial value of prefer_column_vectors is now true.  Swap the
-    values of these variables if you want behavior that is more like
-    Matlab.
-
-  * All script files check the number of input arguments before doing
-    much real work.
-
-  * The identifiers `i' and `j' are now also names for sqrt(-1).
-    These symbols may be used for other purposes, but their original
-    definition will reappear if they are cleared.
-
-  * The symbol tables are now implemented with hash tables for faster
-    searching. 
-
-  * A small amount of help is now available for most built-in
-    operators, keywords and functions.  Coming soon: help for script
-    files.
-
-  * Without any arguments, the help command now lists all known
-    built-in operators, keywords and functions.
-
-  * Generic parse errors are now signalled by `Eh, what's up doc?',
-    which is closer to what Bugs actually says.
-
-  * The who command now only prints variable names by default.
-    Use the -fcn (or -fcns, or -functions) switch to print the names of
-    built-in or currently compiled functions.
-</pre>
-
-<h2>Summary of changes for version 0.51</h2>
-
-<pre>
-  * Major overhaul of array indexing.
-
-  * The colloc function actually works now.
-</pre>
-
-<h2>Summary of changes for version 0.50</h2>
-
-<pre>
-  * The lsode and dassl functions now return the states only,
-    instead of the time and the states, so you must keep track of
-    the corresponding times (this is easy though, because you have
-    to specify a vector of desired output times anyway).
-
-  * Solution of NLPs with NPSOL now works on the SPARC.
-
-  * New keywords `endif', `endfor', `endfunction', `endif', and
-    `endwhile', which allow for better diagnostics.  The `end' keyword
-    is still recognized.  All script files have been changed to use
-    these new keywords in place of `end'.
-
-  * It is now possible to uninstall Octave by doing a `make uninstall'
-    in the top level directory.
-
-  * The Makefiles are much closer to conforming with GNU coding standards.
-
-  * New functions:
-
-      win_texas_lotto  -- produce six unique random numbers between 1 and 50.
-      quad             -- numerical integration.
-      lu               -- LU factorization
-      qr               -- QR factorization
-      dassl            -- Solution of DAEs using DASSL.
-
-  * New files:
-
-      THANKS -- A list of people and organazations who have supported
-                the development of Octave.
-
-      NEWS   -- This file, listing recent changes.
-
-  * Help is now available at the gnuplot prompt.
-</pre>
-
-</body>
-</html>
--- a/WWW/NEWS-2.html	Fri Jan 22 10:21:33 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,989 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title> Changes in Octave version 2 </title>
-</head>
-
-<body>
-<h1> News for Octave Version 2 </h1>
-<hr>
-
-<h2>Summary of changes for version 2.0.10</h2>
-
-<ul>
-<li>The built-in variable `PWD' has been removed.  If you need to get
-    the value of the current working directory, use the pwd() function
-    instead.
-</li>
-<p>
-<li>For compatibility with Matlab, Octave's lyap function now solves
-<pre>
-      A*X + X*A' + C = 0
-</pre>
-    instead of
-<pre>
-      A'*X + X*A + C = 0
-</pre>
-    To try to avoid confusion for people who are used to the way
-    Octave behaved in previous versions, a warning is printed the
-    first time lyap is called in a given session.  To completely
-    disable the warning, simply add
-<pre>
-      global __disable_lyap_interface_change_warning__;
-</pre>
-    to your ~/.octaverc file.  The warning will eventually disappear
-    for good in some future version of Octave.
-</li>
-<p>
-<li>New built-in functions for computing Bessel functions:
-    besseli, besselj, besselk, and bessely.
-</li>
-<p>
-<li>The gammai and betai functions are now implemented as built-in
-    functions rather than function files.
-</li>
-<p>
-<li>The new built-in variable `implicit_num_to_str_ok' controls
-    whether Octave converts expressions like `[97, 98, 99, "123"]' to
-    strings.  The default value is 0 unless you use --traditional.
-</li>
-<p>
-<li>The new built-in variable `fixed_point_format' controls whether
-    Octave uses a scaled fixed-point format for displaying matrices.
-    The default value is 0 unless you use --traditional.
-</li>
-<p>
-<li>The function sumsq now computes sum (x .* conj (x)) for complex values.
-</li>
-<p>
-<li>Dynamically linked functions can be cleared.
-</li>
-<p>
-<li>If a .oct file has a time stamp more recent than the time that it
-    was loaded, it is automatically reloaded.  Reloading a .oct file
-    may cause several functions to be cleared automatically.  By
-    default, a warning is printed that lists the names of the
-    functions that will be cleared.  You can suppress the message by
-    setting the new built-in variable `warn_reload_forces_clear' to 0.
-</li>
-<p>
-<li>Global variables are now initialized to the empty matrix, for
-    compatibility with Matlab.
-</li>
-<p>
-<li>Explicit initialization of global variables only happens once.
-    For example, after the following statements are evaluated, g still
-    has the value 1.
-<pre>
-      global g = 1
-      global g = 2
-</pre>
-    This is useful for initializing global variables that are used to
-    maintain state information that is shared among several functions.
-</li>
-<p>
-<li>The new built-in variable max_recursion_depth allows you to
-    prevent Octave from attempting infinite recursion.  The default
-    value is 256.
-</li>
-<p>
-<li>Octave now uses readline version 2.1 and kpathsea 3.0.
-</li>
-<p>
-<li>The libreadline and libkpathsea libraries are no longer installed.
-</li>
-<p>
-<li>The libcruft, liboctave, and liboctinterp libraries are now
-    installed in $libdir/octave instead of just $libdir.
-</li>
-<p>
-<li>It's no longer necessary to have libg++, but you do need to have
-    the GNU implementation of libstdc++.  If you are using gcc 2.7.2,
-    libstdc++ is distributed as part of libg++ 2.7.2.  For later
-    versions, libstdc++ is distributed separately.  For egcs,
-    libstdc++ is included with the compiler distribution.
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.9</h2>
-
-This is a bug-fixing release, but there is one new user-visible
-feature:
-
-<ul>
-<li>It is now possible to specify a label for lines in the plot key
-    when using the plot function.  For example,
-<pre>
-      plot (x, y, "-*;sin(x);")
-</pre>
-    plots y vs. x using the linespoints style and sets the title of
-    the line in the key to be `sin(x)'
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.8</h2>
-
-This is a bug-fixing release.  There are only a few new user-visible
-features.
-
-<ul>
-<li>If the argument to eig() is symmetric, Octave uses the specialized
-    Lapack subroutine for symmetric matrices for a significant
-    increase in performance.
-</li>
-<p>
-<li>It is now possible to use the mkoctfile script to create .oct
-    files from multiple source and object files.
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.7</h2>
-
-This is a bug-fixing release.  There are no new user-visible features.
-
-<h2>Summary of changes for version 2.0.6</h2>
-
-This is primarily a bug-fixing release.  There are only a few new
-user-visilbe features.
-
-<ul>
-<li>The new built-in variable default_eval_print_flag controls whether
-    Octave prints the results of commands executed by eval() that do
-    not end with semicolons.  The default is 1.
-</li>
-<p>
-<li>The new built-in constant OCTAVE_HOME specifies the top-level
-    directory where Octave is installed.
-</li>
-<p>
-<li>Octave no longer includes functions to work with NPSOL or QPSOL,
-    because they are not free software.
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.5</h2>
-
-<ul>
-<li>A `switch' statement is now available.  See the Statements chapter
-    in the manual for details.
-</li>
-<p>
-<li>Commands like ls, save, and cd may now also be used as formal
-    parameters for functions.
-</li>
-<p>
-<li>More tests.
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.4</h2>
-
-<ul>
-<li>It is now possible to use commands like ls, save, and cd as simple
-    variable names.  They still cannot be used as formal parameters
-    for functions, or as the names of structure variables.  Failed
-    assignments leave them undefined (you can recover the orginal
-    function definition using clear).
-</li>
-<p>
-<li>Is is now possible to invoke commands like ls, save, and cd as
-    normal functions (for example, load ("foo", "x", "y", "z")).
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.3</h2>
-
-<ul>
-<li>The manual has been completely revised and now corresponds much
-    more closely to the features of the current version.
-</li>
-<p>
-<li>The return value for assignment expressions is now the RHS since
-    that is more consistent with the way other programming languages
-    work.  However, Octave still prints the entire LHS value so that
-<pre>
-      x = zeros (1, 2);
-      x(2) = 1
-</pre>
-    still prints
-<pre>
-      x =
-
-        0  1
-
-</pre>
-    but an assignment like
-<pre>
-      z = x(2) = 1
-</pre>
-    sets z to 1 (not [ 0, 1 ] as in previous versions of Octave).
-</li>
-<p>
-<li>It is now much easier to make binary distributions.  See the
-    Binary Distributions section of the manual for more details.
-</li>
-</ul>
-
-<h2>Summary of changes for version 2.0.2</h2>
-
-<ul>
-</li>
-<li>Octave now stops executing commands from a script file if an error
-    is encountered.
-</li>
-<p>
-<li>The return, and break commands now cause Octave to quit executing
-    commands from script files.  When used in invalid contexts, the
-    break, continue, and return commands are now simply ignored
-    instead of producing parse errors.
-</li>
-<p>
-<li>size ("") is now [0, 0].
-</li>
-<p>
-<li>New functions:
-<dl>
-<dt><b>sleep</b></dt>
-<dd>pause execution for a specified number of seconds</dd>
-<dt><b>usleep</b></dt>
-<dd>pause execution for a specified number of microseconds</dd>
-</dl>
-</li>
-</ul>
-</pre>
-
-<h2>Summary of changes for version 2.0.1</h2>
-
-<p>
-Other than bug fixes, there were no user-visible changes in version
-2.0.1.
-
-<h2>Summary of changes for version 2.0</h2>
-
-<p>
-<ul>
-<li>The set and show commands for setting and displaying gnuplot
-    parameters have been replaced by gset and gshow.  This change will
-    probably break lots of things, but it is necessary to allow for
-    compatibility with the Matlab graphics and GUI commands in a
-    future version of Octave.  (For now, the old set and show commands
-    do work, but they print an annoying warning message to try to get
-    people to switch to using gset.)
-</li>
-<p>
-<li>Octave has been mostly ported to Windows NT and Windows 95 using
-    the beta 17 release of the Cygnus GNU-WIN32 tools.  Not everything
-    works, but it is usable.  See the file README.WINDOWS for more
-    information.
-</li>
-<p>
-<li>Dynamic linking works on more systems using dlopen() and friends
-    (most modern Unix systems) or shl_load() and friends (HP/UX
-    systems).  A simple example is provided in examples/hello.cc.
-    For this feature to work, you must configure Octave with
-    --enable-shared.  You may also need to have a shared-library
-    version of libg++ and libstdc++.
-</li>
-<p>
-<li>New data types can be added to Octave by writing a C++ class.  On
-    systems that support dynamic linking, new data types can be added
-    to an already running Octave binary.  A simple example appears in
-    the file examples/make_int.cc.  Other examples are the standard
-    Octave data types defined in the files src/ov*.{h,cc} and
-    src/op-*.cc.
-</li>
-<p>
-<li>The configure option --enable-bounds-check turns on bounds
-    checking on element references for Octave's internal array and
-    matrix classes.  It's enabled by default.  To disable this
-    feature, configure Octave with --disable-bounds-check.
-</li>
-<p>
-<li>The C-style I/O functions (fopen, fprintf, etc.) have been
-    rewritten to be more compatible with Matlab.  The fputs function
-    has also been added.  Usage of the *printf functions that was
-    allowed in previous versions of Octave should still work.
-    However, there is no way to make the new versions of the *scanf
-    functions compatible with Matlab *and* previous versions of
-    Octave.  An optional argument to the *scanf functions is now
-    available to make them behave in a way that is compatible with
-    previous versions of Octave.
-</li>
-<p>
-<li>Octave can now read files that contain columns of numbers only,
-    with no header information.  The name of the loaded variable is
-    constructed from the file name.  Each line in the file must have
-    the same number of elements.
-</li>
-<p>
-<li>The interface to the pager has changed.  The new built-in variable
-    `page_output_immediately' controls when Octave sends output to the
-    pager.  If it is nonzero, Octave sends output to the pager as soon
-    as it is available.  Otherwise, Octave buffers its output and
-    waits until just before the prompt is printed to flush it to the
-    pager.
-</li>
-<p>
-<li>Expressions of the form
-<pre>
-      A(i,j) = x
-</pre>
-    where X is a scalar and the indices i and j define a matrix of
-    elements now work as you would expect rather than giving an error.
-    I am told that this is how Matlab 5.0 will behave when it is
-    released.
-</li>
-<p>
-<li>Indexing of character strings now works.
-</li>
-<p>
-<li>The echo command has been implemented.
-</li>
-<p>
-<li>The document command is now a regular function.
-</li>
-<p>
-<li>New method for handling errors:
-<pre>
-      try
-        BODY
-      catch
-        CLEANUP
-      end_try_catch
-</pre>
-    Where BODY and CLEANUP are both optional and may contain any
-    Octave expressions or commands.  The statements in CLEANUP are
-    only executed if an error occurs in BODY.
-
-<p> No warnings or error messages are printed while BODY is
-    executing.  If an error does occur during the execution of BODY,
-    CLEANUP can access the text of the message that would have been
-    printed in the builtin constant __error_text__.  This is the same
-    as eval (TRY, CATCH) (which may now also use __error_text__) but
-    it is more efficient since the commands do not need to be parsed
-    each time the TRY and CATCH statements are evaluated.
-</li>
-<p>
-<li>Octave no longer parses the help command by grabbing everything
-    after the keyword `help' until a newline character is read.  To
-    get help for `;' or `,', now, you need to use the command
-    `help semicolon' or `help comma'.
-</li>
-<p>
-<li>Octave's parser now does some simple constant folding.  This means
-    that expressions like 3*i are now evaluated only once, when a
-    function is compiled, and the right hand side of expressions like
-    a = [1,2;3,4] are treated as true matrix constants rather than
-    lists of elements which must be evaluated each time they are
-    needed.
-</li>
-<p>
-<li>Built-in variables that can take values of "true" and "false" can
-    now also be set to any nonzero scalar value to indicate "true",
-    and 0 to indicate "false".
-</li>
-<p>
-<li>New built-in variables `history_file', `history_size', and
-    `saving_history'.
-</li>
-<p>
-<li>New built-in variable `string_fill_char' specifies the character
-    to fill with when creating arrays of strings.
-</li>
-<p>
-<li>If the new built-in variable `gnuplot_has_frames' is nonzero,
-    Octave assumes that your copy of gnuplot includes support for
-    multiple plot windows when using X11.
-
-    If the new built-in variable `gnuplot_has_multiplot' is nonzero,
-    Octave assumes that your copy of gnuplot has the multiplot support
-    that is included in recent 3.6beta releases.
-
-    The initial values of these variables are determined by configure,
-    but can be changed in your startup script or at the command line
-    in case configure got it wrong, or if you upgrade your gnuplot
-    installation.
-</li>
-<p>
-<li>The new plot function `figure' allows multiple plot windows when
-    using newer versions of gnuplot with X11.
-</li>
-<p>
-<li>Octave now notices when the plotter has exited unexpectedly.
-</li>
-<p>
-<li>New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
-    will warn when statements in function definitions don't end in
-    semicolons.  The default value is 0.
-</li>
-<p>
-<li>Octave now attempts to continue after floating point exceptions
-    or out-of-memory errors.
-</li>
-<p>
-<li>If Octave crashes, it now attempts to save all user-defined
-    variables in a file named `octave-core' in the current directory
-    before exiting.
-</li>
-<p>
-<li>It is now possible to get the values of individual option settings
-    for the dassl, fsolve, lsode, npsol, qpsol, and quad functions
-    using commands like
-<pre>
-      dassl_reltol = dassl_options ("relative tolerance");
-</pre>
-</li>
-<p>
-<li>The svd() function no longer computes the left and right singular
-    matrices unnecessarily.  This can significantly improve
-    performance for large matrices if you are just looking for the  
-    singular values.
-</li>
-<p>
-<li>The filter() function is now a built-in function.
-</li>
-<p>
-<li>New function randn() returns a pseudo-random number from a normal
-    distribution.  The rand() and randn() functions have separate
-    seeds and generators.
-</li>
-<p>
-<li>Octave's command-line arguments are now available in the built-in
-    variable `argv'.  The program name is also available in the
-    variables `program_invocation_name' and `program_name'.  If
-    executing a script from the command line (e.g., octave foo.m) or
-    using the `#! /bin/octave' hack, the program name is set to the
-    name of the script.
-</li>
-<p>
-<li>New built-in variable `completion_append_char' used as the
-    character to append to successful command-line completion
-    attempts.  The default is " " (a single space).
-</li>
-<p>
-<li>Octave now uses a modified copy of the readline library from
-    version 1.14.5 of GNU bash.
-</li>
-<p>
-<li>In prompt strings, `\H' expands to the whole host name.
-</li>
-<p>
-<li>New built-in variable `beep_on_error'.  If nonzero, Octave will try
-    to ring your terminal's bell before printing an error message.
-    The default value is 0.
-</li>
-<p>
-<li>For functions defined from files, the type command now prints the
-    text of the file.  You can still get the text reconstructed from
-    the parse tree by using the new option -t (-transformed).
-</li>
-<p>
-<li>New command-line argument --traditional sets the following
-    preference variables for compatibility with Matlab:
-<pre>
-      PS1                           = ">> "
-      PS2                           = ""
-      beep_on_error                 = 1
-      default_save_format           = "mat-binary"
-      define_all_return_values      = 1
-      do_fortran_indexing           = 1
-      empty_list_elements_ok        = 1
-      implicit_str_to_num_ok        = 1
-      ok_to_lose_imaginary_part     = 1
-      page_screen_output            = 0
-      prefer_column_vectors         = 0
-      prefer_zero_one_indexing      = 1
-      print_empty_dimensions        = 0
-      treat_neg_dim_as_zero         = 1
-      warn_function_name_clash      = 0
-      whitespace_in_literal_matrix  = "traditional"
-</pre>
-</li>
-<p>
-<li>New functions:
-<dl>
-<dt><b>readdir</b></dt>
-<dd>returns names of files in directory as array of strings
-</dd>
-<dt><b>mkdir</b></dt>
-<dd>create a directory
-</dd>
-<dt><b>rmdir</b></dt>
-<dd>remove a directory
-</dd>
-<dt><b>rename</b></dt>
-<dd>rename a file
-</dd>
-<dt><b>unlink</b></dt>
-<dd>delete a file
-</dd>
-<dt><b>umask</b></dt>
-<dd>set permission mask for file creation
-</dd>
-<dt><b>stat</b></dt>
-<dd>get information about a file
-</dd>
-<dt><b>lstat</b></dt>
-<dd>get information about a symbolic link
-</dd>
-<dt><b>glob</b></dt>
-<dd>perform filename globbing
-</dd>
-<dt><b>fnmatch</b></dt>
-<dd>match strings with filename globbing patterns
-</dd>
-<dt><b>more</b></dt>
-<dd>turn the pager on or off
-</dd>
-<dt><b>gammaln</b></dt>
-<dd>alias for lgamma
-</dd>
-</dl>
-</li>
-<p>
-<li>New audio functions from Andreas Weingessel:
-<dl>
-<dt><b>lin2mu</b></dt>
-<dd>linear to mu-law encoding
-</dd>
-<dt><b>loadaudio</b></dt>
-<dd>load an audio file to a vector
-</dd>
-<dt><b>mu2lin</b></dt>
-<dd>mu-law to linear encoding
-</dd>
-<dt><b>playaudio</b></dt>
-<dd>play an audio file
-</dd>
-<dt><b>record</b></dt>
-<dd>record sound and store in vector
-</dd>
-<dt><b>saveaudio</b></dt>
-<dd>save a vector as an audio file
-</dd>
-<dt><b>setaudio</b></dt>
-<dd>executes mixer shell command
-</dd>
-</dl>
-</li>
-<p>
-<li>New plotting functions from Vinayak Dutt.  Ones dealing with
-    multiple plots on one page require features from gnuplot 3.6beta
-    (or later).
-<dl>
-<dt><b>bottom_title</b></dt>
-<dd>put title at the bottom of the plot
-</dd>
-<dt><b>mplot</b></dt>
-<dd>multiplot version of plot
-</dd>
-<dt><b>multiplot</b></dt>
-<dd>switch multiple-plot mode on or off
-</dd>
-<dt><b>oneplot</b></dt>
-<dd>return to one plot per page
-</dd>
-<dt><b>plot_border</b></dt>
-<dd>put a border around plots
-</dd>
-<dt><b>subplot</b></dt>
-<dd>position multiple plots on a single page
-</dd>
-<dt><b>subwindow</b></dt>
-<dd>set subwindow position for next plot
-</dd>
-<dt><b>top_title</b></dt>
-<dd>put title at the top of the plot
-</dd>
-<dt><b>zlabel</b></dt>
-<dd>put a label on the z-axis
-</dd>
-</dl>
-</li>
-<p>
-<li>New string functions
-<dl>
-<dt><b>bin2dec</b></dt>
-<dd>convert a string of ones and zeros to an integer
-</dd>
-<dt><b>blanks</b></dt>
-<dd>create a string of blanks
-</dd>
-<dt><b>deblank</b></dt>
-<dd>delete trailing blanks
-</dd>
-<dt><b>dec2bin</b></dt>
-<dd>convert an integer to a string of ones and zeros
-</dd>
-<dt><b>dec2hex</b></dt>
-<dd>convert an integer to a hexadecimal string
-</dd>
-<dt><b>findstr</b></dt>
-<dd>locate occurrences of one string in another
-</dd>
-<dt><b>hex2dec</b></dt>
-<dd>convert a hexadecimal string to an integer
-</dd>
-<dt><b>index</b></dt>
-<dd>return position of first occurrence a string in another
-</dd>
-<dt><b>rindex</b></dt>
-<dd>return position of last occurrence a string in another
-</dd>
-<dt><b>split</b></dt>
-<dd>divide one string into pieces separated by another
-</dd>
-<dt><b>str2mat</b></dt>
-<dd>create a string matrix from a list of strings
-</dd>
-<dt><b>strrep</b></dt>
-<dd>replace substrings in a string
-</dd>
-<dt><b>substr</b></dt>
-<dd>extract a substring
-</dd>
-</dl>
-<p>
-    The following functions return a matrix of ones and zeros.
-    Elements that are nonzero indicate that the condition was true for
-    the corresponding character in the string array.
-<dl>
-<dt><b>isalnum</b></dt>
-<dd>letter or a digit
-</dd>
-<dt><b>isalpha</b></dt>
-<dd>letter
-</dd>
-<dt><b>isascii</b></dt>
-<dd>ascii
-</dd>
-<dt><b>iscntrl</b></dt>
-<dd>control character
-</dd>
-<dt><b>isdigit</b></dt>
-<dd>digit
-</dd>
-<dt><b>isgraph</b></dt>
-<dd>printable (but not space character)
-</dd>
-<dt><b>islower</b></dt>
-<dd>lower case
-</dd>
-<dt><b>isprint</b></dt>
-<dd>printable (including space character)
-</dd>
-<dt><b>ispunct</b></dt>
-<dd>punctuation
-</dd>
-<dt><b>isspace</b></dt>
-<dd>whitespace
-</dd>
-<dt><b>isupper</b></dt>
-<dd>upper case
-</dd>
-<dt><b>isxdigit</b></dt>
-<dd>hexadecimal digit
-</dd>
-</dl>
-<p>
-    These functions return new strings.
-<dl>
-<dt><b>tolower</b></dt>
-<dd>convert to lower case
-</dd>
-<dt><b>toupper</b></dt>
-<dd>convert to upper case
-</dd>
-</dl>
-</li>
-<p>
-<li>New function, fgetl.  Both fgetl and fgets accept an optional
-    second argument that specifies a maximum number of characters to
-    read, and the function fgets is now compatible with Matlab.
-</li>
-<p>
-<li>Printing in hexadecimal format now works (format hex).  It is also
-    possible to print the internal bit representation of a value
-    (format bit).  Note that these formats are only implemented for
-    numeric values.
-</li>
-<p>
-<li>Additional structure features:
-<ul>
-<li>Name completion now works for structures.
-</li>
-<li>Values and names of structure elements are now printed by
-    default.  The new built-in variable `struct_levels_to_print'
-    controls the depth of nested structures to print.  The default
-    value is 2.
-</li>
-<li>New functions:
-<dl>
-<dt><b>struct_contains (S, NAME)</b></dt>
-<dd>returns 1 if S is a structure with element NAME; otherwise returns 0.
-</dd> 
-<dt><b>struct_elements (S)</b></dt>
-<dd>returns the names of all elements of structure S in an array of
-    strings.
-</dd>
-</dl>
-</li>
-</ul>
-</li>
-<p>
-<li>New io/subprocess functions:
-<dl>
-<dt><b>fputs</b></dt>
-<dd>write a string to a file with no formatting
-</dd>
-<dt><b>popen2</b></dt>
-<dd>start a subprocess with 2-way communication
-</dd>
-<dt><b>mkfifo</b></dt>
-<dd>create a FIFO special file
-</dd>
-<dt><b>popen</b></dt>
-<dd>open a pipe to a subprocess
-</dd>
-<dt><b>pclose</b></dt>
-<dd>close a pipe from a subprocess
-</dd>
-<dt><b>waitpid</b></dt>
-<dd>check the status of or wait for subprocesses
-</dd>
-</dl>
-</li>
-<p>
-<li>New time functions:
-<dl>
-<dt><b>asctime</b></dt>
-<dd>format time structure according to local format
-</dd>
-<dt><b>ctime</b></dt>
-<dd>equivalent to `asctime (localtime (TMSTRUCT))'
-</dd>
-<dt><b>gmtime</b></dt>
-<dd>return time structure corresponding to UTC
-</dd>
-<dt><b>localtime</b></dt>
-<dd>return time structure corresponding to local time zone
-</dd>
-<dt><b>strftime</b></dt>
-<dd>print given time structure using specified format
-</dd>
-<dt><b>time</b></dt>
-<dd>return current time
-</dd>
-</dl>
-<p>
-    The `clock' and `date' functions are now implemented in M-files
-    using these basic functions.
-</li>
-<p>
-<li>Access to additional Unix system calls:
-<dl>
-<dt><b>dup2</b></dt>
-<dd>duplicate a file descriptor
-</dd>
-<dt><b>exec</b></dt>
-<dd>replace current process with a new process
-</dd>
-<dt><b>fcntl</b></dt>
-<dd>control open file descriptors
-</dd>
-<dt><b>fork</b></dt>
-<dd>create a copy of the current process
-</dd>
-<dt><b>getpgrp</b></dt>
-<dd>return the process group id of the current process
-</dd>
-<dt><b>getpid</b></dt>
-<dd>return the process id of the current process
-</dd>
-<dt><b>getppid</b></dt>
-<dd>return the process id of the parent process
-</dd>
-<dt><b>getuid</b></dt>
-<dd>return the real user id of the current process
-</dd>
-<dt><b>getgid</b></dt>
-<dd>return the real group id of the current process
-</dd>
-<dt><b>geteuid</b></dt>
-<dd>return the effective user id of the current process
-</dd>
-<dt><b>getegid</b></dt>
-<dd>return the effective group id of the current process
-</dd>
-<dt><b>pipe</b></dt>
-<dd>create an interprocess channel
-</dd>
-</dl>
-</li>
-<p>
-<li>Other new functions:
-<dl>
-<dt><b>commutation_matrix</b></dt>
-<dd>compute special matrix form
-</dd>
-<dt><b>duplication_matrix</b></dt>
-<dd>compute special matrix form
-</dd>
-<dt><b>common_size.m</b></dt>
-<dd>bring arguments to a common size
-</dd>
-<dt><b>completion_matches</b></dt>
-<dd>perform command completion on string
-</dd>
-<dt><b>tilde_expand</b></dt>
-<dd>perform tilde expansion on string
-</dd>
-<dt><b>meshgrid</b></dt>
-<dd>compatible with Matlab's meshgrid function
-</dd>
-<dt><b>tmpnam</b></dt>
-<dd>replaces octave_tmp_file_name
-</dd>
-<dt><b>atexit</b></dt>
-<dd>register functions to be called when Octave exits
-</dd>
-<dt><b>putenv</b></dt>
-<dd>define an environment variable
-</dd>
-<dt><b>bincoeff</b></dt>
-<dd>compute binomial coefficients
-</dd>
-<dt><b>nextpow2</b></dt>
-<dd>compute the next power of 2 greater than a number
-</dd>
-<dt><b>detrend</b></dt>
-<dd>remove a best fit polynomial from data
-</dd>
-<dt><b>erfinv</b></dt>
-<dd>inverse error function
-</dd>
-<dt><b>shift</b></dt>
-<dd>perform a circular shift on the elements of a matrix
-</dd>
-<dt><b>pow2</b></dt>
-<dd>compute 2 .^ x
-</dd>
-<dt><b>log2</b></dt>
-<dd>compute base 2 logarithms
-</dd>
-<dt><b>diff</b></dt>
-<dd>compute differences of matrix elements
-</dd>
-<dt><b>vech</b></dt>
-<dd>stack columns of a matrix below the diagonal
-</dd>
-<dt><b>vec</b></dt>
-<dd>stack columns of a matrix to form a vector
-</dd>
-<dt><b>xor</b></dt>
-<dd>compute exclusive or
-</dd>
-</dl>
-</li>
-<p>
-<li>Functions for getting info from the password database on Unix systems:
-<dl>
-<dt><b>getpwent</b></dt>
-<dd>read entry from password-file stream, opening if necessary
-</dd>
-<dt><b>getpwuid</b></dt>
-<dd>search for password entry with matching user ID
-</dd>
-<dt><b>getpwnam</b></dt>
-<dd>search for password entry with matching username
-</dd>
-<dt><b>setpwent</b></dt>
-<dd>rewind the password-file stream
-</dd>
-<dt><b>endpwent</b></dt>
-<dd>close the password-file stream
-</dd>
-</dl>
-</li>
-<p>
-<li>Functions for getting info from the group database on Unix systems:
-<dl>
-<dt><b>getgrent</b></dt>
-<dd>read entry from group-file stream, opening if necessary
-</dd>
-<dt><b>getgrgid</b></dt>
-<dd>search for group entry with matching group ID
-</dd>
-<dt><b>getgrnam</b></dt>
-<dd>search for group entry with matching group name
-</dd>
-<dt><b>setgrent</b></dt>
-<dd>rewind the pgroup-file stream
-</dd>
-<dt><b>endgrent</b></dt>
-<dd>close the group-file stream
-</dd>
-</dl>
-</li>
-<p>
-<li>The New function octave_config_info returns a structure containing
-    information about how Octave was configured and compiled.
-</li>
-<p>
-<li>New function getrusage returns a structure containing system
-    resource usage statistics.  The `cputime' function is now defined
-    in an M-file using getrusage.
-</li>
-<p>
-<li>The info reader is now a separate binary that runs as a
-    subprocess.  You still need the info reader distributed with
-    Octave though, because there are some new command-line arguments
-    that are not yet available in the public release of Info.
-</li>
-<p>
-<li>There is a new built-in variable, INFO_PROGRAM, which is used as
-    the name of the info program to run.  Its initial value is
-    $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can
-    be overridden by the environment variable OCTAVE_INFO_PROGRAM, or
-    the command line argument --info-program NAME, or by setting the
-    value of INFO_PROGRAM in a startup script.
-</li>
-<p>
-<li>There is a new built-in variable, EXEC_PATH, which is used as
-    the list of directories to search when executing subprograms.  Its
-    initial value is taken from the environment variable
-    OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be
-    overridden by the command line argument --exec-path PATH, or
-    by setting the value of EXEC_PATH in a startup script.  If the
-    EXEC_PATH begins (ends) with a colon, the directories
-    $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are
-    prepended (appended) to EXEC_PATH (if you don't specify a value
-    for EXEC_PATH explicitly, these special directories are prepended
-    to your PATH).
-</li>
-<p>
-<li>If it is present, Octave will now use an `ls-R' database file to
-    speed up recursive path searching.  Octave looks for a file called
-    ls-R in the directory specified by the environment variable
-    OCTAVE_DB_DIR.  If that is not set but the environment variable
-    OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
-    Otherwise, Octave looks in the directory $datadir/octave (normally
-    /usr/local/lib/octave).
-</li>
-<p>
-<li>New examples directory.
-</li>
-<p>
-<li>There is a new script, mkoctfile, that can be used to create .oct
-    files suitable for dynamic linking.
-</li>
-<p>
-<li>Many more bug fixes.
-</li>
-<p>
-<li>ChangeLogs are now kept in each subdirectory.</li>
-</li>
-</ul>
-
-</body>
-</html>
--- a/WWW/index.html	Fri Jan 22 10:21:33 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title> Octave -- a high-level language for numerical computations </title>
-</head>
-
-<body>
-<h1>Octave</h1>
-
-<p>
-Octave is a high-level language, primarily intended for numerical
-computations.  It provides a convenient command line interface for
-solving linear and nonlinear problems numerically.
-</p>
-<hr>
-
-<h2>News</h2>
-<p>
-Version 2.0.10 was released Friday February 6, 1998.  Most bugs reported
-since the release of version 2.0 have been fixed.
-</p>
-
-<p>
-Version 2.0 was released Tuesday December 10, 1996.  There are many
-new features including:
-<ul>
-<li>dynamic linking support on more systems</li>
-<li>user-defined data types</li>
-<li>many new functions</li>
-<li>lots of bug fixes</li>
-</ul>
-A more complete <a href="NEWS-2.html">list of changes for version 2</a>
-is a available as is an older <a href="NEWS-1.html">list of changes for
-versions up to 1.1.1</a>.
-</p>
-
-<h3>Source and Binaries</h3>
-<p>
-Octave source and binaries are available by anonymous ftp from
-<a href="ftp://ftp.che.wisc.edu/pub/octave">ftp://ftp.che.wisc.edu/pub/octave</a>.
-</p>
-
-<p>
-Additional information about using
-<a href="http://wotan.ikp.physik.th-darmstadt.de/os2/Octave/octave.html">
-Octave on OS/2 systems</a> is available, thanks to the work of
-<a href="mailto:gebhardt@crunch.ikp.physik.th-darmstdt.de">Klaus Gebhardt</a>.
-</p>
-
-<p>
-<a href="http://www.xraylith.wisc.edu/~khan/software/gnu-win32">
-Binaries for Windows NT/95 systems</a> are also available, thanks to
-the work of <a href="mailto:khan@xraylith.wisc.edu">Mumit Khan</a>.
-</p>
-
-<h3>Documentation</h3>
-<p>
-To get started, there is a
-<a href="readme.html">brief introduction</a>, and also the 
-<a href="doc/octave_1.html">preface</a> to the manual.  For more
-detailed information, you can browse the
-<a href="doc/octave_toc.html">complete documentation</a>, which has
-been converted to HTML directly from the Texinfo source using
-texi2html.
-</p>
-
-<p>
-If you still have questions, there is always the
-<a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave-faq)Top">
-FAQ</a> (with answers).
-</p>
-
-<h3>Mailing Lists</h3>
-<p>
-There are three active mailing lists devoted to Octave.  The
-<em>help-octave</em> mailing list is available for questions related
-to using, installing, and porting Octave that are not adequately
-answered by the Octave manual or by the FAQ.  The <em>bug-octave</em>
-list is used for reporting bugs.  the <em>octave-sources</em> list is
-for posting sources and enhancements to Octave.
-A <a href="mailing-lists/index.html">complete archive</a> of postings
-and <a href="mailing-lists/index.html#JOIN">instructions for joining
-the lists</a> is also available.
-</p>
-
-<h3>Contributed Functions</h3>
-<p>
-An archive of contributed functions for Octave is available from
-<a href="http://www.tsc.uvigo.es/GTS/Octave">http://www.tsc.uvigo.es/GTS/Octave</a>.
-</p>
-
-<hr>
-<p>
-<a href="http://jweaton.org">John W. Eaton</a><br>
-<a href="mailto:jwe@octave.orgdd"><i>jwe@octave.org</i></a><br>
-</p>
-
-</body>
-</html>
--- a/WWW/mailing-lists/index.html	Fri Jan 22 10:21:33 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title>Octave Mailing List Archives</title>
-</head>
-
-<body>
-
-<h1>Octave Mailing List Archives</h1>
-<hr>
-
-<h2>help-octave</h2>
-<h3>General discussion about using and installing Octave</h3>
-
-<p>
-<ul>
-<li><a href="help-octave/1997">1997</a>
-<li><a href="help-octave/1996">1996</a>
-<li><a href="help-octave/1995">1995</a>
-<li><a href="help-octave/1994">1994</a>
-<li><a href="help-octave/1993">1993</a>
-<li><a href="help-octave/1992">1992</a>
-</ul>
-</p>
-<hr>
-
-<h2>bug-octave</h2>
-<h3>Bug reports (sometimes fixes are posted to this list)</h3>
-
-<p>
-<ul>
-<li><a href="bug-octave/1997">1997</a>
-<li><a href="bug-octave/1996">1996</a>
-<li><a href="bug-octave/1995">1995</a>
-<li><a href="bug-octave/1994">1994</a>
-<li><a href="bug-octave/1993">1993</a>
-<li><a href="bug-octave/1992">1992</a>
-</ul>
-</p>
-<hr>
-
-<h2>octave-sources</h2>
-<h3>Enhancements contributed by Octave users</h3>
-
-<p>
-<ul>
-<li><a href="octave-sources/1997">1997</a>
-<li><a href="octave-sources/1996">1996</a>
-</ul>
-</p>
-<hr>
-
-<h2><a name="JOIN">How to join the mailing lists</a></h2>
-
-<p>
-If you would like to join the discussion and receive all messages sent
-to these mailing lists, please send a short note to
-help-<b>request</b>@octave.org (to join help-octave) or
-bug-<b>request</b>@octave.org (to join bug-octave), or
-sources-<b>request</b>@octave.org (to join octave-sources).
-</p>
-
-<p>
-<b>Please do NOT send subscription requests directly to the lists
-themselves.</b>
-</p>
-
-<hr>
-<p>
-Back to the <a href="http://www.octave.org">Octave home page</a>.
-</p>
-<hr>
-<p>
-<a href="http://jweaton.org">John W. Eaton</a><br>
-<a href="mailto:jwe@octave.org"><i>jwe@octave.org</i></a><br>
-</p>
-</body>
-</html>
--- a/WWW/readme.html	Fri Jan 22 10:21:33 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-<!doctype html public "-//IETF//DTD HTML Strict//EN">
-<html>
-<head>
-<title> Octave -- a high-level language for numerical computations </title>
-</head>
-
-<h1>A Brief Introduction to Octave</h1>
-
-<ul>
-<li><a href="readme.html#Overview">Overview</a></li>
-<li><a href="readme.html#Language Features">Language Features</a></li>
-<li><a href="readme.html#Distribution Terms">Distribution Terms</a></li>
-<li><a href="readme.html#Availability">Availability</a></li>
-<li><a href="readme.html#Installation and Bugs">Installation and Bugs</a></li>
-<li><a href="readme.html#Documentation">Documentation</a></li>
-<li><a href="readme.html#Implementation">Implementation</a></li>
-</ul>
-<hr>
-
-<h2><a name="Overview">Overview</a></h2>
-<p>
-Octave is a high-level language, primarily intended for numerical
-computations.  It provides a convenient command line interface for
-solving linear and nonlinear problems numerically, and for performing
-other numerical experiments.  It may also be used as a batch-oriented
-language.
-</p>
-
-<h2><a name="Language Features">Language Features</a></h2>
-<p>
-The best way to introduce Octave's language is probably to show a few
-simple examples.
-</p>
-
-<p>
-If you are new to Octave, I recommend that you try these examples to
-begin learning Octave by using it.  Lines marked with
-<tt>octave:13></tt> are lines you type, ending each with a carriage
-return.  Octave will respond with an answer, or by displaying a graph.
-</p>
-
-<h3>Creating a Matrix</h3>
-
-<p>
-To create a new matrix and store it in a variable so that it you can
-refer to it later, type the command
-
-<pre>
-    octave:1> a = [ 1, 1, 2; 3, 5, 8; 13, 21, 34 ]
-</pre>
-
-Octave will respond by printing the matrix in neatly aligned columns.
-Ending a command with a semicolon tells Octave to not print the result
-of a command.  For example
-
-<pre>
-    octave:2> b = rand (3, 2);
-</pre>
-
-will create a 3 row, 2 column matrix with each element set to a random
-value between zero and one.
-</p>
-
-<p>
-To display the value of any variable, simply type the name of the
-variable.  For example, to display the value stored in the matrix
-<tt>b</tt>, type the command
-
-<pre>
-    octave:3> b
-</pre>
-
-<h3>Matrix Arithmetic</h3>
-
-<p>
-Octave has a convenient operator notation for performing matrix
-arithmetic.  For example, to multiply the matrix <tt>a</tt> by a
-scalar value, type the command
-
-<pre>
-    octave:4> 2 * a
-</pre>
-
-<p>
-To multiply the two matrices <tt>a</tt> and <tt>b</tt>, type the
-command
-
-<pre>
-    octave:5> a * b
-</pre>
-
-<p>
-To form the matrix product <tt>transpose (a) * a</tt>, type the command
-
-<pre>
-    octave:6> a' * a
-</pre>
-</p>
-
-<h3>Solving Linear Equations</h3>
-
-<p>
-To solve the set of linear equations <tt>Ax = b</tt> use the left
-division operator, <tt>\</tt>:
-
-<pre>
-    octave:7> a \ b
-</pre>
-
-This is conceptually equivalent to <tt>inv (A) * b</tt>, but avoids
-computing the inverse of a matrix directly.
-</p>
-
-<p>
-If the coefficient matrix is singular, Octave will print a warning
-message and compute a minimum norm solution.
-</p>
-
-<h3>Integrating Differential Equations</h3>
-
-<p>
-Octave has built-in functions for solving nonlinear differential
-equations of the form
-
-<pre>
-    dx
-    -- = f (x, t)
-    dt
-</pre>
-
-with the initial condition
-
-<pre>
-    x(t = t0) = x0
-</pre>
-</p>
-
-<p>
-For Octave to integrate equations of this form, you must first provide a
-definition of the function <tt> f (x, t)</tt>.  This is
-straightforward, and may be accomplished by entering the function body
-directly on the command line.  For example, the following commands
-define the right hand side function for an interesting pair of
-nonlinear differential equations.  Note that while you are entering a
-function, Octave responds with a different prompt, to indicate that it
-is waiting for you to complete your input.
-
-<pre>
-    octave:8> function xdot = f (x, t) 
-    >
-    >  r = 0.25;
-    >  k = 1.4;
-    >  a = 1.5;
-    >  b = 0.16;
-    >  c = 0.9;
-    >  d = 0.8;
-    >
-    >  xdot(1) = r*x(1)*(1 - x(1)/k) - a*x(1)*x(2)/(1 + b*x(1));
-    >  xdot(2) = c*a*x(1)*x(2)/(1 + b*x(1)) - d*x(2);
-    >
-    > endfunction
-</pre>
-</p>
-
-<p>
-Given the initial condition
-
-<pre>
-    x0 = [1; 2];
-</pre>
-
-and the set of output times as a column vector (note that the first
-output time corresponds to the initial condition given above)
-
-<pre>
-    t = linspace (0, 50, 200)';
-</pre>
-
-it is easy to integrate the set of differential equations:
-
-<pre>
-    x = lsode ("f", x0, t);
-</pre>
-
-<p>
-The function <tt>lsode</tt> uses the Livermore Solver for Ordinary
-Differential Equations, described in A. C. Hindmarsh, <em>ODEPACK, a
-Systematized Collection of ODE Solvers</em>, in: Scientific Computing,
-R. S.  Stepleman et al. (Eds.), North-Holland, Amsterdam, 1983, pages
-55-64.
-</p>
-
-<h3>Producing Graphical Output</h3>
-
-<p>
-To display the solution of the previous example graphically, use the
-command
-
-<pre>
-    plot (t, x)
-</pre>
-</p>
-
-<p>
-If you are using the X Window System, Octave will automatically create
-a separate window to display the plot.  If you are using a terminal that
-supports some other graphics commands, you will need to tell Octave what
-kind of terminal you have.  Type the command
-</p>
-
-<pre>
-    gset term
-</pre>
-
-to see a list of the supported terminal types.  Octave uses
-<tt>gnuplot</tt> to display graphics, and can display graphics on any
-terminal that is supported by <tt>gnuplot</tt>.
-
-<p>
-To capture the output of the plot command in a file rather than sending
-the output directly to your terminal, you can use a set of commands like
-this
-
-<pre>
-    gset term postscript
-    gset output "foo.ps"
-    replot
-</pre>
-
-This will work for other types of output devices as well.  Octave's
-<tt>gset</tt> command is really just piped to the <tt>gnuplot</tt>
-subprocess, so that once you have a plot on the screen that you like,
-you should be able to do something like this to create an output file
-suitable for your graphics printer.
-</p>
-
-<p>
-Or, you can eliminate the intermediate file by using commands like this
-
-<pre>
-    gset term postscript
-    gset output "|lpr -Pname_of_your_graphics_printer"
-    replot
-</pre>
-
-<h3>Editing What You Have Typed</h3>
-
-<p>
-At the Octave prompt, you can recall, edit, and reissue previous
-commands using Emacs- or vi-style editing commands.  The default
-keybindings use Emacs-style commands.
-</p>
-
-<h3>Getting Help</h3>
-
-<p>
-Octave has an extensive help facility.  The same documentation that is
-available in printed form is also available from the Octave prompt,
-because both forms of the documentation are created from the same input
-file.
-</p>
-
-<p>
-In order to get good help you first need to know the name of the command
-that you want to use.  This name of the function may not always be
-obvious, but a good place to start is to just type <tt>help</tt>.
-This will show you all the operators, reserved words, functions,
-built-in variables, and function files.  You can then get more
-help on anything that is listed by simply including the name as an
-argument to help.  For example,
-
-<pre>
-    help plot
-</pre>
-
-will display the help text for the <tt>plot</tt> function.
-</p>
-
-<p>
-The complete text of the manual is availabe from Octave's command line
-using the command <tt>help -i</tt>.  Because it is written in Texinfo,
-it is also possible to put
-<a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)">the manual
-on the WWW</a>.
-</p>
-
-<h2><a name="Distribution Terms">Distribution Terms</a></h2>
-<p>
-Octave is free software; you can redistribute it and/or modify it
-under the terms of the
-<a href="http://www.che.wisc.edu/cgi-bin/info2www?(octave)Copying">GNU
-General Public License</a> as published by the Free Software
-Foundation; either version 3 of the License, or (at your option) any
-later version.
-</p>
-
-<p>
-Octave is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE.  See the file COPYING for more
-details.
-</p>
-
-<h2><a name="Availability">Availability</a></h2>
-<p>
-The latest released version of Octave is always available via
-anonymous ftp from
-<a href="ftp://ftp.che.wisc.edu/pub/octave">ftp://ftp.che.wisc.edu/pub/octave</a>.
-Complete source and binaries for several popular systems are available.
-</p>
-
-<h2><a name="Installation and Bugs">Installation and Bugs</a></h2>
-<p>
-Octave requires approximately 125MB of disk storage to unpack and
-compile from source (significantly less if you don't compile with
-debugging symbols or create shared libraries).  Once installed, Octave
-requires approximately 65MB of disk space (again, considerably less if
-you don't build shared libraries or the binaries and libraries do not
-include debugging symbols).
-</p>
-
-<p>
-In order to build Octave, you will need a current version of g++,
-libstdc++, and GNU make.
-</p>
-
-<p>
-<b>You must have GNU Make to compile Octave</b>.  Octave's Makefiles
-use features of GNU Make that are not present in other versions of
-make. GNU Make is very portable and easy to install.
-</p>
-
-<p>
-See the notes in the files INSTALL and INSTALL.OCTAVE for more
-specific installation instructions, including directions for
-installing Octave from a binary distribution.
-</p>
-
-<p>
-The file BUGS contains a recommended procedure for reporting bugs, as
-well as a list of known problems and possible fixes.
-</p>
-
-<h2><a name="Documentation">Documentation</a></h2>
-
-<p>
-Octave's manual has been revised for version 2.0, but it is lagging a
-bit behind the development of the software.  In particular, there is
-currently no complete documentation of the C++ class libraries or the
-support for dynamic linking and user-defined data types.  If you
-notice ommissions or inconsistencies, please report them as bugs to
-bug@@octave.org.  Specific suggestions for ways to
-improve Octave and its documentation are always welcome.
-</p>
-
-<h2><a name="Implementation">Implementation</a></h2>
-<p>
-Octave is being developed with the Free Software Foundation's make,
-bison (a replacement for YACC), flex (a replacement for lex), gcc/g++,
-and libstdc++ on an Intel Pentium II system running Linux/GNU.  It
-should be possible to install it on any machine that runs GCC/G++.  It
-may also be possible to install it using other implementations of
-these tools, but it will most certainly require much more work.  Do
-yourself a favor and get the GNU development tools, either via
-anonymous ftp from ftp.gnu.org or by writing the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301, USA.
-</p>
-
-<p>
-The underlying numerical solvers are currently standard Fortran ones
-like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
-of C++ classes (see the files in the libcruft and liboctave
-subdirectories).  If possible, the Fortran subroutines are compiled
-with the system's Fortran compiler, and called directly from the C++
-functions.  If that's not possible, they are translated with f2c and
-compiled with a C compiler.  Better performance is usually achieved if
-the intermediate translation to C is avoided.
-</p>
-
-<p>
-The library of C++ classes may also be useful by itself.
-</p>
-
-<hr>
-<p>
-Back to the <a href="http://www.che.wisc.edu/octave">Octave home page</a>.
-</p>
-<hr>
-<p>
-<a href="http://jweaton.org">John W. Eaton</a><br>
-<a href="mailto:jwe@octave.org"><i>jwe@octave.org</i></a><br>
-</p>
-</body>
-</html>
--- a/doc/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/doc/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 2009-10-11  Rik <octave@nomad.inbox5.com>
 
 	* intepreter/Makefile.in: Fix broken command to create octave.dvi
--- a/libcruft/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/libcruft/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 	2009-09-18  Jaroslav Hajek  <highegg@gmail.com>
 
 	Version 3.2.3 released.
--- a/liboctave/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/liboctave/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
 
 	* Makefile.in: Add PTHREAD_CFLAGS to LINK_DEPS.
--- a/scripts/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/scripts/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 2009-11-18  Ben Abbott <bpabbott@mac.com>
 
 	* plot/orient.m: Flip papersize and paperposition when orientation
--- a/src/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/src/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 2009-10-15  Jaroslav Hajek  <highegg@gmail.com>
 
 	* variables.cc (extract_function): Pass 0 to eval_string to avoid
--- a/src/version.h	Fri Jan 22 10:21:33 2010 +0100
+++ b/src/version.h	Fri Jan 22 12:43:12 2010 +0100
@@ -25,11 +25,11 @@
 #if !defined (octave_version_h)
 #define octave_version_h 1
 
-#define OCTAVE_VERSION "3.2.3"
+#define OCTAVE_VERSION "3.2.4"
 
 #define OCTAVE_API_VERSION "api-v37"
 
-#define OCTAVE_RELEASE_DATE "2009-09-18"
+#define OCTAVE_RELEASE_DATE "2010-01-22"
 
 #define OCTAVE_COPYRIGHT "Copyright (C) 2009 John W. Eaton and others."
 
--- a/test/ChangeLog	Fri Jan 22 10:21:33 2010 +0100
+++ b/test/ChangeLog	Fri Jan 22 12:43:12 2010 +0100
@@ -1,3 +1,7 @@
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	Version 3.2.4 released.
+
 	2009-09-18  Jaroslav Hajek  <highegg@gmail.com>
 
 	Version 3.2.3 released.