Performs one of the matrix-vector operations
x := A*x, or x := AT*x,
where x is an n element vector and A is an n by n unit, or non-unit,
upper or lower triangular matrix.
Namespace: Extreme.Mathematics.Generic.LinearAlgebra.ImplementationAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
public override void TriangularMultiplyInPlace(
MatrixTriangle uplo,
TransposeOperation trans,
MatrixDiagonal diag,
int n,
Array2D<T> a,
ArraySlice<T> x
)
Public Overrides Sub TriangularMultiplyInPlace (
uplo As MatrixTriangle,
trans As TransposeOperation,
diag As MatrixDiagonal,
n As Integer,
a As Array2D(Of T),
x As ArraySlice(Of T)
)
public:
virtual void TriangularMultiplyInPlace(
MatrixTriangle uplo,
TransposeOperation trans,
MatrixDiagonal diag,
int n,
Array2D<T> a,
ArraySlice<T> x
) override
abstract TriangularMultiplyInPlace :
uplo : MatrixTriangle *
trans : TransposeOperation *
diag : MatrixDiagonal *
n : int *
a : Array2D<'T> *
x : ArraySlice<'T> -> unit
override TriangularMultiplyInPlace :
uplo : MatrixTriangle *
trans : TransposeOperation *
diag : MatrixDiagonal *
n : int *
a : Array2D<'T> *
x : ArraySlice<'T> -> unit
Parameters
- uplo
- Type: Extreme.MathematicsMatrixTriangle
On entry, UPLO specifies whether the matrix is an upper or
lower triangular matrix as follows:
UPLO = 'U' or 'u' A is an upper triangular matrix.
UPLO = 'L' or 'l' A is a lower triangular matrix.
- trans
- Type: Extreme.MathematicsTransposeOperation
On entry, TRANS specifies the operation to be performed as
follows:
TRANS = 'N' or 'n' x := A*x.
TRANS = 'T' or 't' x := AT*x.
TRANS = 'C' or 'c' x := AT*x.
- diag
- Type: Extreme.MathematicsMatrixDiagonal
On entry, DIAG specifies whether or not A is unit
triangular as follows:
DIAG = 'U' or 'u' A is assumed to be unit triangular.
DIAG = 'N' or 'n' A is not assumed to be unit
triangular.
- n
- Type: SystemInt32
On entry, N specifies the order of the matrix A.
N must be at least zero.
- a
- Type: Extreme.CollectionsArray2DT
A is DOUBLE PRECISION array of DIMENSION ( LDA, n ).
Before entry with UPLO = 'U' or 'u', the leading n by n
upper triangular part of the array A must contain the upper
triangular matrix and the strictly lower triangular part of
A is not referenced.
Before entry with UPLO = 'L' or 'l', the leading n by n
lower triangular part of the array A must contain the lower
triangular matrix and the strictly upper triangular part of
A is not referenced.
Note that when DIAG = 'U' or 'u', the diagonal elements of
A are not referenced either, but are assumed to be unity.
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program. LDA must be at least
max( 1, n ).
- x
- Type: Extreme.CollectionsArraySliceT
X is DOUBLE PRECISION array of dimension at least
( 1 + ( n - 1 )*abs( INCX ) ).
Before entry, the incremented array X must contain the n
element vector x. On exit, X is overwritten with the
tranformed vector x.
On entry, INCX specifies the increment for the elements of
X. INCX must not be zero.
Implements
ILinearAlgebraOperationsTTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2DT, ArraySliceT)
Further Details:
Level 2 LinearAlgebra routine.
The vector and matrix arguments are not referenced when N = 0, or M = 0
-- Written on 22-October-1986.
Jack Dongarra, Argonne National Lab.
Jeremy Du Croz, Nag Central Office.
Sven Hammarling, Nag Central Office.
Richard Hanson, Sandia National Labs.
Authors:
Univ. of Tennessee,
Univ. of California Berkeley,
Univ. of Colorado Denver,
NAG Ltd.
Date: November 2011
Numerical Libraries
Supported in: 5.x
Reference