laqp2rk#

Functions

void slaqp2rk(
    const INT           m,
    const INT           n,
    const INT           nrhs,
    const INT           ioffset,
          INT           kmax,
    const f32           abstol,
    const f32           reltol,
    const INT           kp1,
    const f32           maxc2nrm,
          f32* restrict A,
    const INT           lda,
          INT*          K,
          f32*          maxc2nrmk,
          f32*          relmaxc2nrmk,
          INT* restrict jpiv,
          f32* restrict tau,
          f32* restrict vn1,
          f32* restrict vn2,
          f32* restrict work,
          INT*          info
);
void slaqp2rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT kmax, const f32 abstol, const f32 reltol, const INT kp1, const f32 maxc2nrm, f32 *restrict A, const INT lda, INT *K, f32 *maxc2nrmk, f32 *relmaxc2nrmk, INT *restrict jpiv, f32 *restrict tau, f32 *restrict vn1, f32 *restrict vn2, f32 *restrict work, INT *info)#

SLAQP2RK computes a truncated (rank K) or full rank Householder QR factorization with column pivoting of a real matrix block A(IOFFSET+1:M,1:N) as.

A * P(K) = Q(K) * R(K).

The routine uses Level 2 BLAS.

Parameters

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
ioffset

The number of rows that must be pivoted but not factorized.

in
kmax

The maximum number of columns to factorize. kmax >= 0.

in
abstol

The absolute tolerance for maximum column 2-norm.

in
reltol

The relative tolerance for maximum column 2-norm.

in
kp1

The index of the column with the maximum 2-norm (0-based).

in
maxc2nrm

The maximum column 2-norm of the original matrix.

inout
A

Double precision array, dimension (lda, n+nrhs).

in
lda

The leading dimension of the array A. lda >= max(1, m).

out
K

The factorization rank.

out
maxc2nrmk

The maximum column 2-norm of the residual matrix.

out
relmaxc2nrmk

The ratio maxc2nrmk / maxc2nrm.

out
jpiv

Integer array, dimension (n). Column pivot indices.

out
tau

Double precision array, dimension (min(m-ioffset, n)).

inout
vn1

Double precision array, dimension (n). Partial column norms.

inout
vn2

Double precision array, dimension (n). Exact column norms.

out
work

Double precision array, dimension (n-1).

out
info

  • = 0: successful exit

  • = j (1 <= j <= n): NaN detected in column j

  • = j (n+1 <= j <= 2*n): Inf detected in column j-n

Functions

void dlaqp2rk(
    const INT           m,
    const INT           n,
    const INT           nrhs,
    const INT           ioffset,
          INT           kmax,
    const f64           abstol,
    const f64           reltol,
    const INT           kp1,
    const f64           maxc2nrm,
          f64* restrict A,
    const INT           lda,
          INT*          K,
          f64*          maxc2nrmk,
          f64*          relmaxc2nrmk,
          INT* restrict jpiv,
          f64* restrict tau,
          f64* restrict vn1,
          f64* restrict vn2,
          f64* restrict work,
          INT*          info
);
void dlaqp2rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT kmax, const f64 abstol, const f64 reltol, const INT kp1, const f64 maxc2nrm, f64 *restrict A, const INT lda, INT *K, f64 *maxc2nrmk, f64 *relmaxc2nrmk, INT *restrict jpiv, f64 *restrict tau, f64 *restrict vn1, f64 *restrict vn2, f64 *restrict work, INT *info)#

DLAQP2RK computes a truncated (rank K) or full rank Householder QR factorization with column pivoting of a real matrix block A(IOFFSET+1:M,1:N) as.

A * P(K) = Q(K) * R(K).

The routine uses Level 2 BLAS.

Parameters

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
ioffset

The number of rows that must be pivoted but not factorized.

in
kmax

The maximum number of columns to factorize. kmax >= 0.

in
abstol

The absolute tolerance for maximum column 2-norm.

in
reltol

The relative tolerance for maximum column 2-norm.

in
kp1

The index of the column with the maximum 2-norm (0-based).

in
maxc2nrm

The maximum column 2-norm of the original matrix.

inout
A

Double precision array, dimension (lda, n+nrhs).

in
lda

The leading dimension of the array A. lda >= max(1, m).

out
K

The factorization rank.

out
maxc2nrmk

The maximum column 2-norm of the residual matrix.

out
relmaxc2nrmk

The ratio maxc2nrmk / maxc2nrm.

out
jpiv

Integer array, dimension (n). Column pivot indices.

out
tau

Double precision array, dimension (min(m-ioffset, n)).

inout
vn1

Double precision array, dimension (n). Partial column norms.

inout
vn2

Double precision array, dimension (n). Exact column norms.

out
work

Double precision array, dimension (n-1).

out
info

  • = 0: successful exit

  • = j (1 <= j <= n): NaN detected in column j

  • = j (n+1 <= j <= 2*n): Inf detected in column j-n

Functions

void claqp2rk(
    const INT           m,
    const INT           n,
    const INT           nrhs,
    const INT           ioffset,
          INT           kmax,
    const f32           abstol,
    const f32           reltol,
    const INT           kp1,
    const f32           maxc2nrm,
          c64* restrict A,
    const INT           lda,
          INT*          K,
          f32*          maxc2nrmk,
          f32*          relmaxc2nrmk,
          INT* restrict jpiv,
          c64* restrict tau,
          f32* restrict vn1,
          f32* restrict vn2,
          c64* restrict work,
          INT*          info
);
void claqp2rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT kmax, const f32 abstol, const f32 reltol, const INT kp1, const f32 maxc2nrm, c64 *restrict A, const INT lda, INT *K, f32 *maxc2nrmk, f32 *relmaxc2nrmk, INT *restrict jpiv, c64 *restrict tau, f32 *restrict vn1, f32 *restrict vn2, c64 *restrict work, INT *info)#

CLAQP2RK computes a truncated (rank K) or full rank Householder QR factorization with column pivoting of a complex matrix block A(IOFFSET+1:M,1:N) as.

A * P(K) = Q(K) * R(K).

The routine uses Level 2 BLAS.

Parameters

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
ioffset

The number of rows that must be pivoted but not factorized.

in
kmax

The maximum number of columns to factorize. kmax >= 0.

in
abstol

The absolute tolerance for maximum column 2-norm.

in
reltol

The relative tolerance for maximum column 2-norm.

in
kp1

The index of the column with the maximum 2-norm (0-based).

in
maxc2nrm

The maximum column 2-norm of the original matrix.

inout
A

Complex*16 array, dimension (lda, n+nrhs).

in
lda

The leading dimension of the array A. lda >= max(1, m).

out
K

The factorization rank.

out
maxc2nrmk

The maximum column 2-norm of the residual matrix.

out
relmaxc2nrmk

The ratio maxc2nrmk / maxc2nrm.

out
jpiv

Integer array, dimension (n). Column pivot indices.

out
tau

Complex*16 array, dimension (min(m-ioffset, n)).

inout
vn1

Single precision array, dimension (n). Partial column norms.

inout
vn2

Single precision array, dimension (n). Exact column norms.

out
work

Complex*16 array, dimension (n-1).

out
info

  • = 0: successful exit

  • = j (1 <= j <= n): NaN detected in column j

  • = j (n+1 <= j <= 2*n): Inf detected in column j-n

Functions

void zlaqp2rk(
    const INT            m,
    const INT            n,
    const INT            nrhs,
    const INT            ioffset,
          INT            kmax,
    const f64            abstol,
    const f64            reltol,
    const INT            kp1,
    const f64            maxc2nrm,
          c128* restrict A,
    const INT            lda,
          INT*           K,
          f64*           maxc2nrmk,
          f64*           relmaxc2nrmk,
          INT*  restrict jpiv,
          c128* restrict tau,
          f64*  restrict vn1,
          f64*  restrict vn2,
          c128* restrict work,
          INT*           info
);
void zlaqp2rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT kmax, const f64 abstol, const f64 reltol, const INT kp1, const f64 maxc2nrm, c128 *restrict A, const INT lda, INT *K, f64 *maxc2nrmk, f64 *relmaxc2nrmk, INT *restrict jpiv, c128 *restrict tau, f64 *restrict vn1, f64 *restrict vn2, c128 *restrict work, INT *info)#

ZLAQP2RK computes a truncated (rank K) or full rank Householder QR factorization with column pivoting of a complex matrix block A(IOFFSET+1:M,1:N) as.

A * P(K) = Q(K) * R(K).

The routine uses Level 2 BLAS.

Parameters

in
m

The number of rows of the matrix A. m >= 0.

in
n

The number of columns of the matrix A. n >= 0.

in
nrhs

The number of right hand sides. nrhs >= 0.

in
ioffset

The number of rows that must be pivoted but not factorized.

in
kmax

The maximum number of columns to factorize. kmax >= 0.

in
abstol

The absolute tolerance for maximum column 2-norm.

in
reltol

The relative tolerance for maximum column 2-norm.

in
kp1

The index of the column with the maximum 2-norm (0-based).

in
maxc2nrm

The maximum column 2-norm of the original matrix.

inout
A

Complex*16 array, dimension (lda, n+nrhs).

in
lda

The leading dimension of the array A. lda >= max(1, m).

out
K

The factorization rank.

out
maxc2nrmk

The maximum column 2-norm of the residual matrix.

out
relmaxc2nrmk

The ratio maxc2nrmk / maxc2nrm.

out
jpiv

Integer array, dimension (n). Column pivot indices.

out
tau

Complex*16 array, dimension (min(m-ioffset, n)).

inout
vn1

Double precision array, dimension (n). Partial column norms.

inout
vn2

Double precision array, dimension (n). Exact column norms.

out
work

Complex*16 array, dimension (n-1).

out
info

  • = 0: successful exit

  • = j (1 <= j <= n): NaN detected in column j

  • = j (n+1 <= j <= 2*n): Inf detected in column j-n