Function

NumCosmoMathlapack_dgels

Declaration [src]

gint
ncm_lapack_dgels (
  gchar trans,
  const gint m,
  const gint n,
  const gint nrhs,
  gdouble* a,
  const gint lda,
  gdouble* b,
  const gint ldb,
  double* work,
  const gint lwork
)

Description [src]

DGELS solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its transpose, using a QR or LQ factorization of A. It is assumed that A has full rank.

The following options are provided:

  1. If TRANS = ‘N’ and m >= n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A*X ||.

  2. If TRANS = ‘N’ and m < n: find the minimum norm solution of an underdetermined system A * X = B.

  3. If TRANS = ‘T’ and m >= n: find the minimum norm solution of an underdetermined system A**T * X = B.

  4. If TRANS = ‘T’ and m < n: find the least squares solution of an overdetermined system, i.e., solve the least squares problem minimize || B - A**T * X ||.

Several right hand side vectors b and solution vectors x can be handled in a single call; they are stored as the columns of the M-by-NRHS right hand side matrix B and the N-by-NRHS solution matrix X.

Parameters

trans

Type: gchar

Is a char = ‘N’: the linear system involves A = ‘T’: the linear system involves A**T.

m

Type: const gint

Is an integer. The number of rows of the matrix A. M >= 0.

n

Type: const gint

Is an integer. The number of columns of the matrix A. N >= 0.

nrhs

Type: const gint

Is an integer. The number of right hand sides, i.e., the number of columns of the matrices B and X. NRHS >=0.

a

Type: gdouble*

Array of doubles with dimension (n, lda) On entry, the M-by-N matrix A. On exit, if M >= N, A is overwritten by details of its QR factorization as returned by DGEQRF if M < N, A is overwritten by details of its LQ factorization as returned by DGELQF.

The data is owned by the caller of the function.
lda

Type: const gint

The leading dimension of the array a, lda >= max (1,n).

b

Type: gdouble*

Array of doubles with dimension (n, ldb) On entry, the matrix B of right hand side vectors, stored columnwise; B is M-by-NRHS if TRANS = ‘N’, or N-by-NRHS if TRANS = ‘T’. On exit, if INFO = 0, B is overwritten by the solution vectors, stored columnwise: if TRANS = ‘N’ and m >= n, rows 1 to n of B contain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elements N+1 to M in that column; if TRANS = ‘N’ and m < n, rows 1 to N of B contain the minimum norm solution vectors; if TRANS = ‘T’ and m >= n, rows 1 to M of B contain the minimum norm solution vectors; if TRANS = ‘T’ and m < n, rows 1 to M of B contain the least squares solution vectors; the residual sum of squares for the solution in each column is given by the sum of squares of elements M+1 to N in that column.

The data is owned by the caller of the function.
ldb

Type: const gint

The leading dimension of the array b, ldb >= max (1, n).

work

Type: double*

WORK is DOUBLE PRECISION array, dimension (4*N).

The data is owned by the caller of the function.
lwork

Type: const gint

LWORK is INTEGER.

Return value

Type: gint

No description available.