GNU Octave -- a high-level language for numerical computations.

Copyright (C) 1996, 1997, 1998, 2002 John W. Eaton

Last updated: Fri Apr 12 20:23:53 2002

Overview
--------

GNU Octave is a high-level language, primarily intended for numerical
computations.  It provides a convenient command line interface for
solving linear and nonlinear problems numerically.

GNU Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

GNU Octave is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the file
COPYING for more details.

Availability
------------

The latest released version of Octave is always available via
anonymous ftp from ftp.octave.org in the directory /pub/octave.
Complete source and binaries for several popular systems are
available.  Source distributions of Octave are also available from
ftp.gnu.org in the directory /pub/gnu, as well as many mirror
sites around the world.

Installation and Bugs
---------------------

Octave requires approximately 125MB of disk storage to unpack and
compile from source (significantly less if you don't compile with
debugging symbols or create shared libraries).  Once installed, Octave
requires approximately 65MB of disk space (again, considerably less if
you don't build shared libraries or the binaries and libraries do not
include debugging symbols).

To compile Octave, you will need a recent version of GNU Make.  You
will also need g++ 2.7.2 or later.  Version 2.8.0 or egcs 1.0.x should
work.  Later versions may work, but C++ is still evolving, so don't be
too surprised if you run into some trouble.

It is no longer necessary to have libg++, but you do need to have the
GNU implementation of libstdc++.  If you are using g++ 2.7.2,
libstdc++ is distributed along with libg++, but for later versions,
libstdc++ is distributed separately.  For egcs, libstdc++ is included
with the compiler distribution.

YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE.  Octave's Makefiles use
features of GNU Make that are not present in other versions of make.
GNU Make is very portable and easy to install.

See the notes in the files INSTALL and INSTALL.OCTAVE for more
specific installation instructions, including directions for
installing Octave from a binary distribution.

The file BUGS contains a recommended procedure for reporting bugs, as
well as a list of known problems and possible fixes.

Documentation
-------------

Octave's manual has been revised for version 2.0, but it is lagging a
bit behind the development of the software.  In particular, there is
currently no complete documentation of the C++ class libraries or the
support for dynamic linking and user-defined data types.  If you
notice ommissions or inconsistencies, please report them as bugs to
bug@octave.org.  Specific suggestions for ways to improve Octave and
its documentation are always welcome.

Implementation
--------------

Octave is being developed with the Free Software Foundation's make,
bison (a replacement for YACC), flex (a replacement for lex), gcc/g++,
and libstdc++ on an Intel Pentium II system running Linux/GNU.  It
should be possible to install it on any machine that runs GCC/G++.  It
may also be possible to install it using other implementations of
these tools, but it will most certainly require much more work.  Do
yourself a favor and get the GNU development tools, either via
anonymous ftp from ftp.gnu.org or by writing the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.

The underlying numerical solvers are currently standard Fortran ones
like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library
of C++ classes (see the files in the libcruft and liboctave
subdirectories).  If possible, the Fortran subroutines are compiled
with the system's Fortran compiler, and called directly from the C++
functions.  If that's not possible, they are translated with f2c and
compiled with a C compiler.  Better performance is usually achieved if
the intermediate translation to C is avoided.

The library of C++ classes may also be useful by itself.

Additional Information
----------------------

Up to date information about Octave is available on the WWW at the
URL http://www.octave.org, including archives of the help-octave,
bug-octave, and octave-sources mailing lists.

--
John W. Eaton
jwe@bevo.che.wisc.edu
University of Wisconsin-Madison
Department of Chemical Engineering
