ILinearAlgebraOperations<T> Interface

Specifies the methods that must be implemented by a class to support basic linear algebra.

Definition

Namespace: Numerics.NET.LinearAlgebra.Implementation
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.0
C#
public interface ILinearAlgebraOperations<T> : IImplementation, 
	IParallelized
Implements
IParallelized, IImplementation

Type Parameters

T

Properties

HasSharedDegreeOfParallelism Indicates whether the degree of parallelism is a property that is shared across instances.
(Inherited from IParallelized)
ImplementedType Gets the base type of the implementation.
(Inherited from IImplementation)
MaxDegreeOfParallelism Gets or sets the maximum degree of parallelism enabled by the instance.
(Inherited from IParallelized)
Name Gets the name of the implementation.
(Inherited from IImplementation)
Platform Gets the processor architecture supported by the implementation.
(Inherited from IImplementation)

Methods

AbsoluteMaxIndex Returns the index of the element of a vector with maximum absolute value.
BandMatrixNorm Computes the norm of a general band matrix.
BandMultiplyAndAddInPlace Sum of the product of a general band matrix and vector and a scaled vector.
BandSymmetricMultiplyAndAddInPlace Product of a symmetric band matrix and a vector.
BandTriangularMultiplyInPlace Product of a triangular band matrix and a vector.
BandTriangularSolveInPlace Solves a triangular band system of equations.
ConjugateDotProduct Returns the inner product of two vectors.
ConjugateRankUpdate Performs a rank one update of a matrix.
Copy(Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Copies a vector.
Copy(MatrixTriangle, Int32, Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Copies part of a matrix to another.
CreateGivensRotation Generates the elements for a Givens plane rotation.
DotProduct Returns the inner product of two vectors.
FullMatrixNorm Computes the norm of a general rectangular matrix.
HermitianBandMatrixNorm Computes the norm of a symmetric band matrix.
HermitianMatrixNorm Computes the norm of a Hermitian matrix.
HermitianMultiplyAndAddInPlace(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Product of a hermitian matrix and a vector.
HermitianMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Sum of the product of a hermitian and a general matrix and a scaled matrix.
HermitianRankUpdate(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, Span<T>, Int32) Performs a rank one update of a hermitian.
HermitianRankUpdate(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Performs a hermitian rank two update of a hermitian matrix.
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Performs a rank k update of a hermitian matrix.
HermitianRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Performs a rank 2k update of a hermitian matrix.
MultiplyAndAddInPlace(Int32, T, ReadOnlySpan<T>, Int32, Span<T>, Int32) Evaluates a vector plus the product of a scalar and a vector
MultiplyAndAddInPlace(TransposeOperation, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Sum of the product of a general matrix and vector and a scaled vector.
MultiplyAndAddInPlace(TransposeOperation, TransposeOperation, Int32, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Sum of the product of two general matrices and a scaled matrix.
MultiplyInPlace Evaluates the product of a scalar and a vector.
OneNorm Returns the sum of the absolute values of the elements of a vector.
RankUpdate Performs a rank one update of a matrix.
RealOneNorm Returns the sum of the absolute values of the elements of a vector.
Rotate Applies a Givens plane rotation.
Swap Exchanges the elements of two vectors.
SymmetricBandMatrixNorm Computes the norm of a symmetric band matrix.
SymmetricMatrixNorm Computes the norm of a symmetric matrix.
SymmetricMultiplyAndAddInPlace(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Product of a symmetric matrix and a vector.
SymmetricMultiplyAndAddInPlace(MatrixOperationSide, MatrixTriangle, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Sum of the product of a symmetric and a general matrix and a scaled matrix.
SymmetricRankUpdate(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, Span<T>, Int32) Performs a rank one update of a symmetric matrix.
SymmetricRankUpdate(MatrixTriangle, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Performs a symmetric rank two update of a symmetric matrix.
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Performs a rank k update of a symmetric matrix.
SymmetricRankUpdate(MatrixTriangle, TransposeOperation, Int32, Int32, T, ReadOnlySpan<T>, Int32, ReadOnlySpan<T>, Int32, T, Span<T>, Int32) Performs a rank k update of a symmetric matrix.
TriangularBandMatrixNorm Computes the norm of a triangular band matrix.
TriangularMatrixNorm Computes the norm of a triangular matrix.
TriangularMultiplyInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Product of a triangular matrix and a vector.
TriangularMultiplyInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, ReadOnlySpan<T>, Int32, Span<T>, Int32) Product of a triangular and a general matrix.
TriangularSolveInPlace(MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, ReadOnlySpan<T>, Int32, Span<T>, Int32) Solves a triangular system of equations.
TriangularSolveInPlace(MatrixOperationSide, MatrixTriangle, TransposeOperation, MatrixDiagonal, Int32, Int32, T, ReadOnlySpan<T>, Int32, Span<T>, Int32) Solution of a triangular linear system with multiple right-hand sides.
TwoNorm Returns the square root of sum of the squares of the elements of a vector.

Extension Methods

AbsoluteMaxIndex<T>

Finds the index of element having max.


(Defined by LinearAlgebraOperationsExtensions)
AbsoluteMaxIndex<T, TStorage> Returns the index of the element of a vector with maximum absolute value.
(Defined by LinearAlgebraOperationsExtensions)
BandMultiplyAndAddInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
BandMultiplyAndAddInPlace<T, TStorage, TStorage2D> Sum of the product of a general band matrix and vector and a scaled vector.
(Defined by LinearAlgebraOperationsExtensions)
BandSymmetricMultiplyAndAddInPlace<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 band matrix, with k super-diagonals.


(Defined by LinearAlgebraOperationsExtensions)
BandSymmetricMultiplyAndAddInPlace<T, TStorage, TStorage2D> Product of a symmetric band matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
BandTriangularMultiplyInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
BandTriangularMultiplyInPlace<T, TStorage, TStorage2D> Product of a triangular band matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
BandTriangularSolveInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
BandTriangularSolveInPlace<T, TStorage, TStorage2D> Solves a triangular band system of equations.
(Defined by LinearAlgebraOperationsExtensions)
ConjugateDotProduct<T> Returns the inner product of two vectors.
(Defined by LinearAlgebraOperationsExtensions)
ConjugateDotProduct<T, TStorage> Returns the inner product of two vectors.
(Defined by LinearAlgebraOperationsExtensions)
ConjugateRankUpdate<T> Performs a rank one update of a matrix.
(Defined by LinearAlgebraOperationsExtensions)
ConjugateRankUpdate<T, TStorage, TStorage2D> Performs a rank one update of a matrix.
(Defined by LinearAlgebraOperationsExtensions)
Copy<T>

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


(Defined by LinearAlgebraOperationsExtensions)
Copy<T>

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


(Defined by LinearAlgebraOperationsExtensions)
Copy<T, TStorage> Copies a vector.
(Defined by LinearAlgebraOperationsExtensions)
Copy<T, TStorage2D> Copies part of a matrix to another.
(Defined by LinearAlgebraOperationsExtensions)
DotProduct<T>

Forms the dot product of two vectors.


(Defined by LinearAlgebraOperationsExtensions)
DotProduct<T, TStorage> Returns the inner product of two vectors.
(Defined by LinearAlgebraOperationsExtensions)
FullMatrixNorm<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.


(Defined by LinearAlgebraOperationsExtensions)
FullMatrixNorm<T, TStorage2D> Computes the norm of a general rectangular matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMatrixNorm<T> Computes the norm of a Hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMatrixNorm<T, TStorage2D> Computes the norm of a Hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMultiplyAndAddInPlace<T> Product of a hermitian matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMultiplyAndAddInPlace<T> Sum of the product of a hermitian and a general matrix and a scaled matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMultiplyAndAddInPlace<T, TStorage2D> Sum of the product of a hermitian and a general matrix and a scaled matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianMultiplyAndAddInPlace<T, TStorage, TStorage2D> Product of a hermitian matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T> Performs a rank one update of a hermitian.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T> Performs a hermitian rank two update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T> Performs a rank k update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T> Performs a rank 2k update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T, TStorage2D> Performs a rank k update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T, TStorage2D> Performs a rank 2k update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T, TStorage, TStorage2D> Performs a rank one update of a hermitian.
(Defined by LinearAlgebraOperationsExtensions)
HermitianRankUpdate<T, TStorage, TStorage2D> Performs a hermitian rank two update of a hermitian matrix.
(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<T>

Constant times a vector plus a vector.


(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<T, TStorage> Evaluates a vector plus the product of a scalar and a vector
(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<T, TStorage2D> Sum of the product of two general matrices and a scaled matrix.
(Defined by LinearAlgebraOperationsExtensions)
MultiplyAndAddInPlace<T, TStorage, TStorage2D> Sum of the product of a general matrix and vector and a scaled vector.
(Defined by LinearAlgebraOperationsExtensions)
MultiplyInPlace<T>

Scales a vector by a constant.


(Defined by LinearAlgebraOperationsExtensions)
MultiplyInPlace<T, TStorage> Evaluates the product of a scalar and a vector.
(Defined by LinearAlgebraOperationsExtensions)
OneNorm<T>

Takes the sum of the absolute values.


(Defined by LinearAlgebraOperationsExtensions)
OneNorm<T, TStorage> Returns the sum of the absolute values of the elements of a vector.
(Defined by LinearAlgebraOperationsExtensions)
RankUpdate<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.


(Defined by LinearAlgebraOperationsExtensions)
RankUpdate<T, TStorage, TStorage2D> Performs a rank one update of a matrix.
(Defined by LinearAlgebraOperationsExtensions)
RealOneNorm<T> Returns the sum of the absolute values of the elements of a vector.
(Defined by LinearAlgebraOperationsExtensions)
RealOneNorm<T, TStorage> Returns the sum of the absolute values of the elements of a vector.
(Defined by LinearAlgebraOperationsExtensions)
Rotate<T>

Applies a plane rotation.


(Defined by LinearAlgebraOperationsExtensions)
Rotate<T, TStorage> Applies a Givens plane rotation.
(Defined by LinearAlgebraOperationsExtensions)
Swap<T>

Swaps the elements of two vectors.


(Defined by LinearAlgebraOperationsExtensions)
Swap<T, TStorage> Exchanges the elements of two vectors.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricMatrixNorm<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricMatrixNorm<T, TStorage2D> Computes the norm of a symmetric matrix.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricMultiplyAndAddInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricMultiplyAndAddInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricMultiplyAndAddInPlace<T, TStorage2D> Sum of the product of a symmetric and a general matrix and a scaled matrix.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricMultiplyAndAddInPlace<T, TStorage, TStorage2D> Product of a symmetric matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<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.


(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<T, TStorage2D> Performs a rank k update of a symmetric matrix.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<T, TStorage2D> Performs a rank k update of a symmetric matrix.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<T, TStorage, TStorage2D> Performs a rank one update of a symmetric matrix.
(Defined by LinearAlgebraOperationsExtensions)
SymmetricRankUpdate<T, TStorage, TStorage2D> Performs a symmetric rank two update of a symmetric matrix.
(Defined by LinearAlgebraOperationsExtensions)
TriangularMatrixNorm<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.


(Defined by LinearAlgebraOperationsExtensions)
TriangularMatrixNorm<T, TStorage2D> Computes the norm of a triangular matrix.
(Defined by LinearAlgebraOperationsExtensions)
TriangularMultiplyInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
TriangularMultiplyInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
TriangularMultiplyInPlace<T, TStorage2D> Product of a triangular and a general matrix.
(Defined by LinearAlgebraOperationsExtensions)
TriangularMultiplyInPlace<T, TStorage, TStorage2D> Product of a triangular matrix and a vector.
(Defined by LinearAlgebraOperationsExtensions)
TriangularSolveInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
TriangularSolveInPlace<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.


(Defined by LinearAlgebraOperationsExtensions)
TriangularSolveInPlace<T, TStorage2D> Solution of a triangular linear system with multiple right-hand sides.
(Defined by LinearAlgebraOperationsExtensions)
TriangularSolveInPlace<T, TStorage, TStorage2D> Solves a triangular system of equations.
(Defined by LinearAlgebraOperationsExtensions)
TwoNorm<T>

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


(Defined by LinearAlgebraOperationsExtensions)
TwoNorm<T, TStorage> Returns the square root of sum of the squares of the elements of a vector.
(Defined by LinearAlgebraOperationsExtensions)

See Also