GenericLinearAlgebraOperations<T> Class

Implements the BLAS (Basic Linear Algebra Subroutines) for generic element types.

Definition

Namespace: Extreme.Mathematics.LinearAlgebra.Implementation
Assembly: Extreme.Numerics.Generic (in Extreme.Numerics.Generic.dll) Version: 8.1.4
C#
public class GenericLinearAlgebraOperations<T> : LinearAlgebraOperations<T>
Inheritance
Object  →  LinearAlgebraOperations<T>  →  GenericLinearAlgebraOperations<T>

Type Parameters

T
The element type of the arrays.

Constructors

GenericLinearAlgebraOperations<T>Initializes a new instance of the GenericLinearAlgebraOperations<T> class

Properties

HasSharedDegreeOfParallelism Indicates whether the degree of parallelism is a property that is shared across instances.
(Overrides LinearAlgebraOperations<T>.HasSharedDegreeOfParallelism)
MaxDegreeOfParallelism Gets or sets the maximum degree of parallelism enabled by the instance.
(Overrides LinearAlgebraOperations<T>.MaxDegreeOfParallelism)
Name Gets the name of the implementation.
(Overrides LinearAlgebraOperations<T>.Name)
Platform Gets the processor architecture supported by the implementation.
(Overrides LinearAlgebraOperations<T>.Platform)

Methods

AbsoluteMaxIndex(Int32, ArraySlice<T>)

Finds the index of element having max.


(Overrides LinearAlgebraOperations<T>.AbsoluteMaxIndex(Int32, ArraySlice<T>))
AbsoluteMaxIndex(Int32, ArraySlice<Complex<T>>)

Finds the index of element having max.


(Overrides LinearAlgebraOperations<T>.AbsoluteMaxIndex(Int32, ArraySlice<Complex<T>>))
ApplyModifiedGivensRotation

THE MODIFIED GIVENS TRANSFORMATION, H, TO THE 2 BY N MATRIX (DXT) , WHERE **T INDICATES TRANSPOSE.


(Overrides LinearAlgebraOperations<T>.ApplyModifiedGivensRotation(Int32, ArraySlice<T>, ArraySlice<T>, T[]))
BandHermitianMultiplyAndAddInPlace

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian band matrix, with k super-diagonals.

BandMultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Int32, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>)

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 band matrix, with kl sub-diagonals and ku super-diagonals.


(Overrides LinearAlgebraOperations<T>.BandMultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Int32, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>))
BandMultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Int32, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>)

Performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*AT*x + beta*y, or y := alpha*AH*x + beta*y, where alpha and beta are scalars, x and y are vectors and A is an m by n band matrix, with kl sub-diagonals and ku super-diagonals.


(Overrides LinearAlgebraOperations<T>.BandMultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Int32, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>))
BandSymmetricMultiplyAndAddInPlace

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric band matrix, with k super-diagonals.


(Overrides LinearAlgebraOperations<T>.BandSymmetricMultiplyAndAddInPlace(MatrixTriangle, Int32, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>))
BandTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<T>, ArraySlice<T>)

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 band matrix, with ( k + 1 ) diagonals.


(Overrides LinearAlgebraOperations<T>.BandTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<T>, ArraySlice<T>))
BandTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>)

Performs one of the matrix-vector operations x := A*x, or x := AT*x, or x := AH*x, where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.


(Overrides LinearAlgebraOperations<T>.BandTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>))
BandTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<T>, ArraySlice<T>)

Solves one of the systems of equations A*x = b, or AT*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.


(Overrides LinearAlgebraOperations<T>.BandTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<T>, ArraySlice<T>))
BandTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>)

Solves one of the systems of equations A*x = b, or AT*x = b, or AH*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular band matrix, with ( k + 1 ) diagonals.


(Overrides LinearAlgebraOperations<T>.BandTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>))
ComplexOneNorm

Computes the sum of the absolute values of a complex number


(Overrides LinearAlgebraOperations<T>.ComplexOneNorm(Complex<T>))
ConjugateDotProduct(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>)

Forms the dot product of a vector.


(Overrides LinearAlgebraOperations<T>.ConjugateDotProduct(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>))
ConjugateDotProduct(Int32, ArraySlice<T>, ArraySlice<T>) Returns the inner product of two vectors.
(Inherited from LinearAlgebraOperations<T>)
ConjugateRankUpdate(Int32, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>)

Performs the rank 1 operation A := alpha*x*y**H + A, where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.


(Overrides LinearAlgebraOperations<T>.ConjugateRankUpdate(Int32, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>))
ConjugateRankUpdate(Int32, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>) Performs a rank one update of a matrix.
(Inherited from LinearAlgebraOperations<T>)
Copy(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>)

Copies a vector, x, to a vector, y.


(Overrides LinearAlgebraOperations<T>.Copy(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>))
Copy(Int32, ArraySlice<T>, ArraySlice<T>)

Copies a vector, x, to a vector, y.


(Inherited from LinearAlgebraOperations<T>)
Copy(MatrixTriangle, Int32, Int32, Array2D<T>, Array2D<T>)

Copies all or part of a two-dimensional matrix A to another matrix B.


(Overrides LinearAlgebraOperations<T>.Copy(MatrixTriangle, Int32, Int32, Array2D<T>, Array2D<T>))
Copy(MatrixTriangle, Int32, Int32, Array2D<Complex<T>>, Array2D<Complex<T>>) Copies the specified elements of a complex matrix.
(Overrides LinearAlgebraOperations<T>.Copy(MatrixTriangle, Int32, Int32, Array2D<Complex<T>>, Array2D<Complex<T>>))
CreateGivensRotation(Complex<T>, Complex<T>, T, Complex<T>)

Determines a complex Givens rotation.


(Overrides LinearAlgebraOperations<T>.CreateGivensRotation(Complex<T>, Complex<T>, T, Complex<T>))
CreateGivensRotation(T, T, T, T)

Construct givens plane rotation.


(Overrides LinearAlgebraOperations<T>.CreateGivensRotation(T, T, T, T))
CreateModifiedGivensRotation

THE MODIFIED GIVENS TRANSFORMATION MATRIX H WHICH ZEROS THE SECOND COMPONENT OF THE 2-VECTOR (DSQRT(DD1)*DX1,DSQRT(DD2)*> DY2)**T.


(Overrides LinearAlgebraOperations<T>.CreateModifiedGivensRotation(T, T, T, T, T[]))
DotProduct(Int32, ArraySlice<T>, ArraySlice<T>)

Forms the dot product of two vectors.


(Overrides LinearAlgebraOperations<T>.DotProduct(Int32, ArraySlice<T>, ArraySlice<T>))
DotProduct(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>)

Forms the dot product of two vectors.


(Overrides LinearAlgebraOperations<T>.DotProduct(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>))
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
FullMatrixNorm(MatrixNorm, Int32, Int32, Array2D<T>)

Returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real matrix A.


(Overrides LinearAlgebraOperations<T>.FullMatrixNorm(MatrixNorm, Int32, Int32, Array2D<T>))
FullMatrixNorm(MatrixNorm, Int32, Int32, Array2D<Complex<T>>) Computes the norm of a general rectangular matrix.
(Overrides LinearAlgebraOperations<T>.FullMatrixNorm(MatrixNorm, Int32, Int32, Array2D<Complex<T>>))
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
HermitianMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<Complex<T>>) Computes the norm of a Hermitian matrix.
(Overrides LinearAlgebraOperations<T>.HermitianMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<Complex<T>>))
HermitianMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<T>) Computes the norm of a Hermitian matrix.
(Inherited from LinearAlgebraOperations<T>)
HermitianMultiplyAndAddInPlace(MatrixTriangle, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>)

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix.


(Overrides LinearAlgebraOperations<T>.HermitianMultiplyAndAddInPlace(MatrixTriangle, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>))
HermitianMultiplyAndAddInPlace(MatrixTriangle, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>) Product of a hermitian matrix and a vector.
(Inherited from LinearAlgebraOperations<T>)
HermitianMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>)

Performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is an hermitian matrix and B and C are m by n matrices.


(Overrides LinearAlgebraOperations<T>.HermitianMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>))
HermitianMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>) Sum of the product of a hermitian and a general matrix and a scaled matrix.
(Inherited from LinearAlgebraOperations<T>)
HermitianRankUpdate(MatrixTriangle, Int32, T, ArraySlice<Complex<T>>, Array2D<Complex<T>>)

Performs the hermitian rank 1 operation A := alpha*x*x**H + A, where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix.


(Overrides LinearAlgebraOperations<T>.HermitianRankUpdate(MatrixTriangle, Int32, T, ArraySlice<Complex<T>>, Array2D<Complex<T>>))
HermitianRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, Array2D<T>) Performs a rank one update of a hermitian.
(Inherited from LinearAlgebraOperations<T>)
HermitianRankUpdate(MatrixTriangle, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>)

Performs the hermitian rank 2 operation A := alpha*x*y**H + conjg( alpha )*y*x**H + A, where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix.


(Overrides LinearAlgebraOperations<T>.HermitianRankUpdate(MatrixTriangle, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>))
HermitianRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>) Performs a hermitian rank two update of a hermitian matrix.
(Inherited from LinearAlgebraOperations<T>)
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<Complex<T>>, T, Array2D<Complex<T>>)

Performs one of the hermitian rank k operations C := alpha*A*AH + beta*C, or C := alpha*AH*A + beta*C, where alpha and beta are real scalars, C is an n by n hermitian matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.


(Overrides LinearAlgebraOperations<T>.HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<Complex<T>>, T, Array2D<Complex<T>>))
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, T, Array2D<T>) Performs a rank k update of a hermitian matrix.
(Inherited from LinearAlgebraOperations<T>)
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, T, Array2D<Complex<T>>)

Performs one of the hermitian rank 2k operations C := alpha*A*BH + conjg( alpha )*B*AH + beta*C, or C := alpha*AH*B + conjg( alpha )*BH*A + beta*C, where alpha and beta are scalars with beta real, C is an n by n hermitian matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.


(Overrides LinearAlgebraOperations<T>.HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, T, Array2D<Complex<T>>))
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>) Performs a rank 2k update of a hermitian matrix.
(Inherited from LinearAlgebraOperations<T>)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
MultiplyAndAddInPlace(Int32, T, ArraySlice<T>, ArraySlice<T>)

Constant times a vector plus a vector.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(Int32, T, ArraySlice<T>, ArraySlice<T>))
MultiplyAndAddInPlace(Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>)

Constant times a vector plus a vector.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>))
MultiplyAndAddInPlace(TransposeOperation, Int32, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>)

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.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(TransposeOperation, Int32, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>))
MultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>)

Performs one of the matrix-vector operations y := alpha*A*x + beta*y, or y := alpha*AT*x + beta*y, or y := alpha*AH*x + beta*y, where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, ArraySlice<Complex<T>>, Complex<T>, ArraySlice<Complex<T>>))
MultiplyAndAddInPlace(TransposeOperation, TransposeOperation, Int32, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>)

Performs one of the matrix-matrix operations C := alpha*op( A )*op( B ) + beta*C, where op( X ) is one of op( X ) = X or op( X ) = XT, alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(TransposeOperation, TransposeOperation, Int32, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>))
MultiplyAndAddInPlace(TransposeOperation, TransposeOperation, Int32, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>)

Performs one of the matrix-matrix operations C := alpha*op( A )*op( B ) + beta*C, where op( X ) is one of op( X ) = X or op( X ) = XT or op( X ) = XH, alpha and beta are scalars, and A, B and C are matrices, with op( A ) an m by k matrix, op( B ) a k by n matrix and C an m by n matrix.


(Overrides LinearAlgebraOperations<T>.MultiplyAndAddInPlace(TransposeOperation, TransposeOperation, Int32, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>))
MultiplyInPlace(Int32, T, ArraySlice<T>)

Scales a vector by a constant.


(Overrides LinearAlgebraOperations<T>.MultiplyInPlace(Int32, T, ArraySlice<T>))
MultiplyInPlace(Int32, T, ArraySlice<Complex<T>>)

Scales a vector by a constant.


(Overrides LinearAlgebraOperations<T>.MultiplyInPlace(Int32, T, ArraySlice<Complex<T>>))
MultiplyInPlace(Int32, Complex<T>, ArraySlice<Complex<T>>)

Scales a vector by a constant.


(Overrides LinearAlgebraOperations<T>.MultiplyInPlace(Int32, Complex<T>, ArraySlice<Complex<T>>))
OneNorm

Takes the sum of the absolute values.


(Overrides LinearAlgebraOperations<T>.OneNorm(Int32, ArraySlice<T>))
PackedHermitianMultiplyAndAddInPlace

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.

PackedHermitianRankUpdate(MatrixTriangle, Int32, T, ArraySlice<Complex<T>>, Array1D<Complex<T>>)

Performs the hermitian rank 1 operation A := alpha*x*x**H + A, where alpha is a real scalar, x is an n element vector and A is an n by n hermitian matrix, supplied in packed form.

PackedHermitianRankUpdate(MatrixTriangle, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array1D<Complex<T>>)

Performs the hermitian rank 2 operation A := alpha*x*y**H + conjg( alpha )*y*x**H + A, where alpha is a scalar, x and y are n element vectors and A is an n by n hermitian matrix, supplied in packed form.

PackedSymmetricMultiplyAndAddInPlace

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.

PackedSymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, Array1D<T>)

Performs the symmetric rank 1 operation A := alpha*x*x**T + A, where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix, supplied in packed form.

PackedSymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, ArraySlice<T>, Array1D<T>)

Performs the symmetric rank 2 operation A := alpha*x*y**T + alpha*y*x**T + A, where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix, supplied in packed form.

PackedTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array1D<T>, ArraySlice<T>)

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, supplied in packed form.

PackedTriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array1D<Complex<T>>, ArraySlice<Complex<T>>)

Performs one of the matrix-vector operations x := A*x, or x := AT*x, or x := AH*x, where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

PackedTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array1D<T>, ArraySlice<T>)

Solves one of the systems of equations A*x = b, or AT*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

PackedTriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array1D<Complex<T>>, ArraySlice<Complex<T>>)

Solves one of the systems of equations A*x = b, or AT*x = b, or AH*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular matrix, supplied in packed form.

RankUpdate(Int32, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>)

Performs the rank 1 operation A := alpha*x*y**T + A, where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.


(Overrides LinearAlgebraOperations<T>.RankUpdate(Int32, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>))
RankUpdate(Int32, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>)

Performs the rank 1 operation A := alpha*x*y**T + A, where alpha is a scalar, x is an m element vector, y is an n element vector and A is an m by n matrix.


(Overrides LinearAlgebraOperations<T>.RankUpdate(Int32, Int32, Complex<T>, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, Array2D<Complex<T>>))
RealOneNorm(Int32, ArraySlice<Complex<T>>)

Takes the sum of the absolute values.


(Overrides LinearAlgebraOperations<T>.RealOneNorm(Int32, ArraySlice<Complex<T>>))
RealOneNorm(Int32, ArraySlice<T>) Returns the sum of the absolute values of the elements of a vector.
(Inherited from LinearAlgebraOperations<T>)
Rotate(Int32, ArraySlice<T>, ArraySlice<T>, T, T)

Applies a plane rotation.


(Overrides LinearAlgebraOperations<T>.Rotate(Int32, ArraySlice<T>, ArraySlice<T>, T, T))
Rotate(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, T, T)

A plane rotation, where the cos and sin (c and s) are real and the vectors cx and cy are complex.


(Overrides LinearAlgebraOperations<T>.Rotate(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>, T, T))
Swap(Int32, ArraySlice<T>, ArraySlice<T>)

Two vectors.


(Overrides LinearAlgebraOperations<T>.Swap(Int32, ArraySlice<T>, ArraySlice<T>))
Swap(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>)

Interchanges two vectors.


(Overrides LinearAlgebraOperations<T>.Swap(Int32, ArraySlice<Complex<T>>, ArraySlice<Complex<T>>))
SymmetricMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<T>)

Returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a real symmetric matrix A.


(Overrides LinearAlgebraOperations<T>.SymmetricMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<T>))
SymmetricMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<Complex<T>>) Computes the norm of a symmetric matrix.
(Overrides LinearAlgebraOperations<T>.SymmetricMatrixNorm(MatrixNorm, MatrixTriangle, Int32, Array2D<Complex<T>>))
SymmetricMultiplyAndAddInPlace(MatrixTriangle, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>)

Performs the matrix-vector operation y := alpha*A*x + beta*y, where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix.


(Overrides LinearAlgebraOperations<T>.SymmetricMultiplyAndAddInPlace(MatrixTriangle, Int32, T, Array2D<T>, ArraySlice<T>, T, ArraySlice<T>))
SymmetricMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>)

Performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.


(Overrides LinearAlgebraOperations<T>.SymmetricMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>))
SymmetricMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>)

Performs one of the matrix-matrix operations C := alpha*A*B + beta*C, or C := alpha*B*A + beta*C, where alpha and beta are scalars, A is a symmetric matrix and B and C are m by n matrices.


(Overrides LinearAlgebraOperations<T>.SymmetricMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>))
SymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, Array2D<T>)

Performs the symmetric rank 1 operation A := alpha*x*x**T + A, where alpha is a real scalar, x is an n element vector and A is an n by n symmetric matrix.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, Array2D<T>))
SymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>)

Performs the symmetric rank 2 operation A := alpha*x*y**T + alpha*y*x**T + A, where alpha is a scalar, x and y are n element vectors and A is an n by n symmetric matrix.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, Int32, T, ArraySlice<T>, ArraySlice<T>, Array2D<T>))
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, T, Array2D<T>)

Performs one of the symmetric rank k operations C := alpha*A*AT + beta*C, or C := alpha*AT*A + beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, T, Array2D<T>))
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>)

Performs one of the symmetric rank k operations C := alpha*A*AT + beta*C, or C := alpha*AT*A + beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A is an n by k matrix in the first case and a k by n matrix in the second case.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>))
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>)

Performs one of the symmetric rank 2k operations C := alpha*A*BT + alpha*B*AT + beta*C, or C := alpha*AT*B + alpha*BT*A + beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, Array2D<T>, Array2D<T>, T, Array2D<T>))
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>)

Performs one of the symmetric rank 2k operations C := alpha*A*BT + alpha*B*AT + beta*C, or C := alpha*AT*B + alpha*BT*A + beta*C, where alpha and beta are scalars, C is an n by n symmetric matrix and A and B are n by k matrices in the first case and k by n matrices in the second case.


(Overrides LinearAlgebraOperations<T>.SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>, Complex<T>, Array2D<Complex<T>>))
ToStringReturns a string that represents the current object.
(Inherited from Object)
TriangularMatrixNorm(MatrixNorm, MatrixTriangle, MatrixDiagonal, Int32, Int32, Array2D<T>)

Returns the value of the one norm, or the Frobenius norm, or the infinity norm, or the element of largest absolute value of a trapezoidal or triangular matrix A.


(Overrides LinearAlgebraOperations<T>.TriangularMatrixNorm(MatrixNorm, MatrixTriangle, MatrixDiagonal, Int32, Int32, Array2D<T>))
TriangularMatrixNorm(MatrixNorm, MatrixTriangle, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>) Computes the norm of a triangular matrix.
(Overrides LinearAlgebraOperations<T>.TriangularMatrixNorm(MatrixNorm, MatrixTriangle, MatrixDiagonal, Int32, Int32, Array2D<Complex<T>>))
TriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<T>, ArraySlice<T>)

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.


(Overrides LinearAlgebraOperations<T>.TriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<T>, ArraySlice<T>))
TriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>)

Performs one of the matrix-vector operations x := A*x, or x := AT*x, or x := AH*x, where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.


(Overrides LinearAlgebraOperations<T>.TriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>))
TriangularMultiplyInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, Array2D<T>, Array2D<T>)

Performs one of the matrix-matrix operations B := alpha*op( A )*B, or B := alpha*B*op( A ), where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of op( A ) = A or op( A ) = AT.


(Overrides LinearAlgebraOperations<T>.TriangularMultiplyInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, Array2D<T>, Array2D<T>))
TriangularMultiplyInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>)

Performs one of the matrix-matrix operations B := alpha*op( A )*B, or B := alpha*B*op( A ) where alpha is a scalar, B is an m by n matrix, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of op( A ) = A or op( A ) = AT or op( A ) = AH.


(Overrides LinearAlgebraOperations<T>.TriangularMultiplyInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>))
TriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<T>, ArraySlice<T>)

Solves one of the systems of equations A*x = b, or AT*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular matrix.


(Overrides LinearAlgebraOperations<T>.TriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<T>, ArraySlice<T>))
TriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>)

Solves one of the systems of equations A*x = b, or AT*x = b, or AH*x = b, where b and x are n element vectors and A is an n by n unit, or non-unit, upper or lower triangular matrix.


(Overrides LinearAlgebraOperations<T>.TriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Array2D<Complex<T>>, ArraySlice<Complex<T>>))
TriangularSolveInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, Array2D<T>, Array2D<T>)

Solves one of the matrix equations op( A )*X = alpha*B, or X*op( A ) = alpha*B, where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of op( A ) = A or op( A ) = AT.


(Overrides LinearAlgebraOperations<T>.TriangularSolveInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, Array2D<T>, Array2D<T>))
TriangularSolveInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>)

Solves one of the matrix equations op( A )*X = alpha*B, or X*op( A ) = alpha*B, where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of op( A ) = A or op( A ) = AT or op( A ) = AH.


(Overrides LinearAlgebraOperations<T>.TriangularSolveInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, Complex<T>, Array2D<Complex<T>>, Array2D<Complex<T>>))
TwoNorm(Int32, ArraySlice<T>)

            Returns the euclidean norm of a vector via the function
            name, so that
               DNRM2 := sqrt( x'*x )
            


(Overrides LinearAlgebraOperations<T>.TwoNorm(Int32, ArraySlice<T>))
TwoNorm(Int32, ArraySlice<Complex<T>>)

            Returns the euclidean norm of a vector via the function
            name, so that
               DZNRM2 := sqrt( x**H*x )
            


(Overrides LinearAlgebraOperations<T>.TwoNorm(Int32, ArraySlice<Complex<T>>))

See Also