@c Copyright (C) 1993, 1994, 1995 John W. Eaton
@c This is part of the Octave manual.
@c For copying conditions, see the file gpl.texi.

@node Preface, Copying, Top, Top
@unnumbered Preface
@cindex acknowledgements
@cindex contributors
@cindex history

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

Clearly, Octave is now much more than just another `courseware' package
with limited utiltiy 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 is also currently used in several other undergraduate and graduate
courses in our department, 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 (@pxref{Copying}) 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.

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.

@c Once lp_solve has been added, don't forget to include the lp_solve
@c author, and Kantor, for providing an example.

@itemize @bullet
@item
Karl Berry (karl@@cs.umb.edu) wrote the @code{kpathsea} library that
allows Octave to recursively search directory paths for function and
script files.

@item
Georg Beyerle (gbeyerle@@awi-potsdam.de) contributed code to save values
in @sc{Matlab}'s @file{.mat}-file format, and has provided many useful bug
reports and suggestions.

@item
John Campbell (jcc@@che.utexas.edu) wrote most of the file and C-style
input and output functions.

@item
Brian Fox (bfox@@gnu.ai.mit.edu) wrote the @code{readline} library used
for command history editing, and the portion of this manual that
documents it.

@item
A. Scottedward Hodel (scotte@@eng.auburn.edu) contributed a number
of functions including @code{expm}, @code{qzval}, @code{qzhess},
@code{syl}, @code{lyap}, and @code{balance}.

@item
Kurt Hornik (Kurt.Hornik@@ci.tuwien.ac.at) provided the @code{corrcoef},
@code{cov}, @code{kurtosis}, @code{pinv}, and @code{skewness} functions.

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

@item
Friedrich Leisch (leisch@@ci.tuwien.ac.at) provided the
@code{mahalanobis} function.

@item
Ken Neighbors (wkn@@leland.stanford.edu) has provided many useful bug
reports and comments on @sc{Matlab} compatibility.

@item
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.

@item
Mark Odegard (meo@@sugarland.unocal.com) provided the initial
implementation of @code{fread}, @code{fwrite}, @code{feof}, and
@code{ferror}.

@item
Tony Richardson (tony@@guts.biomed.uakron.edu) wrote Octave's image
processing functions as well as most of the original polynomial
functions.

@item
R. Bruce Tenison (Bruce.Tenison@@eng.auburn.edu) wrote the @code{hess} and
@code{schur} functions.

@item
Teresa Twaroch (twaroch@@ci.tuwien.ac.at) provided the functions
@code{gls} and @code{ols}.

@item
Fook Fah Yap (ffy@@eng.cam.ac.uk) provided the @code{fft} and
@code{ifft} functions and valuable bug reports for early versions.
@end itemize

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

@itemize @bullet
@item
Digital Equipment Corporation, for an equipment grant as part of their
External Research Program.

@item
Sun Microsystems, Inc., for an Academic Equipment grant.

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

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

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

@item
Noel Bell, Senior Engineer, Texaco Chemical Company, Austin Texas.

@item
James B. Rawlings, Associate Professor, Department of Chemical
Engineering, The University of Texas at Austin.

@item
Richard Stallman, for writing GNU.
@end itemize

Portions of this document have been adapted from the @code{gawk},
@code{readline}, @code{gcc}, and C library manuals, published by the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

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