Purpose
=======
DLATRD reduces NB rows and columns of a real symmetric matrix A to
symmetric tridiagonal form by an orthogonal similarity
transformation Q' * A * Q, and returns the matrices V and W which are
needed to apply the transformation to the unreduced part of A.
If UPLO = 'U', DLATRD reduces the last NB rows and columns of a
matrix, of which the upper triangle is supplied;
if UPLO = 'L', DLATRD reduces the first NB rows and columns of a
matrix, of which the lower triangle is supplied.
This is an auxiliary routine called by DSYTRD.
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(
string UPLO,
int N,
int NB,
ref double[] A,
int offset_a,
int LDA,
ref double[] E,
int offset_e,
ref double[] TAU,
int offset_tau,
ref double[] W,
int offset_w,
int LDW
)
Public Sub Run (
UPLO As String,
N As Integer,
NB As Integer,
ByRef A As Double(),
offset_a As Integer,
LDA As Integer,
ByRef E As Double(),
offset_e As Integer,
ByRef TAU As Double(),
offset_tau As Integer,
ByRef W As Double(),
offset_w As Integer,
LDW As Integer
)
Request Example
View SourceParameters
- UPLO String
-
(input) CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= 'U': Upper triangular
= 'L': Lower triangular
- N Int32
-
(input) INTEGER
The order of the matrix A.
- NB Int32
-
(input) INTEGER
The number of rows and columns to be reduced.
- A Double
-
(input/output) DOUBLE PRECISION array, dimension (LDA,N)
On entry, the symmetric matrix A. If UPLO = 'U', the leading
n-by-n upper triangular part of A contains the upper
triangular part of the matrix A, and the strictly lower
triangular part of A is not referenced. If UPLO = 'L', the
leading n-by-n lower triangular part of A contains the lower
triangular part of the matrix A, and the strictly upper
triangular part of A is not referenced.
On exit:
if UPLO = 'U', the last NB columns have been reduced to
tridiagonal form, with the diagonal elements overwriting
the diagonal elements of A; the elements above the diagonal
with the array TAU, represent the orthogonal matrix Q as a
product of elementary reflectors;
if UPLO = 'L', the first NB columns have been reduced to
tridiagonal form, with the diagonal elements overwriting
the diagonal elements of A; the elements below the diagonal
with the array TAU, represent the orthogonal matrix Q 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. (1,N).
- E Double
-
(output) DOUBLE PRECISION array, dimension (N-1)
If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal
elements of the last NB columns of the reduced matrix;
if UPLO = 'L', E(1:nb) contains the subdiagonal elements of
the first NB columns of the reduced matrix.
- offset_e Int32
-
- TAU Double
-
(output) DOUBLE PRECISION array, dimension (N-1)
The scalar factors of the elementary reflectors, stored in
TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
See Further Details.
- offset_tau Int32
-
- W Double
-
(output) DOUBLE PRECISION array, dimension (LDW,NB)
The n-by-nb matrix W required to update the unreduced part
of A.
- offset_w Int32
-
- LDW Int32
-
(input) INTEGER
The leading dimension of the array W. LDW .GE. max(1,N).
See Also