E.1.3 External Packages
The following external packages are required:
- BLAS
-
Basic Linear Algebra Subroutine library. Accelerated BLAS libraries such as OpenBLAS (https://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 (https://www.pcre.org).
The following external package is optional but strongly recommended:
- GNU Readline
Command-line editing library (https://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 (https://forge.scilab.org/index.php/p/arpack-ng). ARPACK is required to provide the functions
eigs
andsvds
. - cURL
-
Library for transferring data with URL syntax (https://curl.haxx.se). cURL is required to provide the
urlread
andurlwrite
functions and theftp
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 can be used to provide windows for Octave’s OpenGL-based graphics functions.
- fontconfig
-
Library for configuring and customizing font access (https://www.freedesktop.org/wiki/Software/fontconfig). Fontconfig is used to manage fonts for Octave’s OpenGL-based graphics functions.
- FreeType
-
Portable font engine (https://www.freetype.org). FreeType is used to perform font rendering for Octave’s OpenGL-based graphics functions.
- GLPK
-
GNU Linear Programming Kit (https://www.gnu.org/software/glpk). GPLK is required for the function
glpk
. - gl2ps
-
OpenGL to PostScript printing library (https://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 can be used as a graphics renderer for Octave; prior to Octave 4.0, gnuplot was the default graphics renderer.
- GraphicsMagick++
-
Image processing library (http://www.graphicsmagick.org). GraphicsMagick++ is used to provide the
imread
andimwrite
functions. - HDF5
-
Library for manipulating portable data files (https://www.hdfgroup.org/HDF5). HDF5 is required for Octave’s
load
andsave
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, (https://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 (https://www.opengl.org). An OpenGL implementation can be used to provide a renderer for Octave’s 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. Since Octave 4.0, the default graphics renderer (
"qt"
) has been OpenGL-based. - 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
, andaudiodevinfo
. - Qhull
-
Computational geometry library (http://www.qhull.org). Qhull is required to provide the functions
convhull
,convhulln
,delaunay
,delaunayn
,voronoi
, andvoronoin
. - QRUPDATE
-
QR factorization updating library (https://sourceforge.net/projects/qrupdate). QRUPDATE is used to provide improved performance for the functions
qrdelete
,qrinsert
,qrshift
, andqrupdate
. - 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 (https://www.qt.io). Qt is required for building the GUI. It is a large framework, but the only components required are the GUI, core, and network modules. Since Octave 4.0, the default graphics renderer (
"qt"
) has been Qt-based, which has been OpenGL-based. - SuiteSparse
-
Sparse matrix factorization library (http://faculty.cse.tamu.edu/davis/suitesparse.html). 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 (https://computation.llnl.gov/projects/sundials) is required for the Ordinary Differential Equations (ODE) solvers
ode15i
andode15s
. - zlib
Data compression library (https://zlib.net). The zlib library is required for Octave’s
load
andsave
commands to handle compressed data, including MATLAB v5 MAT files.
© 1996–2020 John W. Eaton
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://octave.org/doc/v6.3.0/External-Packages.html