ARTS 2.5.10 (git: 2f1c442c)
lapack Namespace Reference

## Functions

void dgetrf_ (int *m, int *n, double *A, int *lda, int *ipiv, int *info)
LU decomposition.

void zgetrf_ (int *m, int *n, std::complex< double > *A, int *lda, int *ipiv, int *info)

void dgetrs_ (char *trans, int *n, int *nrhs, double *A, int *lda, int *ipiv, double *b, int *ldb, int *info)
Solve linear system of equations.

void dgetri_ (int *n, double *A, int *lda, int *ipiv, double *work, int *lwork, int *info)
Matrix inversion.

void zgetri_ (int *n, std::complex< double > *A, int *lda, int *ipiv, std::complex< double > *work, int *lwork, int *info)

void ilaenv_ (int *ispec, char *name, char *opts, int *n1, int *n2, int *n3, int *n4)
Optimal parameters for computation.

void dgesvx_ (char *fact, char *trans, int *n, int *nrhs, double *A, int *lda, double *AF, int *ldaf, int *ipiv, char *equed, double *R, double *C, double *B, int *ldb, double *X, int *ldx, double *RCOND, double *FERR, double *BERR, double *WORK, int *IWORK, int *info)
Solve linear system.

void dgeev_ (char *jobvl, char *jobvr, int *n, double *A, int *lda, double *WR, double *WI, double *VL, int *ldvl, double *VR, int *ldvr, double *work, int *lwork, double *rwork, int *info)

void zgeev_ (char *jobvl, char *jobvr, int *n, std::complex< double > *A, int *lda, std::complex< double > *W, std::complex< double > *VL, int *ldvl, std::complex< double > *VR, int *ldvr, std::complex< double > *work, int *lwork, double *rwork, int *info)

## ◆ dgeev_()

 void lapack::dgeev_ ( char * jobvl, char * jobvr, int * n, double * A, int * lda, double * WR, double * WI, double * VL, int * ldvl, double * VR, int * ldvr, double * work, int * lwork, double * rwork, int * info )

## ◆ dgesvx_()

 void lapack::dgesvx_ ( char * fact, char * trans, int * n, int * nrhs, double * A, int * lda, double * AF, int * ldaf, int * ipiv, char * equed, double * R, double * C, double * B, int * ldb, double * X, int * ldx, double * RCOND, double * FERR, double * BERR, double * WORK, int * IWORK, int * info )

Solve linear system.

Solves the linear system A*X = B using LAPACK's dgesv function. The use of the expert function is necessary since we need to solve the system for the inverse matrix due to the different memory layouts in arts and BLAS. Since most of the parameters are unused they are not fully documented. See LAPACK documentation.

Parameters
 [in] fact Specifies whether or not the factored form of the matrix A is provided and whether the matrix A should be equilibrated. [in] trans Specifies the form of the linear system = 'N': A * x = B = 'N': A^T * x = B = 'N': A^H * x = B [in] n Dimensionality of the system. [in] nrhs Number of right-hand side columns. [in] A The double array (column-major order) representing the matrix a A that describes the linear system. [in] lda The leading dimension of A. [in,out] AF If a is given in factored form AF must contain the factored form of A on input. On output contains the factored form of A. [in] ldaf The leading dimension of AF. [in,out] ipiv The pivot vector from the LU decomposition. [in] equed Specifies the form of equilibration that was done. [in] R The low scale factors for A. [in] C The column scale factors for A. [in] B The right hand-side matrix of the system. [in] ldb The leading dimension of B. [out] X The solution matrix. [in] ldx The leading dimension of x. [out] RCOND The estimate of the reciprocal condition number of the matrix A after equilibration (if done). [out] FERR The estimates error bound for each solution. [out] BERR The componentwise relative backward error. [out] WORK [out] IWORK [out] info

## ◆ dgetrf_()

 void lapack::dgetrf_ ( int * m, int * n, double * A, int * lda, int * ipiv, int * info )

LU decomposition.

Performs an LU decomposition of a genereal m-by-n matrix using partial pivoting with row interchanges. See LAPACK reference.

Parameters
 [in] m The number of rows of the matrix A. [in] n The number of column of the matrix A. [out] A The matrix A. [in] lda The leading dimension of the matrix A. [out] ipiv Integer array to hold the pivoting indices. [out] info Integer indicating if operation was successful: 0 if success, otherwise failure.

## ◆ dgetri_()

 void lapack::dgetri_ ( int * n, double * A, int * lda, int * ipiv, double * work, int * lwork, int * info )

Matrix inversion.

Inverts a given matrix using LU decompositions. See LAPACK reference.

Parameters
 [in] n The number of rows and columns of the matrix A. [in,out] A The matrix to be inverted. [in] lda The leading dimension of A. [in] ipiv The vector containing the pivoting indices returned from dgetrf_. [in] work Work array for improved performance. [in] lwork Size of the work array. [out] info Integer indicating if operation was successful: 0 if success, otherwise failure.

## ◆ dgetrs_()

 void lapack::dgetrs_ ( char * trans, int * n, int * nrhs, double * A, int * lda, int * ipiv, double * b, int * ldb, int * info )

Solve linear system of equations.

Solves a linear system of equations of the form

trans(A) * x = b


using the QR decomposition obtained using dgetrf_.

Parameters
 [in] trans Specifies the form of the system of equations:

trans = 'N' : trans(A) = A trans = 'T' : trans(A) = A^T trans = 'C' : trans(A) = conj( A^T )

Parameters
 [in] n The size of the system. [in] nrhs The number of right-hand sides. [in] A The matrix describing the system. [in] lda The leading dimension of A. [in] ipiv The pivot vector as returned by dgetrf_. [in,out] b The matrix containing the right-hand side vectors. [in] ldb The leading dimension of b. [out] info Integer indicating succes of the operation.

## ◆ ilaenv_()

 void lapack::ilaenv_ ( int * ispec, char * name, char * opts, int * n1, int * n2, int * n3, int * n4 )

Optimal parameters for computation.

This function returns problem-dependent parameters for the computing environment. See LAPACK reference.

Parameters
 [in,out] ispec On input specifies which parameter to be returned and on output contains the requested parameter. [in] name Name of the functions to be called. [in] opts Character options to the function "Name" [in] n1 Problem dimension 1 of "Name". [in] n2 Problem dimension 2 of "Name". [in] n3 Problem dimension 3 of "Name". [in] n4 Problem dimension 4 of "Name".

## ◆ zgeev_()

 void lapack::zgeev_ ( char * jobvl, char * jobvr, int * n, std::complex< double > * A, int * lda, std::complex< double > * W, std::complex< double > * VL, int * ldvl, std::complex< double > * VR, int * ldvr, std::complex< double > * work, int * lwork, double * rwork, int * info )

Referenced by diagonalize().

## ◆ zgetrf_()

 void lapack::zgetrf_ ( int * m, int * n, std::complex< double > * A, int * lda, int * ipiv, int * info )

Referenced by inv(), and ComplexMatrix::inv().

## ◆ zgetri_()

 void lapack::zgetri_ ( int * n, std::complex< double > * A, int * lda, int * ipiv, std::complex< double > * work, int * lwork, int * info )

Referenced by inv(), and ComplexMatrix::inv().