comparison NEWS-2.html @ 94:e8fc61e077fc

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