Represents a Matrix that is symmetrical about the main diagonal.

Namespace: Extreme.Mathematics.LinearAlgebra
Assembly: Extreme.Numerics (Extreme.Numerics)

Syntax

Visual Basic (Declaration)
Public NotInheritable Class SymmetricMatrix _
	Inherits Matrix _
	Implements ISerializable, IDoubleStorage
C#
public sealed class SymmetricMatrix : Matrix, ISerializable, IDoubleStorage
C++
public ref class SymmetricMatrix sealed : public Matrix, ISerializable, IDoubleStorage

Methods

IconTypeDescription
Add(TransposeOperation, TransposeOperation, Double, Matrix)
Adds a multiple of a Matrix to this Matrix and returns the result.
AddOuterProduct(Vector)
Updates a symmetric matrix with the outer product of a vector and itself.
AddOuterProduct(Double, Vector)
Updates a symmetric matrix with the scaled outer product of a vector and its transpose.
AddOuterProduct(Matrix)
Updates a symmetric matrix with the product of a matrix and its transpose.
AddOuterProduct(Double, Matrix)
Updates a symmetric matrix with the scaled outer product of a matrix and its transpose.
AddProductToVector(Double, Vector, TransposeOperation, Double, GeneralVector)
Multiplies a Vector by this Matrix and stores the result in a second Vector.
AddSymmetricOuterProduct(Double, Vector, Vector)
Updates a symmetric matrix with the scaled outer product of a vector and a transposed vector.
AddSymmetricOuterProduct(Double, Matrix, Matrix)
Updates a symmetric matrix with the scaled outer product of a vector and its transpose.
ApplyMatrixFunction(RealFunction)
Computes a matrix function.
ApplyToColumns(MultivariateRealFunction)
Applies a function to each column in a matrix and returns the result as a vector.
ApplyToRows(MultivariateRealFunction)
Applies a function to each column in a matrix and returns the result as a vector.
Clone()
Constructs a deep copy of this Matrix.
CloneData()
Gives this instance its own copy of its elements.
ComponentwiseDivide(Matrix)
Divides the components of this instance by the corresponding components of another matrix.
ComponentwiseMultiply(Matrix)
Multiplies the components of this instance by the corresponding components of another matrix.
CopyTo(Matrix)
Copies the components of this Matrix to another matrix.
Equals(Object)
Determines whether the specified Object is equal to the current Matrix.
EstimateConditionNumber()
Calculates an estimate for the condition number of the SymmetricMatrix.
static memberExtract(GeneralMatrix, Int32, Int32, Int32, MatrixTriangleMode, Boolean)
Creates a SymmetricMatrix from a part of a GeneralMatrix.
static memberExtract(Matrix, Int32, Int32, Int32, MatrixTriangleMode)
Creates a SymmetricMatrix from a part of a Matrix.
Finalize()
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
FrobeniusNorm()
Returns the Frobenius norm of this Matrix.
static memberFromOuterProduct(Matrix)
Constructs a new SymmetricMatrix by multiplying a matrix on the left by its transpose.
static memberFromOuterProduct(Matrix, MatrixOperationSide)
Constructs a new SymmetricMatrix by multiplying a matrix by its transpose.
GetColumn(Int32)
Returns a column Vector for this instance that points at the specified column.
GetColumn(Int32, Int32, Int32)
Returns a column Vector for this instance starting at the specified column and row and of the specified length.
GetColumn(Int32, Int32, Int32, Int32)
Returns a column Vector for this instance starting at the specified column and row and of the specified length.
GetColumn(Int32, Range)
Returns a column Vector for this instance starting at the specified column and row and of the specified length.
GetColumnEnumerator()
Gets an IEnumerator than can be used to enumerate the columns of this Matrix.
GetColumnSums()
Returns the sums of the components of each column of the matrix.
GetComponents()
Gets the components of the Vector.
GetComponents(MatrixElementOrder)
Gets the components of the Vector.
GetConditionNumber()
Calculates the condition number of this Matrix.
GetDeterminant()
Calculates the determinant of the SymmetricMatrix underlying this system of equations.
GetDiagonal(Int32)
Gets a Vector view of the specified diagonal of this instance.
GetEigenvalues()
Gets a vector containing the eigenvalues of the matrix.
GetHashCode()
Returns the hash code for this instance.
GetInverse()
Calculates the inverse matrix.
GetObjectData(SerializationInfo, StreamingContext)
Populates a SerializationInfo with the data needed to serialize the target object.
GetPseudoInverse()
Calculates the Moore-Penrose pseudo-inverse of this Matrix.
GetRow(Int32)
Returns a row Vector for this instance that points at the specified row.
GetRow(Int32, Int32, Int32)
Returns a row Vector for this instance over the specified range.
GetRow(Int32, Range)
Returns a row Vector for this instance starting at the specified row and column and of the specified length.
GetRow(Int32, Int32, Int32, Int32)
Returns a row Vector for this instance starting at the specified row and column and of the specified length.
GetRowEnumerator()
Returns an IEnumerator instance that allows you to enumerate the rows of this Matrix.
GetRowSums()
Returns the sums of the components of each row of the matrix.
GetSingularValues()
Gets a vector containing the singular values of the matrix.
GetSubmatrix(Range, Range, TransposeOperation)
Gets a Matrix that is a submatrix of this Matrix.
GetSubmatrix(Range, Range)
Gets a Matrix that is a submatrix of this Matrix.
GetSubmatrix(Int32, Int32, Int32, Int32)
Gets a Matrix that is a submatrix of this Matrix.
GetSubmatrix(Int32, Int32, Int32, Int32, Int32, Int32, TransposeOperation)
Gets a Matrix that is a submatrix of this Matrix.
GetType()
Gets the Type of the current instance.
GetValue(Int32, Int32)
Gets the matrix component at the specified position.
InfinityNorm()
Returns the infinity norm of this Matrix.
IsComponentWritable(Int32, Int32)
Gets a value indicating whether the value of the component at the specified row and column can be changed.
IsSingular()
Gets a value indicating whether the SymmetricMatrix is singular.
MemberwiseClone()
Creates a shallow copy of the current Object.
Multiply(Double)
Multiplies this Matrix by a scalar factor.
Multiply(MatrixOperationSide, TransposeOperation, TransposeOperation, Matrix)
Multiplies this Matrix by another matrix and returns the result.
NormInternal(Char)
Calculates a matrix norm.
OneNorm()
Returns the 1-norm of this Matrix.
Rank(Double)
Returns the numerical rank of a matrix using the specified tolerance.
ScaleColumns(Vector)
Scales the columns of the matrix by the values specified by a vector.
ScaleRows(Vector)
Scales the rows of the matrix by the values specified by a vector.
SetToZero()
Sets all elements of the matrix to zero.
SetValue(Double, Int32, Int32)
Sets the matrix component at the specified position to the specified value.
ShallowCopy()
Makes a shallow copy of this Matrix.
Solve(GeneralVector, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side Vector.
Solve(GeneralMatrix, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side GeneralMatrix and optionally overwrites the right-hand side with the solution.
Solve(Vector)
Solves the system of linear equations for the specified right-hand side Vector.
Solve(Matrix)
Solves the system of linear equations for the specified right-hand side Matrix.
SubtractOuterProduct(Vector)
Updates a symmetric matrix with the outer product of a vector and its transpose.
SubtractOuterProduct(Matrix)
Updates a symmetric matrix by subtracting the product of a matrix and its transpose.
ToGeneralMatrix()
Makes a copy of this instance and returns it as a GeneralMatrix.
ToString()
Returns a String representation of this Matrix.
ToString(String)
Returns a String representation of this Matrix.
ToString(String, IFormatProvider)
Returns a String representation of this Matrix.
Trace()
Gets the sum of the diagonal elements of this Matrix.
Transpose()
Returns the transpose of this instance.
TwoNorm()
Returns the two-norm of this Matrix.
UnscaleColumns(Vector)
Scales the columns of the matrix by the inverse of the values specified by a vector.
UnscaleRows(Vector)
Scales the rows of the matrix by the inverse of the values specified by a vector.

Constructors

IconTypeDescription
SymmetricMatrixNew(Int32)
Constructs a new SymmetricMatrix with the specified dimension.
SymmetricMatrixNew(Int32, Double[](), MatrixTriangleMode)
Constructs a new SymmetricMatrix of the specified dimension using the specified data.
SymmetricMatrixNew(Int32, Double[](), MatrixTriangleMode, Boolean)
Constructs a new SymmetricMatrix of the specified dimension using the specified data.

Properties

IconTypeDescription
ColumnCount
Gets the number of columns in the Matrix.
Columns
Gets the ColumnCollection for this instance.
ElementOrder
Gets a value indicating the order in which the matrix elements are stored.
Item(Int32, Int32)
Gets or sets the specified element in this Matrix.
Item(Int32, Range)
Gets or sets the components of a row of this Matrix.
Item(Range, Range)
Gets or sets the components of a submatrix of this Matrix.
Item(Range, Int32)
Gets or sets the components of a column of this Matrix.
RowCount
Gets the number of rows in the Matrix.
Rows
Gets the RowCollection for this instance.
TriangleMode
Gets a value that indicates whether the components of a SymmetricMatrix are stored in the upper or lower triangle.

Remarks

Use the SymmetricMatrix class to represent dense matrices whose elements are symmetrical about the main diagonal. Symmetric matrices are always square.

The components of a SymmetricMatrix are stored in a one-dimensional array of Double values. Thanks to the symmetry, only the upper or lower-triangular portion needs to be stored.

Symmetric matrices can be constructed from scratch, or they can be derived or extracted from the upper or lower triangular portion of a GeneralMatrix using one of the Extract(GeneralMatrix, Int32, Int32, Int32, MatrixTriangleMode, Boolean) methods.

The rows and column vectors of a symmetric matrix are of type

The SymmetricMatrix class implements algorithms using the symmetric matrix BLAS and LAPACK routines. Symmetric matrices are always stored in column-major order.

RowVector and ColumnVector, respectively.

Inheritance Hierarchy

System.Object
  Extreme.Mathematics.LinearAlgebra.LinearTransformation
    Extreme.Mathematics.LinearAlgebra.Matrix
      Extreme.Mathematics.LinearAlgebra.SymmetricMatrix

See Also