Click or drag to resize

DLASD0Run Method

Purpose ======= Using a divide and conquer approach, DLASD0 computes the singular value decomposition (SVD) of a real upper bidiagonal N-by-M matrix B with diagonal D and offdiagonal E, where M = N + SQRE. The algorithm computes orthogonal matrices U and VT such that B = U * S * VT. The singular values S are overwritten on D. A related subroutine, DLASDA, computes only the singular values, and optionally, the singular vectors in compact form.

Namespace: DotNumerics.LinearAlgebra.CSLapack
Assembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax
public void Run(
	int N,
	int SQRE,
	ref double[] D,
	int offset_d,
	ref double[] E,
	int offset_e,
	ref double[] U,
	int offset_u,
	int LDU,
	ref double[] VT,
	int offset_vt,
	int LDVT,
	int SMLSIZ,
	ref int[] IWORK,
	int offset_iwork,
	ref double[] WORK,
	int offset_work,
	ref int INFO
)
Request Example View Source

Parameters

N  Int32
(input) INTEGER On entry, the row dimension of the upper bidiagonal matrix. This is also the dimension of the main diagonal array D.
SQRE  Int32
(input) INTEGER Specifies the column dimension of the bidiagonal matrix. = 0: The bidiagonal matrix has column dimension M = N; = 1: The bidiagonal matrix has column dimension M = N+1;
D  Double
(input/output) DOUBLE PRECISION array, dimension (N) On entry D contains the main diagonal of the bidiagonal matrix. On exit D, if INFO = 0, contains its singular values.
offset_d  Int32
 
E  Double
(input) DOUBLE PRECISION array, dimension (M-1) Contains the subdiagonal entries of the bidiagonal matrix. On exit, E has been destroyed.
offset_e  Int32
 
U  Double
(output) DOUBLE PRECISION array, dimension at least (LDQ, N) On exit, U contains the left singular vectors.
offset_u  Int32
 
LDU  Int32
(input) INTEGER On entry, leading dimension of U.
VT  Double
(output) DOUBLE PRECISION array, dimension at least (LDVT, M) On exit, VT' contains the right singular vectors.
offset_vt  Int32
 
LDVT  Int32
(input) INTEGER On entry, leading dimension of VT.
SMLSIZ  Int32
(input) INTEGER On entry, maximum size of the subproblems at the bottom of the computation tree.
IWORK  Int32
(workspace) INTEGER work array. Dimension must be at least (8 * N)
offset_iwork  Int32
 
WORK  Double
(workspace) DOUBLE PRECISION work array. Dimension must be at least (3 * M**2 + 2 * M)
offset_work  Int32
 
INFO  Int32
(output) INTEGER = 0: successful exit. .LT. 0: if INFO = -i, the i-th argument had an illegal value. .GT. 0: if INFO = 1, an singular value did not converge
See Also