GNU Octave -- a high-level language for numerical computations. Copyright (C) 1996, 1997 John W. Eaton Last updated: Fri Feb 6 02:23:36 1998 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.che.wisc.edu 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@bevo.che.wisc.edu. 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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://bevo.che.wisc.edu/octave, 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