Purpose
=======
DGEBD2 reduces a real general m by n matrix A to upper or lower
bidiagonal form B by an orthogonal transformation: Q' * A * P = B.
If m .GE. n, B is upper bidiagonal; if m .LT. n, B is lower bidiagonal.
Namespace: DotNumerics.LinearAlgebra.CSLapackAssembly: DWSIM.MathOps.DotNumerics (in DWSIM.MathOps.DotNumerics.dll) Version: 1.0.0.0 (1.0.0.0)
Syntax public void Run(
int M,
int N,
ref double[] A,
int offset_a,
int LDA,
ref double[] D,
int offset_d,
ref double[] E,
int offset_e,
ref double[] TAUQ,
int offset_tauq,
ref double[] TAUP,
int offset_taup,
ref double[] WORK,
int offset_work,
ref int INFO
)
Public Sub Run (
M As Integer,
N As Integer,
ByRef A As Double(),
offset_a As Integer,
LDA As Integer,
ByRef D As Double(),
offset_d As Integer,
ByRef E As Double(),
offset_e As Integer,
ByRef TAUQ As Double(),
offset_tauq As Integer,
ByRef TAUP As Double(),
offset_taup As Integer,
ByRef WORK As Double(),
offset_work As Integer,
ByRef INFO As Integer
)
Request Example
View SourceParameters
- M Int32
-
(input) INTEGER
The number of rows in the matrix A. M .GE. 0.
- N Int32
-
(input) INTEGER
The number of columns in the matrix A. N .GE. 0.
- A Double
-
(input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the m by n general matrix to be reduced.
On exit,
if m .GE. n, the diagonal and the first superdiagonal are
overwritten with the upper bidiagonal matrix B; the
elements below the diagonal, with the array TAUQ, represent
the orthogonal matrix Q as a product of elementary
reflectors, and the elements above the first superdiagonal,
with the array TAUP, represent the orthogonal matrix P as
a product of elementary reflectors;
if m .LT. n, the diagonal and the first subdiagonal are
overwritten with the lower bidiagonal matrix B; the
elements below the first subdiagonal, with the array TAUQ,
represent the orthogonal matrix Q as a product of
elementary reflectors, and the elements above the diagonal,
with the array TAUP, represent the orthogonal matrix P as
a product of elementary reflectors.
See Further Details.
- offset_a Int32
-
- LDA Int32
-
(input) INTEGER
The leading dimension of the array A. LDA .GE. max(1,M).
- D Double
-
(output) DOUBLE PRECISION array, dimension (min(M,N))
The diagonal elements of the bidiagonal matrix B:
D(i) = A(i,i).
- offset_d Int32
-
- E Double
-
(output) DOUBLE PRECISION array, dimension (min(M,N)-1)
The off-diagonal elements of the bidiagonal matrix B:
if m .GE. n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
if m .LT. n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
- offset_e Int32
-
- TAUQ Double
-
(output) DOUBLE PRECISION array dimension (min(M,N))
The scalar factors of the elementary reflectors which
represent the orthogonal matrix Q. See Further Details.
- offset_tauq Int32
-
- TAUP Double
-
(output) DOUBLE PRECISION array, dimension (min(M,N))
The scalar factors of the elementary reflectors which
represent the orthogonal matrix P. See Further Details.
- offset_taup Int32
-
- WORK Double
-
(workspace) DOUBLE PRECISION array, dimension (max(M,N))
- offset_work Int32
-
- INFO Int32
-
(output) INTEGER
= 0: successful exit.
.LT. 0: if INFO = -i, the i-th argument had an illegal value.
See Also