lasd6#
Functions
-
void slasd6(const INT icompq, const INT nl, const INT nr, const INT sqre, f32 *restrict D, f32 *restrict VF, f32 *restrict VL, f32 *alpha, f32 *beta, INT *restrict IDXQ, INT *restrict PERM, INT *givptr, INT *restrict GIVCOL, const INT ldgcol, f32 *restrict GIVNUM, const INT ldgnum, f32 *restrict POLES, f32 *restrict DIFL, f32 *restrict DIFR, f32 *restrict Z, INT *k, f32 *c, f32 *s, f32 *restrict work, INT *restrict IWORK, INT *info)#
SLASD6 computes the SVD of an updated upper bidiagonal matrix B obtained by merging two smaller ones by appending a row.
This routine is used only for the problem which requires all singular values and optionally singular vector matrices in factored form.
SLASD6 is called from SLASDA.
Parameters
inicompq= 0: Compute singular values only. = 1: Compute singular vectors in factored form.
innlRow dimension of upper block. nl >= 1.
innrRow dimension of lower block. nr >= 1.
insqre= 0: lower block is nr-by-nr square. = 1: lower block is nr-by-(nr+1) rectangular.
inoutDArray of dimension n. Singular values.
inoutVFArray of dimension m. First components of right SVs.
inoutVLArray of dimension m. Last components of right SVs.
inoutalphaDiagonal element of added row.
inoutbetaOff-diagonal element of added row.
inoutIDXQInteger array of dimension n. Sorting permutation.
outPERMInteger array of dimension n. Permutation output.
outgivptrNumber of Givens rotations.
outGIVCOLInteger array (ldgcol, 2). Givens columns.
inldgcolLeading dimension of GIVCOL. ldgcol >= n.
outGIVNUMDouble array (ldgnum, 2). Givens values.
inldgnumLeading dimension of GIVNUM and POLES. ldgnum >= n.
outPOLESDouble array (ldgnum, 2). New and old singular values.
outDIFLDouble array of dimension n. Distances.
outDIFRDouble array. Distances and normalizing factors.
outZDouble array of dimension m. Deflation-adjusted row.
outkDimension of non-deflated matrix. 1 <= k <= n.
outcC-value of Givens rotation.
outsS-value of Givens rotation.
outworkDouble array of dimension 4*m.
outIWORKInteger array of dimension 3*n.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void slasd6(
const INT icompq,
const INT nl,
const INT nr,
const INT sqre,
f32* restrict D,
f32* restrict VF,
f32* restrict VL,
f32* alpha,
f32* beta,
INT* restrict IDXQ,
INT* restrict PERM,
INT* givptr,
INT* restrict GIVCOL,
const INT ldgcol,
f32* restrict GIVNUM,
const INT ldgnum,
f32* restrict POLES,
f32* restrict DIFL,
f32* restrict DIFR,
f32* restrict Z,
INT* k,
f32* c,
f32* s,
f32* restrict work,
INT* restrict IWORK,
INT* info
);
Functions
-
void dlasd6(const INT icompq, const INT nl, const INT nr, const INT sqre, f64 *restrict D, f64 *restrict VF, f64 *restrict VL, f64 *alpha, f64 *beta, INT *restrict IDXQ, INT *restrict PERM, INT *givptr, INT *restrict GIVCOL, const INT ldgcol, f64 *restrict GIVNUM, const INT ldgnum, f64 *restrict POLES, f64 *restrict DIFL, f64 *restrict DIFR, f64 *restrict Z, INT *k, f64 *c, f64 *s, f64 *restrict work, INT *restrict IWORK, INT *info)#
DLASD6 computes the SVD of an updated upper bidiagonal matrix B obtained by merging two smaller ones by appending a row.
This routine is used only for the problem which requires all singular values and optionally singular vector matrices in factored form.
DLASD6 is called from DLASDA.
Parameters
inicompq= 0: Compute singular values only. = 1: Compute singular vectors in factored form.
innlRow dimension of upper block. nl >= 1.
innrRow dimension of lower block. nr >= 1.
insqre= 0: lower block is nr-by-nr square. = 1: lower block is nr-by-(nr+1) rectangular.
inoutDArray of dimension n. Singular values.
inoutVFArray of dimension m. First components of right SVs.
inoutVLArray of dimension m. Last components of right SVs.
inoutalphaDiagonal element of added row.
inoutbetaOff-diagonal element of added row.
inoutIDXQInteger array of dimension n. Sorting permutation.
outPERMInteger array of dimension n. Permutation output.
outgivptrNumber of Givens rotations.
outGIVCOLInteger array (ldgcol, 2). Givens columns.
inldgcolLeading dimension of GIVCOL. ldgcol >= n.
outGIVNUMDouble array (ldgnum, 2). Givens values.
inldgnumLeading dimension of GIVNUM and POLES. ldgnum >= n.
outPOLESDouble array (ldgnum, 2). New and old singular values.
outDIFLDouble array of dimension n. Distances.
outDIFRDouble array. Distances and normalizing factors.
outZDouble array of dimension m. Deflation-adjusted row.
outkDimension of non-deflated matrix. 1 <= k <= n.
outcC-value of Givens rotation.
outsS-value of Givens rotation.
outworkDouble array of dimension 4*m.
outIWORKInteger array of dimension 3*n.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void dlasd6(
const INT icompq,
const INT nl,
const INT nr,
const INT sqre,
f64* restrict D,
f64* restrict VF,
f64* restrict VL,
f64* alpha,
f64* beta,
INT* restrict IDXQ,
INT* restrict PERM,
INT* givptr,
INT* restrict GIVCOL,
const INT ldgcol,
f64* restrict GIVNUM,
const INT ldgnum,
f64* restrict POLES,
f64* restrict DIFL,
f64* restrict DIFR,
f64* restrict Z,
INT* k,
f64* c,
f64* s,
f64* restrict work,
INT* restrict IWORK,
INT* info
);