[ Octave is also available on FSF's Languages Tape for those

]

-------------------------------

ANNOUNCING: Octave Version 1.0

-------------------------------

Octave version 1.0 is now available for ftp from ftp.che.utexas.edu

in the directory /pub/octave. Gzipped tar files are available, as are

diffs relative to version 0.83.

Binaries for several popular systems are also available. If you would

like help out by making binaries available for other systems, please

What is Octave?

---------------

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.

Octave can do arithmetic for real and complex scalars and matrices,

solve sets of nonlinear algebraic equations, integrate functions over

finite and infinite intervals, and integrate systems of ordinary

differential and differential-algebraic equations.

Octave uses the GNU readline library to handle reading and editing

input. By default, the line editing commands are similar to the

cursor movement commands used by GNU Emacs, and a vi-style line

editing interface is also available. At the end of each session, the

command history is saved, so that commands entered during previous

sessions are not lost.

The Octave distribution includes a 150+ page Texinfo manual. Access

to the complete text of the manual is available via the help command

at the Octave prompt.

Two and three dimensional plotting is fully supported using gnuplot.

The underlying numerical solvers are currently standard fortran ones

like Lapack, Linpack, Odepack, the Blas, etc., packaged in a library

of C++ classes. 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, you can still compile Octave if

you have the free Fortran to C translator f2c.

Octave is also 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.

Instructions for obtaining Octave are given below.

Using Octave

------------

Here are a few examples of the kinds of things Octave can do.

* to enter and compute the SVD of a matrix:

bash$ octave

Octave, version 1.0. Copyright (C) 1992, 1993, 1994 John W. Eaton.

This is free software with ABSOLUTELY NO WARRANTY.

For details, type `warranty'.

octave:1> a = [ 1, 2, 3 ; 4, 5, 6 ]

a =

1 2 3

4 5 6

octave:2> svd (a)

ans =

9.50803

0.77287

* to also get the left and right singular matrices:

octave:3> [u, s, v] = svd (a)

u =

-0.38632 -0.92237

-0.92237 0.38632

s =

9.50803 0.00000 0.00000

0.00000 0.77287 0.00000

v =

-0.42867 0.80596 0.40825

-0.56631 0.11238 -0.81650

-0.70395 -0.58120 0.40825

* to check the result:

octave:4> u * s * v'

ans =

1.00000 2.00000 3.00000

4.00000 5.00000 6.00000

* to solve a set of differential equations (ending a statement with a

semicolon suppresses the default output):

octave:5> function xdot = f (x, t)

> xdot = zeros (3, 1);

> xdot(1) = 77.27 * (x(2) - x(1) * x(2) + x(1) - 8.375e-06 * x(1)^2);

> xdot(2) = (x(3) - x(1) * x(2) - x(2)) / 77.27;

> xdot(3) = 0.161*(x(1) - x(3));

> endfunction

octave:6> output_times = [0, logspace (-1, 2.4), logspace (2.4, 2.69896)];

octave:7> y = lsode ("f", [4; 1.1; 4], output_times);

octave:8> y

y =

4.0000e+00 1.1000e+00 4.0000e+00

7.8425e+00 1.0950e+00 4.0343e+00

8.2873e+00 1.0937e+00 4.0456e+00

8.7588e+00 1.0921e+00 4.0602e+00

...

...

* and save the output in a text file:

save foo.dat y

Where to get Octave

-------------------

If you are on the Internet, you can copy the latest distribution

version of Octave from the file /pub/octave/octave-M.N.tar.gz, on the

host ftp.che.utexas.edu. This tar file has been compressed with GNU

gzip, so be sure to use binary mode for the transfer. M and N stand

for version numbers; look at a listing of the directory through ftp to

see what version is available. After you unpack the distribution, be

sure to look at the files README and INSTALL.

Installation

------------

Octave requires approximately 25MB of disk storage to unpack and

install (significantly less if you don't compile with debugging

symbols). In order to build Octave, you will need a current version

of g++, libg++, and GNU make. If you don't have these tools, you can

get them from many anonymous ftp archives, including ftp.che.utexas.edu,

ftp.uu.net, prep.ai.mit.edu, and wuarchive.wustl.edu, or by writing to

the FSF at 675 Mass Ave, Cambridge, MA 02139, USA.

Octave has been compiled and tested with g++ and libg++ on a

SPARCstation 2 running SunOS 4.1.2, an IBM RS/6000 running AIX 3.2.5,

a DECstation 5000/240 running Ultrix 4.2a, HP 9000/700 series systems

running HP-UX 9.01, i486 systems running Linux and NetBSD, and NeXT

systems.

Implementation

--------------

Octave is being developed with GNU make, bison (a replacement for

YACC), flex (a replacement for lex), gcc/g++, and libg++ on Sun

SPARCstations, DEC DECstations, and IBM RS/6000s. It should be

easy to port it to any machine that has a working port of gcc/g++.

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, and they are

distributed under the same terms as Octave.

Bugs

----

Please report any problems you have to

Your bug reports play an essential role in making Octave reliable.

Reporting a bug may help you by bringing a solution to your problem,

or it may not. In any case, the principal function of a bug report

is to help the entire community by making the next version of Octave

work better. Bug reports are your contribution to the maintenance of

Octave.

The file BUGS in the top level directory of the source distribution

contains more information about how to provide useful bug reports.

Comments and suggestions are also always welcome.

--

John W. Eaton

Department of Chemical Engineering

The University of Texas at Austin

[ Most GNU software is packed using the new `gzip' compression program.

Source code is available on most sites distributing GNU software.

For information on how to order GNU software on tape, floppy, or

cd-rom, check the file etc/ORDERS in the GNU Emacs distribution or in

By ordering your GNU software from the FSF, you help us continue to

develop more free software. Media revenues are our primary source of

support. Donations to FSF are deductible on US tax returns.

The above software will soon be at these ftp sites as well.

ASIA: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep,

cair.kaist.ac.kr:/pub/gnu, ftp.nectec.or.th:/pub/mirrors/gnu

AUSTRALIA: archie.au:/gnu (archie.oz or archie.oz.au for ACSnet)

AFRICA: ftp.sun.ac.za:/pub/gnu

MIDDLE-EAST: ftp.technion.ac.il:/pub/unsupported/gnu

EUROPE: irisa.irisa.fr:/pub/gnu, ftp.univ-lyon1.fr:pub/gnu,

ftp.mcc.ac.uk, unix.hensa.ac.uk:/pub/uunet/systems/gnu, ftp.denet.dk,

src.doc.ic.ac.uk:/gnu, ftp.eunet.ch, nic.switch.ch:/mirror/gnu,

ftp.informatik.rwth-aachen.de:/pub/gnu, ftp.informatik.tu-muenchen.de,

ftp.win.tue.nl, ftp.funet.fi:/pub/gnu, ftp.stacken.kth.se, isy.liu.se,

ftp.luth.se:/pub/unix/gnu, ftp.sunet.se:/pub/gnu, archive.eu.net

SOUTH AMERICA: ccsun.unicamp.br:/pub/gnu

WESTERN CANADA: ftp.cs.ubc.ca:/mirror2/gnu

USA: wuarchive.wustl.edu:/mirrors/gnu, labrea.stanford.edu,

ftp.digex.net:/pub/gnu, ftp.kpc.com:/pub/mirror/gnu,

ftp.cs.widener.edu, vixen.cso.uiuc.edu, ftp.hawaii.edu:/mirrors/gnu,

ftp.cs.columbia.edu:/archives/gnu/prep, col.hp.com:/mirrors/gnu,

gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu

]