[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Octave version 1.0 released

From: John Eaton
Subject: Octave version 1.0 released
Date: Thu, 17 Feb 94 15:15:48 CST

ANNOUNCING:  Octave Version 1.0

Octave version 1.0 is now available for ftp from
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
contact address@hidden

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 =


* 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  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.


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


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.


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

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]