lapack
calling conventionsA table describing the inputs and outputs to the lapack
library
functions listed by their function names is given in this
section. Some general points related to most of the functions are
mentioned first.
LAPACK
internally uses column order
arrays, the virtual code library interface exhibits a matrix as a list
of lists with one inner list for each row.
d
pertain to vectors or
matrices of real numbers (math), and function names beginning
with z
pertain to complex numbers (complex). The
specifications of similarly named functions are otherwise identical.
dgesvx
zgesvx
(
a,
b)
where
a is an n by n matrix and b is a vector of
length n. If a is non-singular, they return a
vector x such that a x =
b.
Otherwise they return an empty list.
dgelsd
zgelsd
(
a,
b)
where a is an m by n matrix
and b is a vector of length m, with m greater than
n. They return a vector x of length n to minimize
the magnitude of b -
a x.
dgesdd
zgesdd
(
m,
n)
but could be less if the input time
series aren't linearly independent. An empty list could be returned
due to lack of convergence.
dgeevx
zgeevx
(
e,
v)
where e is a list of
eigenvectors and v is a list of eigenvalues, both of which will
contain only complex numbers. (N.B., both functions return complex
results even though dgeevx
takes real input.) They could also
return nil
due to a lack of convergence.
dpptrf
zpptrf
dggglm
zggglm
((
A,
B),
d)
. The output is a pair of vectors
(
x,
y)
satisfying Ax +
By =
d for which the magnitude of y is
minimal. The dimensions all have to be consistent, which means
the number of rows in A and B is the length of d,
the number of columns in A is the length of x, and
the number of columns in B is the length of y.
dgglse
zgglse
((
A,
c),(
B,
d))
where A and B are matrices and c and d are
vectors. The output is a vector x to minimize the magnitude of
Ax -
c subject to the constraint that
Bx =
d. The dimensions have to be consistent,
which means A has m rows, c has length m,
B has p rows, d has length p, both A and
B have n columns, and the output x has length
n. It is also a requirement that p <=
n <=
m +
p.
dsyevr
(
e,
v)
where e is a list of eigenvectors and
v is a list of eigenvalues. Both contain only real numbers.
This function is fast and accurate but not as storage efficient as
possible. If there is insufficient memory, it automatically invokes
dspev
.
dspev
(
e,
v)
where e is a list of eigenvectors and
v is a list of eigenvalues. Both contain only real numbers. It
uses roughly half the memory of dsyevr
but is not as fast or
accurate.
zheevr
(
e,
v)
where e is a list of eigenvectors and
v is a list of eigenvalues. The eigenvectors are complex but the
eigenvalues are real.
zhpev
,
and calls it automatically if it runs out of memory.
zhpev
zheevr
but is slower and more memory efficient because it uses
only packed matrices.