From help-octave-request at che dot utexas dot edu Wed Jan 19 00:59:51 1994 Subject: Octave version 0.80 released From: John Eaton To: help-octave cc: jbraw, swinnea Date: Wed, 19 Jan 94 00:53:09 CST 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 bug-octave at che dot utexas dot edu dot 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 bug-octave at che dot utexas dot edu dot * 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 ()); 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 at neuro dot tuwien dot ac dot 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 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. jwe at che dot utexas dot edu| | -- Jim Blandy, announcing Emacs 19.15.