MCPcopy Create free account
hub / github.com/numpy/numpy / dlasd1_

Function dlasd1_

numpy/linalg/lapack_lite/f2c_d_lapack.c:24372–24630  ·  view source on GitHub ↗

Subroutine */

Source from the content-addressed store, hash-verified

24370} /* dlasd0_ */
24371
24372/* Subroutine */ int dlasd1_(integer *nl, integer *nr, integer *sqre,
24373 doublereal *d__, doublereal *alpha, doublereal *beta, doublereal *u,
24374 integer *ldu, doublereal *vt, integer *ldvt, integer *idxq, integer *
24375 iwork, doublereal *work, integer *info)
24376{
24377 /* System generated locals */
24378 integer u_dim1, u_offset, vt_dim1, vt_offset, i__1;
24379 doublereal d__1, d__2;
24380
24381 /* Local variables */
24382 static integer i__, k, m, n, n1, n2, iq, iz, iu2, ldq, idx, ldu2, ivt2,
24383 idxc, idxp, ldvt2;
24384 extern /* Subroutine */ int dlasd2_(integer *, integer *, integer *,
24385 integer *, doublereal *, doublereal *, doublereal *, doublereal *,
24386 doublereal *, integer *, doublereal *, integer *, doublereal *,
24387 doublereal *, integer *, doublereal *, integer *, integer *,
24388 integer *, integer *, integer *, integer *, integer *), dlasd3_(
24389 integer *, integer *, integer *, integer *, doublereal *,
24390 doublereal *, integer *, doublereal *, doublereal *, integer *,
24391 doublereal *, integer *, doublereal *, integer *, doublereal *,
24392 integer *, integer *, integer *, doublereal *, integer *),
24393 dlascl_(char *, integer *, integer *, doublereal *, doublereal *,
24394 integer *, integer *, doublereal *, integer *, integer *),
24395 dlamrg_(integer *, integer *, doublereal *, integer *, integer *,
24396 integer *);
24397 static integer isigma;
24398 extern /* Subroutine */ int xerbla_(char *, integer *);
24399 static doublereal orgnrm;
24400 static integer coltyp;
24401
24402
24403/*
24404 -- LAPACK auxiliary routine (version 3.2.2) --
24405 -- LAPACK is a software package provided by Univ. of Tennessee, --
24406 -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
24407 June 2010
24408
24409
24410 Purpose
24411 =======
24412
24413 DLASD1 computes the SVD of an upper bidiagonal N-by-M matrix B,
24414 where N = NL + NR + 1 and M = N + SQRE. DLASD1 is called from DLASD0.
24415
24416 A related subroutine DLASD7 handles the case in which the singular
24417 values (and the singular vectors in factored form) are desired.
24418
24419 DLASD1 computes the SVD as follows:
24420
24421 ( D1(in) 0 0 0 )
24422 B = U(in) * ( Z1' a Z2' b ) * VT(in)
24423 ( 0 0 D2(in) 0 )
24424
24425 = U(out) * ( D(out) 0) * VT(out)
24426
24427 where Z' = (Z1' a Z2' b) = u' VT', and u is a vector of dimension M
24428 with ALPHA and BETA in the NL+1 and NL+2 th entries and zeros
24429 elsewhere; and the entry b is empty if SQRE = 0.

Callers 1

dlasd0_Function · 0.85

Calls 6

absFunction · 0.85
dlascl_Function · 0.85
dlasd2_Function · 0.85
dlasd3_Function · 0.85
dlamrg_Function · 0.85
maxFunction · 0.50

Tested by

no test coverage detected