laqp3rk#
Functions
-
void slaqp3rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT *nb, const f32 abstol, const f32 reltol, const INT kp1, const f32 maxc2nrm, f32 *restrict A, const INT lda, INT *done, INT *KB, f32 *maxc2nrmk, f32 *relmaxc2nrmk, INT *restrict jpiv, f32 *restrict tau, f32 *restrict vn1, f32 *restrict vn2, f32 *restrict auxv, f32 *restrict F, const INT ldf, INT *restrict iwork, INT *info)#
SLAQP3RK computes a step of truncated QR factorization with column pivoting of a real M-by-N matrix block A(IOFFSET+1:M,1:N) by using Level 3 BLAS as.
A * P(KB) = Q(KB) * R(KB).
The routine tries to factorize NB columns from A starting from the row IOFFSET+1 and updates the residual matrix with BLAS 3 xGEMM. The number of actually factorized columns is returned is smaller than NB.
Block A(1:IOFFSET,1:N) is accordingly pivoted, but not factorized.
The routine also overwrites the right-hand-sides B matrix stored in A(IOFFSET+1:M,N+1:N+NRHS) with Q(KB)**T * B.
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innrhsThe number of right hand sides. nrhs >= 0.
inioffsetThe number of rows that must be pivoted but not factorized.
inoutnbOn entry, the factorization block size. On exit, possibly reduced.
inabstolThe absolute tolerance for maximum column 2-norm.
inreltolThe relative tolerance for maximum column 2-norm.
inkp1The index of the column with the maximum 2-norm (0-based).
inmaxc2nrmThe maximum column 2-norm of the original matrix.
inoutADouble precision array, dimension (lda, n+nrhs).
inldaThe leading dimension of the array A. lda >= max(1, m).
outdone1 if factorization is complete, 0 otherwise.
outKBThe number of factorized columns.
outmaxc2nrmkThe maximum column 2-norm of the residual matrix.
outrelmaxc2nrmkThe ratio maxc2nrmk / maxc2nrm.
outjpivInteger array, dimension (n). Column pivot indices.
outtauDouble precision array, dimension (min(m-ioffset, n)).
inoutvn1Double precision array, dimension (n). Partial column norms.
inoutvn2Double precision array, dimension (n). Exact column norms.
outauxvDouble precision array, dimension (nb). Auxiliary vector.
outFDouble precision array, dimension (ldf, nb). Matrix F.
inldfThe leading dimension of the array F. ldf >= max(1, n+nrhs).
outiworkInteger array, dimension (n-1).
outinfo= 0: successful exit
= j (1 <= j <= n): NaN detected in column j
= j (n+1 <= j <= 2*n): Inf detected in column j-n
void slaqp3rk(
const INT m,
const INT n,
const INT nrhs,
const INT ioffset,
INT* nb,
const f32 abstol,
const f32 reltol,
const INT kp1,
const f32 maxc2nrm,
f32* restrict A,
const INT lda,
INT* done,
INT* KB,
f32* maxc2nrmk,
f32* relmaxc2nrmk,
INT* restrict jpiv,
f32* restrict tau,
f32* restrict vn1,
f32* restrict vn2,
f32* restrict auxv,
f32* restrict F,
const INT ldf,
INT* restrict iwork,
INT* info
);
Functions
-
void dlaqp3rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT *nb, const f64 abstol, const f64 reltol, const INT kp1, const f64 maxc2nrm, f64 *restrict A, const INT lda, INT *done, INT *KB, f64 *maxc2nrmk, f64 *relmaxc2nrmk, INT *restrict jpiv, f64 *restrict tau, f64 *restrict vn1, f64 *restrict vn2, f64 *restrict auxv, f64 *restrict F, const INT ldf, INT *restrict iwork, INT *info)#
DLAQP3RK computes a step of truncated QR factorization with column pivoting of a real M-by-N matrix block A(IOFFSET+1:M,1:N) by using Level 3 BLAS as.
A * P(KB) = Q(KB) * R(KB).
The routine tries to factorize NB columns from A starting from the row IOFFSET+1 and updates the residual matrix with BLAS 3 xGEMM. The number of actually factorized columns is returned is smaller than NB.
Block A(1:IOFFSET,1:N) is accordingly pivoted, but not factorized.
The routine also overwrites the right-hand-sides B matrix stored in A(IOFFSET+1:M,N+1:N+NRHS) with Q(KB)**T * B.
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innrhsThe number of right hand sides. nrhs >= 0.
inioffsetThe number of rows that must be pivoted but not factorized.
inoutnbOn entry, the factorization block size. On exit, possibly reduced.
inabstolThe absolute tolerance for maximum column 2-norm.
inreltolThe relative tolerance for maximum column 2-norm.
inkp1The index of the column with the maximum 2-norm (0-based).
inmaxc2nrmThe maximum column 2-norm of the original matrix.
inoutADouble precision array, dimension (lda, n+nrhs).
inldaThe leading dimension of the array A. lda >= max(1, m).
outdone1 if factorization is complete, 0 otherwise.
outKBThe number of factorized columns.
outmaxc2nrmkThe maximum column 2-norm of the residual matrix.
outrelmaxc2nrmkThe ratio maxc2nrmk / maxc2nrm.
outjpivInteger array, dimension (n). Column pivot indices.
outtauDouble precision array, dimension (min(m-ioffset, n)).
inoutvn1Double precision array, dimension (n). Partial column norms.
inoutvn2Double precision array, dimension (n). Exact column norms.
outauxvDouble precision array, dimension (nb). Auxiliary vector.
outFDouble precision array, dimension (ldf, nb). Matrix F.
inldfThe leading dimension of the array F. ldf >= max(1, n+nrhs).
outiworkInteger array, dimension (n-1).
outinfo= 0: successful exit
= j (1 <= j <= n): NaN detected in column j
= j (n+1 <= j <= 2*n): Inf detected in column j-n
void dlaqp3rk(
const INT m,
const INT n,
const INT nrhs,
const INT ioffset,
INT* nb,
const f64 abstol,
const f64 reltol,
const INT kp1,
const f64 maxc2nrm,
f64* restrict A,
const INT lda,
INT* done,
INT* KB,
f64* maxc2nrmk,
f64* relmaxc2nrmk,
INT* restrict jpiv,
f64* restrict tau,
f64* restrict vn1,
f64* restrict vn2,
f64* restrict auxv,
f64* restrict F,
const INT ldf,
INT* restrict iwork,
INT* info
);
Functions
-
void claqp3rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT *nb, const f32 abstol, const f32 reltol, const INT kp1, const f32 maxc2nrm, c64 *restrict A, const INT lda, INT *done, INT *KB, f32 *maxc2nrmk, f32 *relmaxc2nrmk, INT *restrict jpiv, c64 *restrict tau, f32 *restrict vn1, f32 *restrict vn2, c64 *restrict auxv, c64 *restrict F, const INT ldf, INT *restrict iwork, INT *info)#
CLAQP3RK computes a step of truncated QR factorization with column pivoting of a complex M-by-N matrix block A(IOFFSET+1:M,1:N) by using Level 3 BLAS as.
A * P(KB) = Q(KB) * R(KB).
The routine tries to factorize NB columns from A starting from the row IOFFSET+1 and updates the residual matrix with BLAS 3 xGEMM. The number of actually factorized columns is returned is smaller than NB.
Block A(1:IOFFSET,1:N) is accordingly pivoted, but not factorized.
The routine also overwrites the right-hand-sides B matrix stored in A(IOFFSET+1:M,N+1:N+NRHS) with Q(KB)**H * B.
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innrhsThe number of right hand sides. nrhs >= 0.
inioffsetThe number of rows that must be pivoted but not factorized.
inoutnbOn entry, the factorization block size. On exit, possibly reduced.
inabstolThe absolute tolerance for maximum column 2-norm.
inreltolThe relative tolerance for maximum column 2-norm.
inkp1The index of the column with the maximum 2-norm (0-based).
inmaxc2nrmThe maximum column 2-norm of the original matrix.
inoutAComplex*16 array, dimension (lda, n+nrhs).
inldaThe leading dimension of the array A. lda >= max(1, m).
outdone1 if factorization is complete, 0 otherwise.
outKBThe number of factorized columns.
outmaxc2nrmkThe maximum column 2-norm of the residual matrix.
outrelmaxc2nrmkThe ratio maxc2nrmk / maxc2nrm.
outjpivInteger array, dimension (n). Column pivot indices.
outtauComplex*16 array, dimension (min(m-ioffset, n)).
inoutvn1Single precision array, dimension (n). Partial column norms.
inoutvn2Single precision array, dimension (n). Exact column norms.
outauxvComplex*16 array, dimension (nb). Auxiliary vector.
outFComplex*16 array, dimension (ldf, nb). Matrix F.
inldfThe leading dimension of the array F. ldf >= max(1, n+nrhs).
outiworkInteger array, dimension (n-1).
outinfo= 0: successful exit
= j (1 <= j <= n): NaN detected in column j
= j (n+1 <= j <= 2*n): Inf detected in column j-n
void claqp3rk(
const INT m,
const INT n,
const INT nrhs,
const INT ioffset,
INT* nb,
const f32 abstol,
const f32 reltol,
const INT kp1,
const f32 maxc2nrm,
c64* restrict A,
const INT lda,
INT* done,
INT* KB,
f32* maxc2nrmk,
f32* relmaxc2nrmk,
INT* restrict jpiv,
c64* restrict tau,
f32* restrict vn1,
f32* restrict vn2,
c64* restrict auxv,
c64* restrict F,
const INT ldf,
INT* restrict iwork,
INT* info
);
Functions
-
void zlaqp3rk(const INT m, const INT n, const INT nrhs, const INT ioffset, INT *nb, const f64 abstol, const f64 reltol, const INT kp1, const f64 maxc2nrm, c128 *restrict A, const INT lda, INT *done, INT *KB, f64 *maxc2nrmk, f64 *relmaxc2nrmk, INT *restrict jpiv, c128 *restrict tau, f64 *restrict vn1, f64 *restrict vn2, c128 *restrict auxv, c128 *restrict F, const INT ldf, INT *restrict iwork, INT *info)#
ZLAQP3RK computes a step of truncated QR factorization with column pivoting of a complex M-by-N matrix block A(IOFFSET+1:M,1:N) by using Level 3 BLAS as.
A * P(KB) = Q(KB) * R(KB).
The routine tries to factorize NB columns from A starting from the row IOFFSET+1 and updates the residual matrix with BLAS 3 xGEMM. The number of actually factorized columns is returned is smaller than NB.
Block A(1:IOFFSET,1:N) is accordingly pivoted, but not factorized.
The routine also overwrites the right-hand-sides B matrix stored in A(IOFFSET+1:M,N+1:N+NRHS) with Q(KB)**H * B.
Parameters
inmThe number of rows of the matrix A. m >= 0.
innThe number of columns of the matrix A. n >= 0.
innrhsThe number of right hand sides. nrhs >= 0.
inioffsetThe number of rows that must be pivoted but not factorized.
inoutnbOn entry, the factorization block size. On exit, possibly reduced.
inabstolThe absolute tolerance for maximum column 2-norm.
inreltolThe relative tolerance for maximum column 2-norm.
inkp1The index of the column with the maximum 2-norm (0-based).
inmaxc2nrmThe maximum column 2-norm of the original matrix.
inoutAComplex*16 array, dimension (lda, n+nrhs).
inldaThe leading dimension of the array A. lda >= max(1, m).
outdone1 if factorization is complete, 0 otherwise.
outKBThe number of factorized columns.
outmaxc2nrmkThe maximum column 2-norm of the residual matrix.
outrelmaxc2nrmkThe ratio maxc2nrmk / maxc2nrm.
outjpivInteger array, dimension (n). Column pivot indices.
outtauComplex*16 array, dimension (min(m-ioffset, n)).
inoutvn1Double precision array, dimension (n). Partial column norms.
inoutvn2Double precision array, dimension (n). Exact column norms.
outauxvComplex*16 array, dimension (nb). Auxiliary vector.
outFComplex*16 array, dimension (ldf, nb). Matrix F.
inldfThe leading dimension of the array F. ldf >= max(1, n+nrhs).
outiworkInteger array, dimension (n-1).
outinfo= 0: successful exit
= j (1 <= j <= n): NaN detected in column j
= j (n+1 <= j <= 2*n): Inf detected in column j-n
void zlaqp3rk(
const INT m,
const INT n,
const INT nrhs,
const INT ioffset,
INT* nb,
const f64 abstol,
const f64 reltol,
const INT kp1,
const f64 maxc2nrm,
c128* restrict A,
const INT lda,
INT* done,
INT* KB,
f64* maxc2nrmk,
f64* relmaxc2nrmk,
INT* restrict jpiv,
c128* restrict tau,
f64* restrict vn1,
f64* restrict vn2,
c128* restrict auxv,
c128* restrict F,
const INT ldf,
INT* restrict iwork,
INT* info
);