lasd3#
Functions
-
void slasd3(const INT nl, const INT nr, const INT sqre, const INT k, f32 *restrict D, f32 *restrict Q, const INT ldq, const f32 *restrict DSIGMA, f32 *restrict U, const INT ldu, const f32 *restrict U2, const INT ldu2, f32 *restrict VT, const INT ldvt, f32 *restrict VT2, const INT ldvt2, const INT *restrict IDXC, const INT *restrict CTOT, f32 *restrict Z, INT *info)#
SLASD3 finds all the square roots of the roots of the secular equation, as defined by the values in D and Z.
It makes the appropriate calls to SLASD4 and then updates the singular vectors by matrix multiplication.
SLASD3 is called from SLASD1.
Parameters
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.
inkSize of the secular equation. 1 <= k <= n.
outDArray of dimension k. Square roots of secular roots.
outQArray (ldq, k). Workspace.
inldqLeading dimension of Q. ldq >= k.
inDSIGMAArray of dimension k. Poles of secular equation.
outUArray (ldu, n). Left singular vectors.
inlduLeading dimension of U. ldu >= n.
inU2Array (ldu2, n). Non-deflated left singular vectors.
inldu2Leading dimension of U2. ldu2 >= n.
outVTArray (ldvt, m). Right singular vectors transposed.
inldvtLeading dimension of VT. ldvt >= m.
inoutVT2Array (ldvt2, n). Non-deflated right singular vectors.
inldvt2Leading dimension of VT2. ldvt2 >= m.
inIDXCInteger array of dimension n. Column permutation.
inCTOTInteger array of dimension 4. Column type counts.
inoutZArray of dimension k. Deflation-adjusted updating row.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void slasd3(
const INT nl,
const INT nr,
const INT sqre,
const INT k,
f32* restrict D,
f32* restrict Q,
const INT ldq,
const f32* restrict DSIGMA,
f32* restrict U,
const INT ldu,
const f32* restrict U2,
const INT ldu2,
f32* restrict VT,
const INT ldvt,
f32* restrict VT2,
const INT ldvt2,
const INT* restrict IDXC,
const INT* restrict CTOT,
f32* restrict Z,
INT* info
);
Functions
-
void dlasd3(const INT nl, const INT nr, const INT sqre, const INT k, f64 *restrict D, f64 *restrict Q, const INT ldq, const f64 *restrict DSIGMA, f64 *restrict U, const INT ldu, const f64 *restrict U2, const INT ldu2, f64 *restrict VT, const INT ldvt, f64 *restrict VT2, const INT ldvt2, const INT *restrict IDXC, const INT *restrict CTOT, f64 *restrict Z, INT *info)#
DLASD3 finds all the square roots of the roots of the secular equation, as defined by the values in D and Z.
It makes the appropriate calls to DLASD4 and then updates the singular vectors by matrix multiplication.
DLASD3 is called from DLASD1.
Parameters
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.
inkSize of the secular equation. 1 <= k <= n.
outDArray of dimension k. Square roots of secular roots.
outQArray (ldq, k). Workspace.
inldqLeading dimension of Q. ldq >= k.
inDSIGMAArray of dimension k. Poles of secular equation.
outUArray (ldu, n). Left singular vectors.
inlduLeading dimension of U. ldu >= n.
inU2Array (ldu2, n). Non-deflated left singular vectors.
inldu2Leading dimension of U2. ldu2 >= n.
outVTArray (ldvt, m). Right singular vectors transposed.
inldvtLeading dimension of VT. ldvt >= m.
inoutVT2Array (ldvt2, n). Non-deflated right singular vectors.
inldvt2Leading dimension of VT2. ldvt2 >= m.
inIDXCInteger array of dimension n. Column permutation.
inCTOTInteger array of dimension 4. Column type counts.
inoutZArray of dimension k. Deflation-adjusted updating row.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void dlasd3(
const INT nl,
const INT nr,
const INT sqre,
const INT k,
f64* restrict D,
f64* restrict Q,
const INT ldq,
const f64* restrict DSIGMA,
f64* restrict U,
const INT ldu,
const f64* restrict U2,
const INT ldu2,
f64* restrict VT,
const INT ldvt,
f64* restrict VT2,
const INT ldvt2,
const INT* restrict IDXC,
const INT* restrict CTOT,
f64* restrict Z,
INT* info
);