[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

### D.10.1 `lapack` calling conventions

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

- References to vectors, matrices, and packed matrices should be understood as their list representations explained in Type Conversions. Although `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.
- Some functions require a symmetric matrix as an input parameter. Any input parameter that is required to be a symmetric matrix may be specified optionally either in square form or in triangular form as described in Two dimensional arrays. If a square matrix form is used, symmetry is not checked and the lower triangular portion is ignored.
- Some function names are listed in pairs differing only in the first letter. Function names beginning with `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`

  These library functions take a pair `(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`

  These functions generalize those above by taking a pair `(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`

  These functions take a list of m time series (i.e., vectors) each of length n and return a list of basis vectors each of length n. The basis vectors span the set of time series in the given list according to the singular value decomposition (i.e., with the basis vectors forming a series in order of decreasing significance). The number of basis vectors is at most `min(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`

  These functions take a non-symmetric square matrix and return a pair `(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`

  These functions take a symmetric square matrix and return one of the Cholesky factors. The Cholesky factors are a pair of triangular matrices, each equal to the transpose of the other, whose product is the original matrix.

  - If the input matrix is specified in lower triangular form, the lower triangular Cholesky factor is returned.
  - If the input matrix is specified in square or upper triangular form, the upper triangular Cholesky factor is returned.
  - In either case, the result is returned in triangular form.
`dggglm`
`zggglm`

  The input is a pair of matrices and a vector `((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`

  The input is of the form `((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`

  This function takes a symmetric real matrix and returns a pair `(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`

  This function takes a symmetric real matrix and returns a pair `(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`

  This function takes a complex Hermitian matrix and returns a pair `(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.

  - A Hermitian matrix has Aij equal to the complex conjugate of Aji.
  - Although not exactly symmetric, a Hermitian matrix may nevertheless be given in either upper or lower triangular form.
  - This function is faster but less storage efficient than `zhpev`, and calls it automatically if it runs out of memory.
`zhpev`

  This function has the same inputs and approximate outputs as `zheevr` but is slower and more memory efficient because it uses only packed matrices.

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

This document was generated on November 8, 2012 using texi2html 1.82.