#### G.1.3 External Packages

The following external packages are required:

BLAS
  Basic Linear Algebra Subroutine library (http://www.netlib.org/blas). Accelerated BLAS libraries such as ATLAS (http://math-atlas.sourceforge.net) are recommeded for better performance.
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`.
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.
OpenGL
  API for portable 2D and 3D 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.
Qhull
  Computational geometry library (http://www.qhull.org). Qhull is required to provide the functions `convhull`, `convhulln`, `delaunay`, `delaunay3`, `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`.
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.
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.