Octave version 0.80 released

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Octave version 0.80 released

John Eaton-4
Octave version 0.80 is now available for ftp from ftp.che.utexas.edu
in the directory /pub/octave.  Gzipped tar files are available, as are
diffs relative to version 0.79.

Binaries for DECstation, SPARCstation, and IBM RS/6000 systems are
also available.

Binaries for other systems will be made available as time permits, or
as others make them available to us.  If you would like help out by
making binaries available for other systems, please contact
[hidden email].

For version 0.80, you must have the GNU C++ compiler (gcc) version
2.5.6 or later to compile Octave.

Summary of changes for version 0.80:

  * 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
    [hidden email].

  * 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 builtin 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 ());

    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 ([hidden email]) and
    the Department of Probability Theory and Statistics TU Wien,

     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 <[hidden email]> 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.

John W. Eaton      | Among other things, we have added the missing semicolon.
[hidden email] |                   -- Jim Blandy, announcing Emacs 19.15.