Purpose
=======
DLABRD reduces the first NB rows and columns of a real general
m by n matrix A to upper or lower bidiagonal form by an orthogonal
transformation Q' * A * P, and returns the matrices X and Y which
are needed to apply the transformation to the unreduced part of A.
If m .GE. n, A is reduced to upper bidiagonal form; if m .LT. n, to lower
bidiagonal form.
This is an auxiliary routine called by DGEBRD
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,
int NB,
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[] X,
int offset_x,
int LDX,
ref double[] Y,
int offset_y,
int LDY
)
Public Sub Run (
M As Integer,
N As Integer,
NB 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 X As Double(),
offset_x As Integer,
LDX As Integer,
ByRef Y As Double(),
offset_y As Integer,
LDY As Integer
)
Request Example
View SourceParameters
- M Int32
-
(input) INTEGER
The number of rows in the matrix A.
- N Int32
-
(input) INTEGER
The number of columns in the matrix A.
- NB Int32
-
(input) INTEGER
The number of leading rows and columns of A to be reduced.
- A Double
-
(input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the m by n general matrix to be reduced.
On exit, the first NB rows and columns of the matrix are
overwritten; the rest of the array is unchanged.
If m .GE. n, elements on and below the diagonal in the first NB
columns, with the array TAUQ, represent the orthogonal
matrix Q as a product of elementary reflectors; and
elements above the diagonal in the first NB rows, with the
array TAUP, represent the orthogonal matrix P as a product
of elementary reflectors.
If m .LT. n, elements below the diagonal in the first NB
columns, with the array TAUQ, represent the orthogonal
matrix Q as a product of elementary reflectors, and
elements on and above the diagonal in the first NB rows,
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 (NB)
The diagonal elements of the first NB rows and columns of
the reduced matrix. D(i) = A(i,i).
- offset_d Int32
-
- E Double
-
(output) DOUBLE PRECISION array, dimension (NB)
The off-diagonal elements of the first NB rows and columns of
the reduced matrix.
- offset_e Int32
-
- TAUQ Double
-
(output) DOUBLE PRECISION array dimension (NB)
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 (NB)
The scalar factors of the elementary reflectors which
represent the orthogonal matrix P. See Further Details.
- offset_taup Int32
-
- X Double
-
(output) DOUBLE PRECISION array, dimension (LDX,NB)
The m-by-nb matrix X required to update the unreduced part
of A.
- offset_x Int32
-
- LDX Int32
-
(input) INTEGER
The leading dimension of the array X. LDX .GE. M.
- Y Double
-
(output) DOUBLE PRECISION array, dimension (LDY,NB)
The n-by-nb matrix Y required to update the unreduced part
of A.
- offset_y Int32
-
- LDY Int32
-
(input) INTEGER
The leading dimension of the array Y. LDY .GE. N.
See Also