gelst(3)

๐Ÿ’– NAME ๐Ÿ’–

okay bestie, welcome to gelst(3) from the Library Functions Manual ๐Ÿ’–

gelst โ€” gelst: least squares using QR/LQ with T matrix โœจ


โœจ SYNOPSIS โœจ

  • subroutine cgelst (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) โ€” CGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.
  • subroutine dgelst (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) โ€” DGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.
  • subroutine sgelst (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) โ€” SGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.
  • subroutine zgelst (trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info) โ€” ZGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.

๐ŸŒˆ Detailed Description ๐ŸŒˆ

The gelst family is literally four subroutines, same least-squares energy, different types. The function-by-function tea is right below, bestie ๐Ÿ‘‘.

๐Ÿ‘‘ Function Documentation ๐Ÿ‘‘

๐Ÿ’… cgelst ๐Ÿ’…

subroutine cgelst (character trans, integer m, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, complex, dimension( * ) work, integer lwork, integer info)

CGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.

โœจ Purpose โœจ

CGELST solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its conjugate-transpose, using a QR or LQ factorization of A with compact WY representation of Q.

The vibe check: A is assumed to have full rank, and only a rudimentary protection against rank-deficient matrices is provided. This subroutine only detects exact rank-deficiency โ€” where a diagonal element of the triangular factor of A is exactly zero.

It is conceivable for one (or more) of the diagonal elements of the triangular factor of A to be subnormally tiny numbers without this subroutine signalling an error ๐Ÿ˜ญ. The solutions computed for such almost-rank-deficient matrices may be less accurate due to a loss of numerical precision.

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 ||.
  1. If TRANS = 'N' and m < n: find the minimum norm solution of an underdetermined system A * X = B.
  2. If TRANS = 'C' and m >= n: find the minimum norm solution of an underdetermined system A**T * X = B.
  3. If TRANS = 'C' 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;
    • = 'C': the linear system involves A**H.
  • 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 COMPLEX array, dimension (LDA,N). 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 CGEQRT;
    • if M < N, A is overwritten by details of its LQ factorization as returned by CGELQT.
  • LDA โ€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • B โ€” B is COMPLEX 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 = 'C'. 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 modulus 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 = 'C' and m >= n, rows 1 to M of B contain the minimum norm solution vectors;
    • if TRANS = 'C' 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 the modulus of elements M+1 to N in that column.
  • LDB โ€” LDB is INTEGER. The leading dimension of the array B. LDB >= MAX(1,M,N).
  • WORK โ€” WORK is COMPLEX array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  • LWORK โ€” LWORK is INTEGER. The dimension of the array WORK. LWORK >= max( 1, MN + max( MN, NRHS ) ). For optimal performance, LWORK >= max( 1, (MN + max( MN, NRHS ))*NB ). where MN = min(M,N) and NB is the optimum block size.

If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.

  • 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 exactly 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.

๐Ÿซถ Contributors ๐Ÿซถ

November 2022, Igor Kozachenko, Computer Science Division, University of California, Berkeley

Definition at line 201 of file cgelst.f.


๐Ÿ’… dgelst ๐Ÿ’…

subroutine dgelst (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)

DGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q.

โœจ Purpose โœจ

DGELST 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 with compact WY representation of Q.

The vibe check: A is assumed to have full rank, and only a rudimentary protection against rank-deficient matrices is provided. This subroutine only detects exact rank-deficiency โ€” where a diagonal element of the triangular factor of A is exactly zero.

It is conceivable for one (or more) of the diagonal elements of the triangular factor of A to be subnormally tiny numbers without this subroutine signalling an error ๐Ÿ˜ญ. The solutions computed for such almost-rank-deficient matrices may be less accurate due to a loss of numerical precision.

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 ||.
  1. If TRANS = 'N' and m < n: find the minimum norm solution of an underdetermined system A * X = B.
  2. If TRANS = 'T' and m >= n: find the minimum norm solution of an underdetermined system A**T * X = B.
  3. 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:
    • if M >= N, A is overwritten by details of its QR factorization as returned by DGEQRT;
    • if M < N, A is overwritten by details of its LQ factorization as returned by DGELQT.
  • LDA โ€” (and this is exactly where part 1 ends, bestie โ€” part 2 has the rest of LDA and the other parameter glow-ups ๐Ÿ’–)
  • LDA โ€” LDA is INTEGER, and itโ€™s literally just the leading dimension of the array A, bestie: LDA >= max(1,M). ๐Ÿ’…
  • B โ€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). On entry, itโ€™s the matrix 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.
  • LDB โ€” LDB is INTEGER, the leading dimension of the array B. Itโ€™s giving LDB >= MAX(1,M,N), periodt. ๐ŸŽ€
  • WORK โ€” WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. โœจ
  • LWORK โ€” LWORK is INTEGER, the dimension of the array WORK. So like:
    • LWORK >= max( 1, MN + max( MN, NRHS ) ).
    • For optimal performance, LWORK >= max( 1, (MN + max( MN, NRHS ))*NB ).
    • where MN = min(M,N) and NB is the optimum block size.
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. No cap. ๐Ÿซถ
  • INFO โ€” INFO is INTEGER, the vibe check:
    • = 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 exactly 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.

๐ŸŒŸ Contributors

November 2022, Igor Kozachenko, Computer Science Division, University of California, Berkeley.

Definition at line 201 of file dgelst.f.


๐Ÿงฎ sgelst

subroutine sgelst (character trans, integer m, integer n, integer nrhs,
    real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b,
    integer ldb, real, dimension( * ) work, integer lwork, integer info)

SGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q. Itโ€™s the REAL girlie of the family, and she ate. ๐Ÿ’œ

โœจ Purpose

SGELST 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 with compact WY representation of Q. Obsessed with the compact WY representation, honestly. ๐Ÿฆ‹

It is assumed that A has full rank, and only a rudimentary protection against rank-deficient matrices is provided. This subroutine only detects exact rank-deficiency, where a diagonal element of the triangular factor of A is exactly zero. ๐Ÿซ 

It is conceivable for one (or more) of the diagonal elements of the triangular factor of A to be subnormally tiny numbers without this subroutine signalling an error. The solutions computed for such almost-rank-deficient matrices may be less accurate due to a loss of numerical precision. So like, keep an eye on that, bestie. ๐Ÿ‘€

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. Main character energy for matrices, fr fr. ๐Ÿ‘‘

๐ŸŽ€ 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 REAL array, dimension (LDA,N). 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 SGEQRT;
    • if M < N, A is overwritten by details of its LQ factorization as returned by SGELQT.
  • LDA โ€” LDA is INTEGER, the leading dimension of the array A. LDA >= max(1,M). Slay. ๐Ÿ’…
  • B โ€” B is REAL 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; 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.
  • LDB โ€” LDB is INTEGER, the leading dimension of the array B. LDB >= MAX(1,M,N). โœจ
  • WORK โ€” WORK is REAL array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ๐ŸŽ€
  • LWORK โ€” LWORK is INTEGER, the dimension of the array WORK.
    • LWORK >= max( 1, MN + max( MN, NRHS ) ).
    • For optimal performance, LWORK >= max( 1, (MN + max( MN, NRHS ))*NB ).
    • where MN = min(M,N) and NB is the optimum block size.
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. ๐Ÿซถ
  • 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 exactly 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.

๐ŸŒŸ Contributors

November 2022, Igor Kozachenko, Computer Science Division, University of California, Berkeley.

Definition at line 201 of file sgelst.f.


๐Ÿงš zgelst

subroutine zgelst (character trans, integer m, integer n, integer nrhs,
    complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(
    ldb, * ) b, integer ldb, complex*16, dimension( * ) work, integer lwork,
    integer info)

ZGELST solves overdetermined or underdetermined systems for GE matrices using QR or LQ factorization with compact WY representation of Q. Complex edition, iconic behavior only. ๐ŸŒˆ

โœจ Purpose

okay so the actual ZGELST tea is serving linear algebra realness โ€” no cap. โœจ

ZGELST solves overdetermined or underdetermined real linear systems involving an M-by-N matrix A, or its conjugate-transpose, using a QR or LQ factorization of A with compact WY representation of Q. ๐Ÿซถ

โš ๏ธ Rank tea, listen up: it is assumed that A has full rank, and only a rudimentary protection against rank-deficient matrices is provided. This subroutine only detects exact rank-deficiency, where a diagonal element of the triangular factor of A is exactly zero. ๐Ÿ˜ญ
Also: it is conceivable for one (or more) of the diagonal elements of the triangular factor of A to be subnormally tiny numbers without this subroutine signalling an error. The solutions computed for such almost-rank-deficient matrices may be less accurate due to a loss of numerical precision. ๐Ÿ’€

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 = 'C' and m >= n: find the minimum norm solution of an underdetermined system A**T * X = B. ๐Ÿฆ‹
  4. If TRANS = 'C' 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;
    • = 'C': the linear system involves A**H.
  • 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 COMPLEX*16 array, dimension (LDA,N).
    • 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 ZGEQRT;
      • if M < N, A is overwritten by details of its LQ factorization as returned by ZGELQT.
  • LDA โ€” LDA is INTEGER โ€” the leading dimension of the array A. LDA >= max(1,M). โญ
  • B โ€” B is COMPLEX*16 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 = 'C'.
    • 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 modulus 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 = 'C' and m >= n, rows 1 to M of B contain the minimum norm solution vectors;
      • if TRANS = 'C' 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 the modulus of elements M+1 to N in that column.
  • LDB โ€” LDB is INTEGER โ€” the leading dimension of the array B. LDB >= MAX(1,M,N). ๐Ÿ’–
  • WORK โ€” WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ๐Ÿซถ
  • LWORK โ€” LWORK is INTEGER โ€” the dimension of the array WORK.
    • LWORK >= max( 1, MN + max( MN, NRHS ) ).
    • For optimal performance, LWORK >= max( 1, (MN + max( MN, NRHS ))*NB ).
    • where MN = min(M,N) and NB is the optimum block size.
    • If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
  • 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 exactly 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.

Contributors: ๐Ÿซถ

November 2022, Igor Kozachenko, Computer Science Division, University of California, Berkeley.

Definition at line 201 of file zgelst.f. ๐Ÿ‘‘

Author (the generated one) ๐Ÿค–

Generated automatically by Doxygen for LAPACK from the source code.


that's the whole vibe bestie โ€” this page is from LAPACK Version 3.12.0, specifically gelst(3). periodt. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from