home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 February / CMCD0205.ISO / Linux / octave-2.0.16.92.tar.tar / octave-2.0.16.92.tar.tar / octave-2.0.16.92 / NEWS < prev    next >
Lisp/Scheme  |  2000-01-10  |  43KB  |  1,002 lines

  1. Summary of changes for version 2.0.15:
  2. -------------------------------------
  3.  
  4.   This is primarily a bug-fixing release.
  5.  
  6.   * If you are using GNU Emacs 19.34 or earlier, you will need to add
  7.     the following code to your ~/.emacs file in order to use Emacs
  8.     Octave mode:
  9.  
  10.       ;; Set up the custom library.
  11.       ;; taken from http://www.dina.kvl.dk/~abraham/custom/
  12.       (eval-and-compile
  13.     (condition-case ()
  14.         (require 'custom)
  15.       (error nil))
  16.     (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
  17.         nil ;; We've got what we needed
  18.       ;; We have the old custom-library, hack around it!
  19.       (defmacro defgroup (&rest args)
  20.         nil)
  21.       (defmacro defcustom (var value doc &rest args) 
  22.         (` (defvar (, var) (, value) (, doc))))))
  23.  
  24.  
  25. Summary of changes for version 2.0.14:
  26. -------------------------------------
  27.  
  28.   This release fixes numerous bugs and adds the following new features:
  29.  
  30.   * argv is now padded with blanks instead of ASCII NUL.
  31.  
  32.   * New functions:
  33.  
  34.       besselh  -- Hankel functions of the first and second kind
  35.       airy     -- Airy functions of the first and second kind, and
  36.                   their derivatives
  37.  
  38.   * The Bessel functions now accept complex values for the argument
  39.     and any real value for the order.
  40.  
  41.   * The value of LOADPATH set by the environment variable
  42.     OCTAVE_PATH, the -p or --path command line options, or on the
  43.     command line is no longer modified to include the default path.
  44.     Instead it is left as specified.  Its default value is now ":",
  45.     which tells Octave to search the default path, and the new
  46.     built-in variable DEFAULT_LOADPATH contains the default list of
  47.     directories to search.  
  48.  
  49.   * The function file_in_path no longer does any special processing of
  50.     its PATH argument.  To search LOADPATH for files, it is now
  51.     generally better to use the new function file_in_loadpath.
  52.  
  53.   * If fread is given a skip parameter, the skip is performed after
  54.     the read instead of before (for compatibility with Matlab).
  55.  
  56.   * The new built-in variable `crash_dumps_octave_core' controls
  57.     whether Octave writes user variables to the file `octave-core'
  58.     when it crashes or is killed by a signal.  The default value is 1
  59.     (0 if you use --traditional).
  60.  
  61.   * If LOADPATH contains a doubled colon, the default path is inserted
  62.     in its place.  This is similar to the substitution that also takes
  63.     place for leading or trailing colons in the LOADPATH.
  64.  
  65.   * Loops of the form `for i = STRING ... endfor' are now allowed.
  66.  
  67.   * It is now possible to set the iteration limit for lsode using
  68.     lsode_options ("step limit", N).
  69.  
  70.   * New functions:
  71.  
  72.       is_complex  -- tell whether a value is complex
  73.       isnumeric   -- tell whether a value is a numeric object
  74.       isfinite    -- find finite elements of a matrix object
  75.       rehash      -- re-initialize the cache of directories in LOADPATH
  76.       graw        -- send a string to the gnuplot subprocess
  77.  
  78.   * New functions from Kurt Hornik's Octave-ci package:
  79.  
  80.     In finance (new directory):
  81.  
  82.       fv    -- future value of an investment
  83.       fvl   -- future value of an initial lump sum investment
  84.       irr   -- internal rate of return of an investment
  85.       nper  -- number of payments needed for amortizing a loan
  86.       npv   -- net present value of a series of payments
  87.       pmt   -- amount of periodic payment needed to amortize a loan
  88.       pv    -- present value of an investment
  89.       pvl   -- present value of an investment that pays off at the end
  90.       rate  -- rate of return of an investment
  91.       vol   -- volatility of financial time series data
  92.  
  93.     In linear-algebra:
  94.  
  95.       dmult -- rescale the rows of a matrix
  96.  
  97.     In signal:
  98.  
  99.       arch_fit       -- fit an ARCH regression model
  100.       arch_rnd       -- simulate an ARCH process
  101.       arch_test      -- test for conditional heteroscedascity
  102.       arma_rnd       -- simulate an ARMA process
  103.       autocor        -- compute autocorrelations
  104.       autocov        -- compute autocovariances
  105.       autoreg_matrix -- design matrix for autoregressions
  106.       bartlett       -- coefficients of the Bartlett (triangular) window
  107.       blackman       -- coefficients of the Blackman window
  108.       diffpara       -- estimate the fractional differencing parameter
  109.       durbinlevinson -- perform one step of the Durbin-Levinson algorithm
  110.       fractdiff      -- compute fractional differences
  111.       hamming        -- coefficients of the Hamming window
  112.       hanning        -- coefficients of the Hanning window
  113.       hurst          -- estimate the Hurst parameter
  114.       periodogram    -- compute the periodogram
  115.       rectangle_lw   -- rectangular lag window
  116.       rectangle_sw   -- rectangular spectral window
  117.       sinetone       -- compute a sine tone
  118.       sinewave       -- compute a sine wave
  119.       spectral_adf   -- spectral density estimation
  120.       spectral_xdf   -- spectral density estimation
  121.       spencer        -- apply Spencer's 15-point MA filter
  122.       stft           -- short-term Fourier transform
  123.       synthesis      -- recover a signal from its short-term Fourier transform
  124.       triangle_lw    -- triangular lag window
  125.       triangle_sw    -- triangular spectral window
  126.       yulewalker     -- fit AR model by Yule-Walker method
  127.  
  128.     In statistics/base (new directory):
  129.  
  130.       center     -- center by subtracting means
  131.       cloglog    -- complementary log-log function
  132.       cor        -- compute correlations
  133.       cov        -- compute covariances
  134.       cut        -- cut data into intervals
  135.       iqr        -- interquartile range
  136.       kendall    -- kendall's rank correlation tau
  137.       logit      -- logit transformation
  138.       mean       -- compute arithmetic, geometric, and harmonic mean
  139.       meansq     -- compute mean square
  140.       moment     -- compute moments
  141.       ppplot     -- perform a PP-plot (probability plot)
  142.       probit     -- probit transformation
  143.       qqplot     -- perform a QQ-plot (quantile plot)
  144.       range      -- compute range
  145.       ranks      -- compute ranks
  146.       run_count  -- count upward runs
  147.       spearman   -- spearman's rank correlation rho
  148.       statistics -- compute basic statistics
  149.       studentize -- subtract mean and divide by standard deviation
  150.       table      -- cross tabulation
  151.       values     -- extract unique elements
  152.       var        -- compute variance
  153.  
  154.     In statistics/distributions (new directory):
  155.  
  156.       beta_cdf           -- CDF of the Beta distribution
  157.       beta_inv           -- Quantile function of the Beta distribution
  158.       beta_pdf           -- PDF of the Beta distribution
  159.       beta_rnd           -- Random deviates from the Beta distribution
  160.  
  161.       binomial_cdf       -- CDF of the binomial distribution
  162.       binomial_inv       -- Quantile function of the binomial distribution
  163.       binomial_pdf       -- PDF of the binomial distribution
  164.       binomial_rnd       -- Random deviates from the binomial distribution
  165.  
  166.       cauchy_cdf         -- CDF of the Cauchy distribution
  167.       cauchy_inv         -- Quantile function of the Cauchy distribution
  168.       cauchy_pdf         -- PDF of the Cauchy distribution
  169.       cauchy_rnd         -- Random deviates from the Cauchy distribution
  170.  
  171.       chisquare_cdf      -- CDF of the chi-square distribution
  172.       chisquare_inv      -- Quantile function of the chi-square distribution
  173.       chisquare_pdf      -- PDF of the chi-sqaure distribution
  174.       chisquare_rnd      -- Random deviates from the chi-square distribution
  175.  
  176.       discrete_cdf       -- CDF of a discrete distribution
  177.       discrete_inv       -- Quantile function of a discrete distribution
  178.       discrete_pdf       -- PDF of a discrete distribution
  179.       discrete_rnd       -- Random deviates from a discrete distribution
  180.  
  181.       empirical_cdf      -- CDF of the empirical distribution
  182.       empirical_inv      -- Quantile function of the empirical distribution
  183.       empirical_pdf      -- PDF of the empirical distribution
  184.       empirical_rnd      -- Bootstrap samples from the empirical distribution
  185.  
  186.       exponential_cdf    -- CDF of the exponential distribution
  187.       exponential_inv    -- Quantile function of the exponential distribution
  188.       exponential_pdf    -- PDF of the exponential distribution
  189.       exponential_rnd    -- Random deviates from the exponential distribution
  190.  
  191.       f_cdf              -- CDF of the F distribution
  192.       f_inv              -- Quantile function of the F distribution
  193.       f_pdf              -- PDF of the F distribution
  194.       f_rnd              -- Random deviates from the F distribution
  195.  
  196.       gamma_cdf          -- CDF of the Gamma distribution
  197.       gamma_inv          -- Quantile function of the Gamma distribution
  198.       gamma_pdf          -- PDF of the Gamma distribution
  199.       gamma_rnd          -- Random deviates from the Gamma distribution
  200.  
  201.       geometric_cdf      -- CDF of the geometric distribution
  202.       geometric_inv      -- Quantile function of the geometric distribution
  203.       geometric_pdf      -- PDF of the geometric distribution
  204.       geometric_rnd      -- Random deviates from the geometric distribution
  205.  
  206.       hypergeometric_cdf -- CDF of the hypergeometric distribution
  207.       hypergeometric_inv -- Random deviates from hypergeometric distribution
  208.       hypergeometric_pdf -- PDF of the hypergeometric distribution
  209.       hypergeometric_rnd -- Random deviates from hypergeometric distribution
  210.  
  211.       kolmogorov_smirnov_cdf -- CDF of the Kolmogorov-Smirnov distribution
  212.  
  213.       laplace_cdf        -- CDF of the Laplace distribution
  214.       laplace_inv        -- Quantile function of the Laplace distribution
  215.       laplace_pdf        -- PDF of the Laplace distribution
  216.       laplace_rnd        -- Random deviates from the Laplace distribution
  217.  
  218.       logistic_cdf       -- CDF of the logistic distribution
  219.       logistic_inv       -- Quantile function of the logistic distribution
  220.       logistic_pdf       -- PDF of the logistic distribution
  221.       logistic_rnd       -- Random deviates from the logistic distribution
  222.  
  223.       lognormal_cdf      -- CDF of the log normal distribution
  224.       lognormal_inv      -- Quantile function of the log normal distribution
  225.       lognormal_pdf      -- PDF of the log normal distribution
  226.       lognormal_rnd      -- Random deviates from the log normal distribution
  227.  
  228.       normal_cdf         -- CDF of the normal distribution
  229.       normal_inv         -- Quantile function of the normal distribution
  230.       normal_pdf         -- PDF of the normal distribution
  231.       normal_rnd         -- Random deviates from the normal distribution
  232.  
  233.       pascal_cdf         -- CDF of the Pascal (negative binomial) distribution
  234.       pascal_inv         -- Quantile function of the Pascal distribution
  235.       pascal_pdf         -- PDF of the Pascal (negative binomial) distribution
  236.       pascal_rnd         -- Random deviates from the Pascal distribution
  237.  
  238.       poisson_cdf        -- CDF of the Poisson distribution
  239.       poisson_inv        -- Quantile function of the Poisson distribution
  240.       poisson_pdf        -- PDF of the Poisson distribution
  241.       poisson_rnd        -- Random deviates from the Poisson distribution
  242.  
  243.       stdnormal_cdf      -- CDF of the standard normal distribution
  244.       stdnormal_inv      -- Quantile function of standard normal distribution
  245.       stdnormal_pdf      -- PDF of the standard normal distribution
  246.       stdnormal_rnd      -- Random deviates from standard normal distribution
  247.  
  248.       t_cdf              -- CDF of the t distribution
  249.       t_inv              -- Quantile function of the t distribution
  250.       t_pdf              -- PDF of the t distribution
  251.       t_rnd              -- Random deviates from the t distribution
  252.  
  253.       uniform_cdf        -- CDF of the uniform distribution
  254.       uniform_inv        -- Quantile function of the uniform distribution
  255.       uniform_pdf        -- PDF of the uniform distribution
  256.       uniform_rnd        -- Random deviates from the uniform distribution
  257.  
  258.       weibull_cdf        -- CDF of the Weibull distribution
  259.       weibull_inv        -- Quantile function of the Weibull distribution
  260.       weibull_pdf        -- PDF of the Weibull distribution
  261.       weibull_rnd        -- Random deviates from the Weibull distribution
  262.  
  263.       wiener_rnd         -- Simulate a Wiener process
  264.  
  265.     In statistics/models (new directory):
  266.  
  267.       logistic_regression             -- ordinal logistic regression
  268.       logistic_regression_derivatives -- derivates of log-likelihood
  269.                                          in logistic regression
  270.       logistic_regression_likelihood  -- likelihood in logistic regression
  271.  
  272.     In statistics/tests (new directory):
  273.  
  274.       anova                       -- one-way analysis of variance
  275.       bartlett_test               -- bartlett test for homogeneity of variances
  276.       chisquare_test_homogeneity  -- chi-square test for homogeneity
  277.       chisquare_test_independence -- chi-square test for independence
  278.       cor_test                    -- test for zero correlation
  279.       f_test_regression           -- test linear hypotheses in linear
  280.                                      regression model
  281.       hotelling_test              -- test for mean of a multivariate normal
  282.       hotelling_test_2            -- compare means of two multivariate normals
  283.       kolmogorov_smirnov_test     -- one-sample Kolmogorov-Smirnov test
  284.       kolmogorov_smirnov_test_2   -- two-sample Kolmogorov-Smirnov test
  285.       kruskal_wallis_test         -- kruskal-Wallis test
  286.       manova                      -- one-way multivariate analysis of variance
  287.       mcnemar_test                -- mcnemar's test for symmetry
  288.       prop_test_2                 -- compare two proportions
  289.       run_test                    -- run test for independence
  290.       sign_test                   -- sign test
  291.       t_test                      -- student's one-sample t test 
  292.       t_test_2                    -- student's two-sample t test
  293.       t_test_regression           -- test one linear hypothesis in linear
  294.                                      regression model
  295.       u_test                      -- mann-Whitney U-test
  296.       var_test                    -- f test to compare two variances
  297.       welch_test                  -- welch two-sample t test
  298.       wilcoxon_test               -- wilcoxon signed-rank test
  299.       z_test                      -- test for mean of a normal sample with
  300.                                      known variance
  301.       z_test_2                    -- compare means of two normal samples with
  302.                                      known variances
  303.  
  304.   * The save command now accepts the option -append to save the
  305.     variables at the end of the file, leaving the existing contents.
  306.  
  307.   * New command-line option --no-history (also available using the
  308.     single character option -H) inhibits saving command history.
  309.  
  310.   * The mkoctfile script now accepts -DDEF options and passes them on
  311.     to the C and C++ compilers.
  312.  
  313. Summary of changes for version 2.0.13:
  314. -------------------------------------
  315.  
  316.   This is a bug-fixing release.  There are no new user-visible features.
  317.  
  318. Summary of changes for version 2.0.12:
  319. -------------------------------------
  320.  
  321.   * Tilde expansion is once again performed on the directories listed
  322.     in the LOADPATH variable.
  323.  
  324.   * gplot now supports the `axes' qualifier that is new with gnuplot
  325.     3.6beta.
  326.  
  327.   * Timestamps on .m and .oct files are now only checked if a prompt
  328.     has been printed since the last timestamp check.
  329.  
  330.   * Octave now prints a warning if a .m or .oct file has a time stamp
  331.     in the future.
  332.  
  333.   * For matrices, x(:) now works no matter what the value of
  334.     do_fortran_indexing is.
  335.  
  336.   * New keywords __FILE__ and __LINE__ expand to the name of the file
  337.     that is being read and the current input line number, respectively.
  338.  
  339.   * The GNU Info reader is no longer distributed with Octave because
  340.     current releases of GNU Info now support all the features needed
  341.     by Octave.  If your copy of GNU Info doesn't support the
  342.     --index-search option, you should install a newer version of GNU
  343.     Info, which is distributed as part of the GNU Texinfo package.
  344.  
  345.   * Running `make check' should work now before you run `make install', 
  346.     even if you build a copy of Octave that depends on shared versions
  347.     of the Octave libraries.
  348.  
  349.   * Octave now uses kpathsea 3.2.
  350.  
  351.   * The new built-in variable `kluge_procbuf_delay' specifies the number
  352.     of microseconds to delay in the parent process after forking.  By
  353.     default on gnu-win32 systems, it's set to 500000 (1/2 second).  On
  354.     other systems, the default value is 0.  Delaying for a short time
  355.     in the parent after forking seems to avoid problems in which
  356.     communicating with subprocesses via pipes would sometimes cause
  357.     Octave to hang.  I doubt that the delay is really the right
  358.     solution.  If anyone has a better idea, I'd love to hear it.
  359.  
  360. Summary of changes for version 2.0.11:
  361. -------------------------------------
  362.  
  363.   * There are two new built-in variables that control how global
  364.     variables are initialized.  If `initialize_global_variables' is
  365.     nonzero, global variables are initialized to the value of the
  366.     variable `default_global_variable_value'.  The default value of
  367.     `initialize_global_variables' is 0 (1 if you use --traditional)
  368.     and `default_global_variable_value' is undefined (the empty matrix
  369.     if you use --traditional).  The default settings are compatible
  370.     with versions of Octave before 2.0.10.
  371.  
  372. Summary of changes for version 2.0.10:
  373. -------------------------------------
  374.  
  375.   * The built-in variable `PWD' has been removed.  If you need to get
  376.     the value of the current working directory, use the pwd() function
  377.     instead.
  378.  
  379.   * For compatibility with Matlab, Octave's lyap function now solves
  380.  
  381.       A*X + X*A' + C = 0
  382.  
  383.     instead of
  384.  
  385.       A'*X + X*A + C = 0
  386.  
  387.     To try to avoid confusion for people who are used to the way
  388.     Octave behaved in previous versions, a warning is printed the
  389.     first time lyap is called in a given session.  To completely
  390.     disable the warning, simply add
  391.  
  392.       global __disable_lyap_interface_change_warning__;
  393.  
  394.     to your ~/.octaverc file.  The warning will eventually disappear
  395.     for good in some future version of Octave.
  396.  
  397.   * New built-in functions for computing Bessel functions:
  398.     besseli, besselj, besselk, and bessely.
  399.  
  400.   * The gammai and betai functions are now implemented as built-in
  401.     functions rather than function files.
  402.  
  403.   * The new built-in variable `implicit_num_to_str_ok' controls
  404.     whether Octave converts expressions like `[97, 98, 99, "123"]' to
  405.     strings.  The default value is 0 unless you use --traditional.
  406.  
  407.   * The new built-in variable `fixed_point_format' controls whether
  408.     Octave uses a scaled fixed-point format for displaying matrices.
  409.     The default value is 0 unless you use --traditional.
  410.  
  411.   * The function sumsq now computes sum (x .* conj (x)) for complex values.
  412.  
  413.   * Dynamically linked functions can be cleared.
  414.  
  415.   * If a .oct file has a time stamp more recent than the time that it
  416.     was loaded, it is automatically reloaded.  Reloading a .oct file
  417.     may cause several functions to be cleared automatically.  By
  418.     default, a warning is printed that lists the names of the
  419.     functions that will be cleared.  You can suppress the message by
  420.     setting the new built-in variable `warn_reload_forces_clear' to 0.
  421.  
  422.   * Global variables are now initialized to the empty matrix, for
  423.     compatibility with Matlab.
  424.  
  425.   * Explicit initialization of global variables only happens once.
  426.     For example, after the following statements are evaluated, g still
  427.     has the value 1.
  428.  
  429.       global g = 1
  430.       global g = 2
  431.  
  432.     This is useful for initializing global variables that are used to
  433.     maintain state information that is shared among several functions.
  434.  
  435.   * The new built-in variable max_recursion_depth allows you to
  436.     prevent Octave from attempting infinite recursion.  The default
  437.     value is 256.
  438.  
  439.   * Octave now uses readline version 2.1 and kpathsea 3.0.
  440.  
  441.   * The libreadline and libkpathsea libraries are no longer installed.
  442.  
  443.   * The libcruft, liboctave, and liboctinterp libraries are now
  444.     installed in $libdir/octave instead of just $libdir.
  445.  
  446.   * It's no longer necessary to have libg++, but you do need to have
  447.     the GNU implementation of libstdc++.  If you are using gcc 2.7.2,
  448.     libstdc++ is distributed as part of libg++ 2.7.2.  For later
  449.     versions, libstdc++ is distributed separately.  For egcs,
  450.     libstdc++ is included with the compiler distribution.
  451.  
  452. Summary of changes for version 2.0.9:
  453. ------------------------------------
  454.  
  455.   This is a bug-fixing release, but there is one new user-visible
  456.   feature:
  457.  
  458.   * It is now possible to specify a label for lines in the plot key
  459.     when using the plot function.  For example,
  460.  
  461.       plot (x, y, "-*;sin(x);")
  462.  
  463.     plots y vs. x using the linespoints style and sets the title of
  464.     the line in the key to be `sin(x)'
  465.  
  466. Summary of changes for version 2.0.8:
  467. ------------------------------------
  468.  
  469.   This is a bug-fixing release.  There are only a few new user-visible
  470.   features.
  471.  
  472.   * If the argument to eig() is symmetric, Octave uses the specialized
  473.     Lapack subroutine for symmetric matrices for a significant
  474.     increase in performance.
  475.  
  476.   * It is now possible to use the mkoctfile script to create .oct
  477.     files from multiple source and object files.
  478.  
  479. Summary of changes for version 2.0.7:
  480. ------------------------------------
  481.  
  482.   This is a bug-fixing release.  There are no new user-visible features.
  483.  
  484. Summary of changes for version 2.0.6:
  485. ------------------------------------
  486.  
  487.   This is primarily a bug-fixing release.  There are only a few new
  488.   user-visilbe features.
  489.  
  490.   * The new built-in variable default_eval_print_flag controls whether
  491.     Octave prints the results of commands executed by eval() that do
  492.     not end with semicolons.  The default is 1.
  493.  
  494.   * The new built-in constant OCTAVE_HOME specifies the top-level
  495.     directory where Octave is installed.
  496.  
  497.   * Octave no longer includes functions to work with NPSOL or QPSOL,
  498.     because they are not free software.
  499.  
  500. Summary of changes for version 2.0.5:
  501. ------------------------------------
  502.  
  503.   * A `switch' statement is now available.  See the Statements chapter
  504.     in the manual for details.
  505.  
  506.   * Commands like ls, save, and cd may now also be used as formal
  507.     parameters for functions.
  508.  
  509.   * More tests.
  510.  
  511. Summary of changes for version 2.0.4:
  512. ------------------------------------
  513.  
  514.   * It is now possible to use commands like ls, save, and cd as simple
  515.     variable names.  They still cannot be used as formal parameters
  516.     for functions, or as the names of structure variables.  Failed
  517.     assignments leave them undefined (you can recover the orginal
  518.     function definition using clear).
  519.  
  520.   * Is is now possible to invoke commands like ls, save, and cd as
  521.     normal functions (for example, load ("foo", "x", "y", "z")).
  522.  
  523. Summary of changes for version 2.0.3:
  524. ------------------------------------
  525.  
  526.   * The manual has been completely revised and now corresponds much
  527.     more closely to the features of the current version.
  528.  
  529.   * The return value for assignment expressions is now the RHS since
  530.     that is more consistent with the way other programming languages
  531.     work.  However, Octave still prints the entire LHS value so that
  532.  
  533.       x = zeros (1, 2);
  534.       x(2) = 1
  535.  
  536.     still prints
  537.  
  538.       x =
  539.  
  540.         0  1
  541.  
  542.     but an assignment like
  543.  
  544.       z = x(2) = 1
  545.  
  546.     sets z to 1 (not [ 0, 1 ] as in previous versions of Octave).
  547.  
  548.   * It is now much easier to make binary distributions.  See the
  549.     Binary Distributions section of the manual for more details.
  550.  
  551. Summary of changes for version 2.0.2:
  552. ------------------------------------
  553.  
  554.   * Octave now stops executing commands from a script file if an error
  555.     is encountered.
  556.  
  557.   * The return, and break commands now cause Octave to quit executing
  558.     commands from script files.  When used in invalid contexts, the
  559.     break, continue, and return commands are now simply ignored
  560.     instead of producing parse errors.
  561.  
  562.   * size ("") is now [0, 0].
  563.  
  564.   * New functions:
  565.  
  566.       sleep   -- pause execution for a specified number of seconds
  567.       usleep  -- pause execution for a specified number of microseconds
  568.  
  569. Summary of changes for version 2.0:
  570. ----------------------------------
  571.  
  572.   * The set and show commands for setting and displaying gnuplot
  573.     parameters have been replaced by gset and gshow.  This change will
  574.     probably break lots of things, but it is necessary to allow for
  575.     compatibility with the Matlab graphics and GUI commands in a
  576.     future version of Octave.  (For now, the old set and show commands
  577.     do work, but they print an annoying warning message to try to get
  578.     people to switch to using gset.)
  579.  
  580.   * Octave has been mostly ported to Windows NT and Windows 95 using
  581.     the beta 17 release of the Cygnus GNU-WIN32 tools.  Not everything
  582.     works, but it is usable.  See the file README.WINDOWS for more
  583.     information.
  584.  
  585.   * Dynamic linking works on more systems using dlopen() and friends
  586.     (most modern Unix systems) or shl_load() and friends (HP/UX
  587.     systems).  A simple example is provided in examples/hello.cc.
  588.     For this feature to work, you must configure Octave with
  589.     --enable-shared.  You may also need to have a shared-library
  590.     version of libg++ and libstdc++.
  591.  
  592.   * New data types can be added to Octave by writing a C++ class.  On
  593.     systems that support dynamic linking, new data types can be added
  594.     to an already running Octave binary.  A simple example appears in
  595.     the file examples/make_int.cc.  Other examples are the standard
  596.     Octave data types defined in the files src/ov*.{h,cc} and
  597.     src/op-*.cc.
  598.  
  599.   * The configure option --enable-bounds-check turns on bounds
  600.     checking on element references for Octave's internal array and
  601.     matrix classes.  It's enabled by default.  To disable this
  602.     feature, configure Octave with --disable-bounds-check.
  603.  
  604.   * The C-style I/O functions (fopen, fprintf, etc.) have been
  605.     rewritten to be more compatible with Matlab.  The fputs function
  606.     has also been added.  Usage of the *printf functions that was
  607.     allowed in previous versions of Octave should still work.
  608.     However, there is no way to make the new versions of the *scanf
  609.     functions compatible with Matlab *and* previous versions of
  610.     Octave.  An optional argument to the *scanf functions is now
  611.     available to make them behave in a way that is compatible with
  612.     previous versions of Octave.
  613.  
  614.   * Octave can now read files that contain columns of numbers only,
  615.     with no header information.  The name of the loaded variable is
  616.     constructed from the file name.  Each line in the file must have
  617.     the same number of elements.
  618.  
  619.   * The interface to the pager has changed.  The new built-in variable
  620.     `page_output_immediately' controls when Octave sends output to the
  621.     pager.  If it is nonzero, Octave sends output to the pager as soon
  622.     as it is available.  Otherwise, Octave buffers its output and
  623.     waits until just before the prompt is printed to flush it to the
  624.     pager.
  625.  
  626.   * Expressions of the form
  627.  
  628.       A(i,j) = x
  629.  
  630.     where X is a scalar and the indices i and j define a matrix of
  631.     elements now work as you would expect rather than giving an error.
  632.     I am told that this is how Matlab 5.0 will behave when it is
  633.     released.
  634.  
  635.   * Indexing of character strings now works.
  636.  
  637.   * The echo command has been implemented.
  638.  
  639.   * The document command is now a regular function.
  640.  
  641.   * New method for handling errors:
  642.  
  643.       try
  644.         BODY
  645.       catch
  646.         CLEANUP
  647.       end_try_catch
  648.  
  649.     Where BODY and CLEANUP are both optional and may contain any
  650.     Octave expressions or commands.  The statements in CLEANUP are
  651.     only executed if an error occurs in BODY.
  652.  
  653.     No warnings or error messages are printed while BODY is
  654.     executing.  If an error does occur during the execution of BODY,
  655.     CLEANUP can access the text of the message that would have been
  656.     printed in the builtin constant __error_text__.  This is the same
  657.     as eval (TRY, CATCH) (which may now also use __error_text__) but
  658.     it is more efficient since the commands do not need to be parsed
  659.     each time the TRY and CATCH statements are evaluated.
  660.  
  661.   * Octave no longer parses the help command by grabbing everything
  662.     after the keyword `help' until a newline character is read.  To
  663.     get help for `;' or `,', now, you need to use the command
  664.     `help semicolon' or `help comma'.
  665.  
  666.   * Octave's parser now does some simple constant folding.  This means
  667.     that expressions like 3*i are now evaluated only once, when a
  668.     function is compiled, and the right hand side of expressions like
  669.     a = [1,2;3,4] are treated as true matrix constants rather than
  670.     lists of elements which must be evaluated each time they are
  671.     needed.
  672.  
  673.   * Built-in variables that can take values of "true" and "false" can
  674.     now also be set to any nonzero scalar value to indicate "true",
  675.     and 0 to indicate "false".
  676.  
  677.   * New built-in variables `history_file', `history_size', and
  678.     `saving_history'.
  679.  
  680.   * New built-in variable `string_fill_char' specifies the character
  681.     to fill with when creating arrays of strings.
  682.  
  683.   * If the new built-in variable `gnuplot_has_frames' is nonzero,
  684.     Octave assumes that your copy of gnuplot includes support for
  685.     multiple plot windows when using X11.
  686.  
  687.     If the new built-in variable `gnuplot_has_multiplot' is nonzero,
  688.     Octave assumes that your copy of gnuplot has the multiplot support
  689.     that is included in recent 3.6beta releases.
  690.  
  691.     The initial values of these variables are determined by configure,
  692.     but can be changed in your startup script or at the command line
  693.     in case configure got it wrong, or if you upgrade your gnuplot
  694.     installation.
  695.  
  696.   * The new plot function `figure' allows multiple plot windows when
  697.     using newer versions of gnuplot with X11.
  698.  
  699.   * Octave now notices when the plotter has exited unexpectedly.
  700.  
  701.   * New built-in variable `warn_missing_semicolon'.  If nonzero, Octave
  702.     will warn when statements in function definitions don't end in
  703.     semicolons.  The default value is 0.
  704.  
  705.   * Octave now attempts to continue after floating point exceptions
  706.     or out-of-memory errors.
  707.  
  708.   * If Octave crashes, it now attempts to save all user-defined
  709.     variables in a file named `octave-core' in the current directory
  710.     before exiting.
  711.  
  712.   * It is now possible to get the values of individual option settings
  713.     for the dassl, fsolve, lsode, npsol, qpsol, and quad functions
  714.     using commands like
  715.  
  716.       dassl_reltol = dassl_options ("relative tolerance");
  717.  
  718.   * The svd() function no longer computes the left and right singular
  719.     matrices unnecessarily.  This can significantly improve
  720.     performance for large matrices if you are just looking for the  
  721.     singular values.
  722.  
  723.   * The filter() function is now a built-in function.
  724.  
  725.   * New function randn() returns a pseudo-random number from a normal
  726.     distribution.  The rand() and randn() functions have separate
  727.     seeds and generators.
  728.  
  729.   * Octave's command-line arguments are now available in the built-in
  730.     variable `argv'.  The program name is also available in the
  731.     variables `program_invocation_name' and `program_name'.  If
  732.     executing a script from the command line (e.g., octave foo.m) or
  733.     using the `#! /bin/octave' hack, the program name is set to the
  734.     name of the script.
  735.  
  736.   * New built-in variable `completion_append_char' used as the
  737.     character to append to successful command-line completion
  738.     attempts.  The default is " " (a single space).
  739.  
  740.   * Octave now uses a modified copy of the readline library from
  741.     version 1.14.5 of GNU bash.
  742.  
  743.   * In prompt strings, `\H' expands to the whole host name.
  744.  
  745.   * New built-in variable `beep_on_error'.  If nonzero, Octave will try
  746.     to ring your terminal's bell before printing an error message.
  747.     The default value is 0.
  748.  
  749.   * For functions defined from files, the type command now prints the
  750.     text of the file.  You can still get the text reconstructed from
  751.     the parse tree by using the new option -t (-transformed).
  752.  
  753.   * New command-line argument --traditional sets the following
  754.     preference variables for compatibility with Matlab:
  755.  
  756.       PS1                           = ">> "
  757.       PS2                           = ""
  758.       beep_on_error                 = 1
  759.       default_save_format           = "mat-binary"
  760.       define_all_return_values      = 1
  761.       do_fortran_indexing           = 1
  762.       empty_list_elements_ok        = 1
  763.       implicit_str_to_num_ok        = 1
  764.       ok_to_lose_imaginary_part     = 1
  765.       page_screen_output            = 0
  766.       prefer_column_vectors         = 0
  767.       prefer_zero_one_indexing      = 1
  768.       print_empty_dimensions        = 0
  769.       treat_neg_dim_as_zero         = 1
  770.       warn_function_name_clash      = 0
  771.       whitespace_in_literal_matrix  = "traditional"
  772.  
  773.   * New functions:
  774.  
  775.       readdir  -- returns names of files in directory as array of strings
  776.       mkdir    -- create a directory
  777.       rmdir    -- remove a directory
  778.       rename   -- rename a file
  779.       unlink   -- delete a file
  780.       umask    -- set permission mask for file creation
  781.       stat     -- get information about a file
  782.       lstat    -- get information about a symbolic link
  783.       glob     -- perform filename globbing
  784.       fnmatch  -- match strings with filename globbing patterns
  785.       more     -- turn the pager on or off
  786.       gammaln  -- alias for lgamma
  787.  
  788.   * New audio functions from Andreas Weingessel
  789.     <Andreas.Weingessel@ci.tuwien.ac.at>.
  790.  
  791.       lin2mu     -- linear to mu-law encoding
  792.       loadaudio  -- load an audio file to a vector
  793.       mu2lin     -- mu-law to linear encoding
  794.       playaudio  -- play an audio file
  795.       record     -- record sound and store in vector
  796.       saveaudio  -- save a vector as an audio file
  797.       setaudio   -- executes mixer shell command
  798.  
  799.   * New plotting functions from Vinayak Dutt.  Ones dealing with
  800.     multiple plots on one page require features from gnuplot 3.6beta
  801.     (or later).
  802.  
  803.       bottom_title  -- put title at the bottom of the plot
  804.       mplot         -- multiplot version of plot
  805.       multiplot     -- switch multiple-plot mode on or off
  806.       oneplot       -- return to one plot per page
  807.       plot_border   -- put a border around plots
  808.       subplot       -- position multiple plots on a single page
  809.       subwindow     -- set subwindow position for next plot
  810.       top_title     -- put title at the top of the plot
  811.       zlabel        -- put a label on the z-axis
  812.  
  813.   * New string functions
  814.  
  815.       bin2dec  -- convert a string of ones and zeros to an integer
  816.       blanks   -- create a string of blanks
  817.       deblank  -- delete trailing blanks
  818.       dec2bin  -- convert an integer to a string of ones and zeros
  819.       dec2hex  -- convert an integer to a hexadecimal string
  820.       findstr  -- locate occurrences of one string in another
  821.       hex2dec  -- convert a hexadecimal string to an integer
  822.       index    -- return position of first occurrence a string in another
  823.       rindex   -- return position of last occurrence a string in another
  824.       split    -- divide one string into pieces separated by another
  825.       str2mat  -- create a string matrix from a list of strings
  826.       strrep   -- replace substrings in a string
  827.       substr   -- extract a substring
  828.  
  829.     The following functions return a matrix of ones and zeros.
  830.     Elements that are nonzero indicate that the condition was true for
  831.     the corresponding character in the string array.
  832.  
  833.       isalnum   -- letter or a digit
  834.       isalpha   -- letter
  835.       isascii   -- ascii
  836.       iscntrl   -- control character
  837.       isdigit   -- digit
  838.       isgraph   -- printable (but not space character)
  839.       islower   -- lower case
  840.       isprint   -- printable (including space character)
  841.       ispunct   -- punctuation
  842.       isspace   -- whitespace
  843.       isupper   -- upper case
  844.       isxdigit  -- hexadecimal digit
  845.  
  846.     These functions return new strings.
  847.  
  848.       tolower  -- convert to lower case
  849.       toupper  -- convert to upper case
  850.  
  851.   * New function, fgetl.  Both fgetl and fgets accept an optional
  852.     second argument that specifies a maximum number of characters to
  853.     read, and the function fgets is now compatible with Matlab.
  854.  
  855.   * Printing in hexadecimal format now works (format hex).  It is also
  856.     possible to print the internal bit representation of a value
  857.     (format bit).  Note that these formats are only implemented for
  858.     numeric values.
  859.  
  860.   * Additional structure features:
  861.  
  862.     -- Name completion now works for structures.
  863.  
  864.     -- Values and names of structure elements are now printed by
  865.        default.  The new built-in variable `struct_levels_to_print'
  866.        controls the depth of nested structures to print.  The default
  867.        value is 2.
  868.  
  869.     -- New functions:
  870.  
  871.        struct_contains (S, NAME) -- returns 1 if S is a structure with
  872.                                     element NAME; otherwise returns 0.
  873.  
  874.        struct_elements (S)       -- returns the names of all elements
  875.                                     of structure S in an array of strings. 
  876.  
  877.   * New io/subprocess functions:
  878.  
  879.       fputs    -- write a string to a file with no formatting
  880.       popen2   -- start a subprocess with 2-way communication
  881.       mkfifo   -- create a FIFO special file
  882.       popen    -- open a pipe to a subprocess
  883.       pclose   -- close a pipe from a subprocess
  884.       waitpid  -- check the status of or wait for subprocesses
  885.  
  886.   * New time functions:
  887.  
  888.       asctime    -- format time structure according to local format
  889.       ctime      -- equivalent to `asctime (localtime (TMSTRUCT))'
  890.       gmtime     -- return time structure corresponding to UTC
  891.       localtime  -- return time structure corresponding to local time zone
  892.       strftime   -- print given time structure using specified format
  893.       time       -- return current time
  894.  
  895.     The `clock' and `date' functions are now implemented in M-files
  896.     using these basic functions.
  897.  
  898.   * Access to additional Unix system calls:
  899.  
  900.       dup2     -- duplicate a file descriptor
  901.       exec     -- replace current process with a new process
  902.       fcntl    -- control open file descriptors
  903.       fork     -- create a copy of the current process
  904.       getpgrp  -- return the process group id of the current process
  905.       getpid   -- return the process id of the current process
  906.       getppid  -- return the process id of the parent process
  907.       getuid   -- return the real user id of the current process
  908.       getgid   -- return the real group id of the current process
  909.       geteuid  -- return the effective user id of the current process
  910.       getegid  -- return the effective group id of the current process
  911.       pipe     -- create an interprocess channel
  912.  
  913.   * Other new functions:
  914.  
  915.       commutation_matrix  -- compute special matrix form
  916.       duplication_matrix  -- compute special matrix form
  917.       common_size.m       -- bring arguments to a common size
  918.       completion_matches  -- perform command completion on string
  919.       tilde_expand        -- perform tilde expansion on string
  920.  
  921.       meshgrid  -- compatible with Matlab's meshgrid function
  922.       tmpnam    -- replaces octave_tmp_file_name
  923.       atexit    -- register functions to be called when Octave exits
  924.       putenv    -- define an environment variable
  925.       bincoeff  -- compute binomial coefficients
  926.       nextpow2  -- compute the next power of 2 greater than a number
  927.       detrend   -- remove a best fit polynomial from data
  928.       erfinv    -- inverse error function
  929.       shift     -- perform a circular shift on the elements of a matrix
  930.       pow2      -- compute 2 .^ x
  931.       log2      -- compute base 2 logarithms
  932.       diff      -- compute differences of matrix elements
  933.       vech      -- stack columns of a matrix below the diagonal
  934.       vec       -- stack columns of a matrix to form a vector
  935.       xor       -- compute exclusive or
  936.  
  937.   * Functions for getting info from the password database on Unix systems:
  938.  
  939.       getpwent  -- read entry from password-file stream, opening if necessary
  940.       getpwuid  -- search for password entry with matching user ID
  941.       getpwnam  -- search for password entry with matching username
  942.       setpwent  -- rewind the password-file stream
  943.       endpwent  -- close the password-file stream
  944.  
  945.   * Functions for getting info from the group database on Unix systems:
  946.  
  947.       getgrent  -- read entry from group-file stream, opening if necessary
  948.       getgrgid  -- search for group entry with matching group ID
  949.       getgrnam  -- search for group entry with matching group name
  950.       setgrent  -- rewind the pgroup-file stream
  951.       endgrent  -- close the group-file stream
  952.  
  953.   * The New function octave_config_info returns a structure containing
  954.     information about how Octave was configured and compiled.
  955.  
  956.   * New function getrusage returns a structure containing system
  957.     resource usage statistics.  The `cputime' function is now defined
  958.     in an M-file using getrusage.
  959.  
  960.   * The info reader is now a separate binary that runs as a
  961.     subprocess.  You still need the info reader distributed with
  962.     Octave though, because there are some new command-line arguments
  963.     that are not yet available in the public release of Info.
  964.  
  965.   * There is a new built-in variable, INFO_PROGRAM, which is used as
  966.     the name of the info program to run.  Its initial value is
  967.     $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH/info, but that value can
  968.     be overridden by the environment variable OCTAVE_INFO_PROGRAM, or
  969.     the command line argument --info-program NAME, or by setting the
  970.     value of INFO_PROGRAM in a startup script.
  971.  
  972.   * There is a new built-in variable, EXEC_PATH, which is used as
  973.     the list of directories to search when executing subprograms.  Its
  974.     initial value is taken from the environment variable
  975.     OCTAVE_EXEC_PATH (if it exists) or PATH, but that value can be
  976.     overridden by the the command line argument --exec-path PATH, or
  977.     by setting the value of EXEC_PATH in a startup script.  If the
  978.     EXEC_PATH begins (ends) with a colon, the directories
  979.     $OCTAVE_HOME/lib/octave/VERSION/exec/ARCH and $OCTAVE_HOME/bin are
  980.     prepended (appended) to EXEC_PATH (if you don't specify a value
  981.     for EXEC_PATH explicitly, these special directories are prepended
  982.     to your PATH).
  983.  
  984.   * If it is present, Octave will now use an `ls-R' database file to
  985.     speed up recursive path searching.  Octave looks for a file called
  986.     ls-R in the directory specified by the environment variable
  987.     OCTAVE_DB_DIR.  If that is not set but the environment variable
  988.     OCTAVE_HOME is set, Octave looks in $OCTAVE_HOME/lib/octave.
  989.     Otherwise, Octave looks in the directory $datadir/octave (normally
  990.     /usr/local/lib/octave).
  991.  
  992.   * New examples directory.
  993.  
  994.   * There is a new script, mkoctfile, that can be used to create .oct
  995.     files suitable for dynamic linking.
  996.  
  997.   * Many more bug fixes.
  998.  
  999.   * ChangeLogs are now kept in each subdirectory.
  1000.  
  1001. See NEWS.1 for old news.
  1002.