# dgetsls.f man page

dgetsls.f

## Synopsis

### Functions/Subroutines

subroutine dgetsls (TRANS, M, N, NRHS, A, LDA, B, LDB, WORK, LWORK, INFO)

## Function/Subroutine Documentation

### subroutine dgetsls (character TRANS, integer M, integer N, integer NRHS, double precision, dimension( lda, * ) A, integer LDA, double precision, dimension( ldb, * ) B, integer LDB, double precision, dimension( * ) WORK, integer LWORK, integer INFO)

Purpose:

DGETSLS solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, using a tall skinny QR or short wide 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 undetermined 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

```          TRANS is CHARACTER*1
= 'N': the linear system involves A;
= 'T': the linear system involves A**T.```

M

```          M is INTEGER
The number of rows of the matrix A.  M >= 0.```

N

```          N is INTEGER
The number of columns of the matrix A.  N >= 0.```

NRHS

```          NRHS is INTEGER
The number of right hand sides, i.e., the number of
columns of the matrices B and X. NRHS >=0.```

A

```          A is DOUBLE PRECISION array, dimension (LDA,N)
On entry, the M-by-N matrix A.
On exit,
A is overwritten by details of its QR or LQ
factorization as returned by DGEQR or DGELQ.```

LDA

```          LDA is INTEGER
The leading dimension of the array A.  LDA >= max(1,M).```

B

```          B is DOUBLE PRECISION array, dimension (LDB,NRHS)
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.
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.```

LDB

```          LDB is INTEGER
The leading dimension of the array B. LDB >= MAX(1,M,N).```

WORK

```          (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) contains optimal (or either minimal
or optimal, if query was assumed) LWORK.
See LWORK for details.```

LWORK

```          LWORK is INTEGER
The dimension of the array WORK.
If LWORK = -1 or -2, then a workspace query is assumed.
If LWORK = -1, the routine calculates optimal size of WORK for the
optimal performance and returns this value in WORK(1).
If LWORK = -2, the routine calculates minimal size of WORK and
returns this value in WORK(1).```

INFO

```          INFO is INTEGER
= 0:  successful exit
< 0:  if INFO = -i, the i-th argument had an illegal value
> 0:  if INFO =  i, the i-th diagonal element of the
triangular factor of A is zero, so that A does not have
full rank; the least squares solution could not be
computed.```
Author:

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Date:

June 2017

Definition at line 162 of file dgetsls.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

The man page dgetsls(3) is an alias of dgetsls.f(3).

Tue Nov 14 2017 Version 3.8.0 LAPACK