octave: External Packages
E.1.3 External Packages
-----------------------
The following external packages are required:
BLAS
Basic Linear Algebra Subroutine library. Accelerated BLAS
libraries such as OpenBLAS (<http://www.openblas.net/>) or ATLAS
(<http://math-atlas.sourceforge.net>) are recommended for best
performance. The reference implementation
(<http://www.netlib.org/blas>) is slow, unmaintained, and suffers
from certain bugs in corner case inputs.
LAPACK
Linear Algebra Package (<http://www.netlib.org/lapack>).
PCRE
The Perl Compatible Regular Expression library
(<http://www.pcre.org>).
The following external package is optional but strongly recommended:
GNU Readline
Command-line editing library (<www.gnu.org/s/readline>).
If you wish to build Octave without GNU readline installed, you must
use the ‘--disable-readline’ option when running the configure script.
The following external software packages are optional but
recommended:
ARPACK
Library for the solution of large-scale eigenvalue problems
(<http://forge.scilab.org/index.php/p/arpack-ng>). ARPACK is
required to provide the functions ‘eigs’ and ‘svds’.
cURL
Library for transferring data with URL syntax
(<http://curl.haxx.se>). cURL is required to provide the ‘urlread’
and ‘urlwrite’ functions and the ‘ftp’ class.
FFTW3
Library for computing discrete Fourier transforms
(<http://www.fftw.org>). FFTW3 is used to provide better
performance for functions that compute discrete Fourier transforms
(‘fft’, ‘ifft’, ‘fft2’, etc.)
FLTK
Portable GUI toolkit (<http://www.fltk.org>). FLTK is currently
used to provide windows for Octave’s OpenGL-based graphics
functions.
fontconfig
Library for configuring and customizing font access
(<http://www.freedesktop.org/wiki/Software/fontconfig>).
Fontconfig is used to manage fonts for Octave’s OpenGL-based
graphics functions.
FreeType
Portable font engine (<http://www.freetype.org>). FreeType is used
to perform font rendering for Octave’s OpenGL-based graphics
functions.
GLPK
GNU Linear Programming Kit (<http://www.gnu.org/software/glpk>).
GPLK is required for the function ‘glpk’.
gl2ps
OpenGL to PostScript printing library
(<http://www.geuz.org/gl2ps/>). gl2ps is required for printing
when using OpenGL-based graphics toolkits (currently either FLTK or
Qt).
gnuplot
Interactive graphics program (<http://www.gnuplot.info>). gnuplot
is currently the default graphics renderer for Octave.
GraphicsMagick++
Image processing library (<http://www.graphicsmagick.org>).
GraphicsMagick++ is used to provide the ‘imread’ and ‘imwrite’
functions.
HDF5
Library for manipulating portable data files
(<http://www.hdfgroup.org/HDF5>). HDF5 is required for Octave’s
‘load’ and ‘save’ commands to read and write HDF data files.
Java Development Kit
Java programming language compiler and libraries. The OpenJDK free
software implementation is recommended
(<http://openjdk.java.net/>), although other JDK implementations
may work. Java is required to be able to call Java functions from
within Octave.
LLVM
Compiler framework, (<http://www.llvm.org>). LLVM is required for
Octave’s experimental just-in-time (JIT) compilation for speeding
up the interpreter.
OpenGL
API for portable 2-D and 3-D graphics (<http://www.opengl.org>).
An OpenGL implementation is required to provide Octave’s
OpenGL-based graphics functions. Octave’s OpenGL-based graphics
functions usually outperform the gnuplot-based graphics functions
because plot data can be rendered directly instead of sending data
and commands to gnuplot for interpretation and rendering.
PortAudio
PortAudio (<http://www.portaudio.com/>) provides a very simple API
for recording and/or playing sound using a simple callback function
or a blocking read/write interface. It is required for the audio
processing functions ‘audioplayer’, ‘audiorecorder’, and
‘audiodevinfo’.
Qhull
Computational geometry library (<http://www.qhull.org>). Qhull is
required to provide the functions ‘convhull’, ‘convhulln’,
‘delaunay’, ‘delaunayn’, ‘voronoi’, and ‘voronoin’.
QRUPDATE
QR factorization updating library
(<http://sourceforge.net/projects/qrupdate>). QRUPDATE is used to
provide improved performance for the functions ‘qrdelete’,
‘qrinsert’, ‘qrshift’, and ‘qrupdate’.
QScintilla
Source code highlighter and manipulator; a Qt port of Scintilla
(<http://www.riverbankcomputing.co.uk/software/qscintilla>).
QScintilla is used for syntax highlighting and code completion in
the GUI.
Qt
GUI and utility libraries (). Qt is required for building the GUI.
It is a large framework, but the only components required are the
GUI, core, and network modules.
SuiteSparse
Sparse matrix factorization library
(<http://www.cise.ufl.edu/research/sparse/SuiteSparse>).
SuiteSparse is required to provide sparse matrix factorizations and
solution of linear equations for sparse systems.
SUNDIALS
The SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers
(<http://computation.llnl.gov/projects/sundials>) is required for
the Ordinary Differential Equations (ODE) solvers ‘ode15i’ and
‘ode15s’.
zlib
Data compression library (<http://zlib.net>). The zlib library is
required for Octave’s ‘load’ and ‘save’ commands to handle
compressed data, including MATLAB v5 MAT files.