GNU Octave: Preface

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

# Preface

Octave was originally intended to be companion software for an undergraduate-level textbook on chemical reactor design being written by James B. Rawlings of the University of Wisconsin-Madison and John G. Ekerdt of the University of Texas.

Clearly, Octave is now much more than just another `courseware' package with limited utility beyond the classroom. Although our initial goals were somewhat vague, we knew that we wanted to create something that would enable students to solve realistic problems, and that they could use for many things other than chemical reactor design problems.

There are those who would say that we should be teaching the students Fortran instead, because that is the computer language of engineering, but every time we have tried that, the students have spent far too much time trying to figure out why their Fortran code crashes and not enough time learning about chemical engineering. With Octave, most students pick up the basics quickly, and are using it confidently in just a few hours.

Although it was originally intended to be used to teach reactor design, it has been used in several other undergraduate and graduate courses in the Chemical Engineering Department at the University of Texas, and the math department at the University of Texas has been using it for teaching differential equations and linear algebra as well. If you find it useful, please let us know. We are always interested to find out how Octave is being used in other places.

Virtually everyone thinks that the name Octave has something to do with music, but it is actually the name of a former professor of mine who wrote a famous textbook on chemical reaction engineering, and who was also well known for his ability to do quick `back of the envelope' calculations. We hope that this software will make it possible for many people to do more ambitious computations just as easily.

Everyone is encouraged to share this software with others under the terms of the GNU General Public License (see section F. GNU GENERAL PUBLIC LICENSE) as described at the beginning of this manual. You are also encouraged to help make Octave more useful by writing and contributing additional functions for it, and by reporting any problems you may have.

Acknowledgements |  |
How You Can Contribute to Octave |  |
Distribution |  |

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## Acknowledgements

Many people have already contributed to Octave's development. In addition to John W. Eaton, the following people have helped write parts of Octave or helped out in various other ways.

- Thomas Baier baier@ci.tuwien.ac.at wrote the original versions of `popen`, `pclose`, `execute`, `sync_system`, and `async_system`.

- David Bateman dbateman@free.fr converted several built-in functions to use Lapack instead of Linpack, and split the functionality of ``load-save.cc`' out into the `octave_value` classes.

- Karl Berry karl@cs.umb.edu wrote the `kpathsea` library that allows Octave to recursively search directory paths for function and script files.

- Georg Beyerle gbeyerle@awi-potsdam.de contributed code to save values in MATLAB's ``.mat`'-file format, and has provided many useful bug reports and suggestions.

- John Campbell jcc@bevo.che.wisc.edu wrote most of the file and C-style input and output functions.

- Dirk Eddelbuettel edd@debian.org made Octave easy to install for users of Debian GNU/Linux.

- Brian Fox bfox@gnu.org wrote the `readline` library used for command history editing, and the portion of this manual that documents it.

- Klaus Gebhardt gebhardt@crunch.ikp.physik.th-darmstadt.de ported Octave to OS/2.

- Kai Habel kai.habel@gmx.de implemted functions for performing coordinate transformations.

- A. Scottedward Hodel A.S.Hodel@eng.auburn.edu contributed a number of functions including `expm`, `qzval`, `qzhess`, `syl`, `lyap`, and `balance`.

- Kurt Hornik Kurt.Hornik@ci.tuwien.ac.at provided the `corrcoef`, `cov`, `fftconv`, `fftfilt`, `gcd`, `lcd`, `kurtosis`, `null`, `orth`, `poly`, `polyfit`, `roots`, and `skewness` functions, supplied documentation for these and numerous other functions, rewrote the Emacs mode for editing Octave code and provided its documentation, and has helped tremendously with testing. He has also been a constant source of new ideas for improving Octave.

- Cai Jianming caijianming@yahoo.co.uk contributed the inital cell array implementation.

- Phil Johnson johnsonp@nicco.sscnet.ucla.edu has helped to make Linux releases available.

- Steven G. Johnson stevenj@alum.mit.edu added support for ATLAS, saving data in HDF5 files, and ported Octave's configure script to Autoconf 2.50.

- Mumit Khan khan@nanotech.wisc.edu helped make it possible for Octave to be compiled by ISO standard C++ compilers other than GCC.

- Paul Kienzle pkienzle@users.sf.net has provided many enhancements to improve Octave's compatibility with MATLAB, and also maintains the collection of conributed code at http://octave.sf.net.

- Bill Lash lash@tellabs.com provided the `unwrap` function.

- Dirk Laurie dirk@calvyn.puk.ac.za rewrote `invhilb` to be faster and more accurate.

- Friedrich Leisch leisch@ci.tuwien.ac.at provided the `mahalanobis` function.

- Ken Neighbors wkn@leland.stanford.edu has provided many useful bug reports and comments on MATLAB compatibility.

- Rick Niles niles@axp745.gsfc.nasa.gov rewrote Octave's plotting functions to add line styles and the ability to specify an unlimited number of lines in a single call. He also continues to track down odd incompatibilities and bugs.

- Mark Odegard meo@getech.com provided the initial implementation of `fread`, `fwrite`, `feof`, and `ferror`.

- Gabriele Pannocchia pannocchia@ing.unipi.it provided the `dkalman.m` function, added support for singular system matrices to `dlqe` and `dlqr`, and has made various other improvements to the control system functions.

- Tony Richardson richardson@evansville.edu wrote Octave's image processing functions as well as most of the original polynomial functions.

- Petter Risholm Petter.Risholm@idi.ntnu.no helped to implement much of Octave's N-d array functionality.

- Ben Sapp bsapp@lanl.gov implemented the debugger functions and added Texinfo markup commands to the internal doc strings.

- R. Bruce Tenison btenison@rstc.cc.al.us wrote the `hess` and `schur` functions.

- Teresa Twaroch twaroch@ci.tuwien.ac.at provided the functions `gls` and `ols`.

- James R. Van Zandt jrv@vanzandt.mv.com added support for reading and writing MATLAB version 5 binary data files.

- Andreas Weingessel Andreas.Weingessel@ci.tuwien.ac.at wrote the audio functions `lin2mu`, `loadaudio`, `mu2lin`, `playaudio`, `record`, `saveaudio`, and `setaudio`.

- Fook Fah Yap ffy@eng.cam.ac.uk provided the `fft` and `ifft` functions and valuable bug reports for early versions.

Special thanks to the following people and organizations for supporting the development of Octave:

- The National Science Foundation, through grant numbers CTS-0105360, CTS-9708497, CTS-9311420, and CTS-8957123.

- The industrial members of the Texas-Wisconsin Modeling and Control Consortium (TWMCC).

- The Paul A. Elfers Endowed Chair in Chemical Engineering at the University of Wisconsin-Madison.

- Digital Equipment Corporation, for an equipment grant as part of their External Research Program.

- Sun Microsystems, Inc., for an Academic Equipment grant.

- International Business Machines, Inc., for providing equipment as part of a grant to the University of Texas College of Engineering.

- Texaco Chemical Company, for providing funding to continue the development of this software.

- The University of Texas College of Engineering, for providing a Challenge for Excellence Research Supplement, and for providing an Academic Development Funds grant.

- The State of Texas, for providing funding through the Texas Advanced Technology Program under Grant No. 003658-078.

- Noel Bell, Senior Engineer, Texaco Chemical Company, Austin Texas.

- James B. Rawlings, Professor, University of Wisconsin-Madison, Department of Chemical Engineering.

- Richard Stallman, for writing GNU.

This project would not have been possible without the GNU software used in and used to produce Octave.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## How You Can Contribute to Octave

There are a number of ways that you can contribute to help make Octave a better system. Perhaps the most important way to contribute is to write high-quality code for solving new problems, and to make your code freely available for others to use.

If you find Octave useful, consider providing additional funding to continue its development. Even a modest amount of additional funding could make a significant difference in the amount of time that is available for development and support.

If you cannot provide funding or contribute code, you can still help make Octave better and more reliable by reporting any bugs you find and by offering suggestions for ways to improve Octave. See section B. Known Causes of Trouble, for tips on how to write useful bug reports.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## Distribution

Octave is free software. This means that everyone is free to use it and free to redistribute it on certain conditions. Octave is not in the public domain. It is copyrighted and there are restrictions on its distribution, but the restrictions are designed to ensure that others will have the same freedom to use and redistribute Octave that you have. The precise conditions can be found in the GNU General Public License that comes with Octave and that also appears in F. GNU GENERAL PUBLIC LICENSE.

Octave is available on CD-ROM with various collections of other free software, and from the Free Software Foundation. Ordering a copy of Octave from the Free Software Foundation helps to fund the development of more free software. For more information, write to

> Free Software Foundation
> 59 Temple Place--Suite 330
> Boston, MA 02111--1307
> USA

Octave is also available on the Internet from ftp://ftp.che.wisc.edu/pub/octave, and additional information is available from http://www.che.wisc.edu/octave.

[ << ] | [ >> ] |  |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated by John W. Eaton on March, 12 2004 using texi2html