Performs one of the matrix-vector operations
y := alpha*A*x + beta*y, or y := alpha*AT*x + beta*y,
where alpha and beta are scalars, x and y are vectors and A is an
m by n 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 MultiplyAndAddInPlace(
TransposeOperation trans,
int m,
int n,
T alpha,
Array2D<T> a,
ArraySlice<T> x,
T beta,
ArraySlice<T> y
)
Public Overrides Sub MultiplyAndAddInPlace (
trans As TransposeOperation,
m As Integer,
n As Integer,
alpha As T,
a As Array2D(Of T),
x As ArraySlice(Of T),
beta As T,
y As ArraySlice(Of T)
)
public:
virtual void MultiplyAndAddInPlace(
TransposeOperation trans,
int m,
int n,
T alpha,
Array2D<T> a,
ArraySlice<T> x,
T beta,
ArraySlice<T> y
) override
abstract MultiplyAndAddInPlace :
trans : TransposeOperation *
m : int *
n : int *
alpha : 'T *
a : Array2D<'T> *
x : ArraySlice<'T> *
beta : 'T *
y : ArraySlice<'T> -> unit
override MultiplyAndAddInPlace :
trans : TransposeOperation *
m : int *
n : int *
alpha : 'T *
a : Array2D<'T> *
x : ArraySlice<'T> *
beta : 'T *
y : ArraySlice<'T> -> unit
Parameters
- trans
- Type: Extreme.MathematicsTransposeOperation
On entry, TRANS specifies the operation to be performed as
follows:
TRANS = 'N' or 'n' y := alpha*A*x + beta*y.
TRANS = 'T' or 't' y := alpha*AT*x + beta*y.
TRANS = 'C' or 'c' y := alpha*AT*x + beta*y.
- m
- Type: SystemInt32
On entry, M specifies the number of rows of the matrix A.
M must be at least zero.
- n
- Type: SystemInt32
On entry, N specifies the number of columns of the matrix A.
N must be at least zero.
- alpha
- Type: T
ALPHA is DOUBLE PRECISION.
On entry, ALPHA specifies the scalar alpha.
- a
- Type: Extreme.CollectionsArray2DT
A is DOUBLE PRECISION array of DIMENSION ( LDA, n ).
Before entry, the leading m by n part of the array A must
contain the matrix of coefficients.
On entry, LDA specifies the first dimension of A as declared
in the calling (sub) program. LDA must be at least
max( 1, m ).
- x
- Type: Extreme.CollectionsArraySliceT
X is DOUBLE PRECISION array of DIMENSION at least
( 1 + ( n - 1 )*abs( INCX ) ) when TRANS = 'N' or 'n'
and at least
( 1 + ( m - 1 )*abs( INCX ) ) otherwise.
Before entry, the incremented array X must contain the
vector x.
On entry, INCX specifies the increment for the elements of
X. INCX must not be zero.
- beta
- Type: T
BETA is DOUBLE PRECISION.
On entry, BETA specifies the scalar beta. When BETA is
supplied as zero then Y need not be set on input.
- y
- Type: Extreme.CollectionsArraySliceT
Y is DOUBLE PRECISION array of DIMENSION at least
( 1 + ( m - 1 )*abs( INCY ) ) when TRANS = 'N' or 'n'
and at least
( 1 + ( n - 1 )*abs( INCY ) ) otherwise.
Before entry with BETA non-zero, the incremented array Y
must contain the vector y. On exit, Y is overwritten by the
updated vector y.
On entry, INCY specifies the increment for the elements of
Y. INCY must not be zero.
Implements
ILinearAlgebraOperationsTMultiplyAndAddInPlace(TransposeOperation, Int32, Int32, T, Array2DT, ArraySliceT, T, 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