Class SparseMatrix<T>
A square matrix that uses a sparse storage method with doubly-linked elements.
Inherited Members
Namespace: SpiceSharp.Algebra
Assembly: SpiceSharp.dll
Syntax
public class SparseMatrix<T> : ISparseMatrix<T>, IMatrix<T>
Type Parameters
| Name | Description |
|---|---|
| T | The base value type. |
Remarks
The elements in row and column with index 0 are considered trashcan elements. They should all map on the same element.
The matrix automatically expands size if necessary.
Constructors
SparseMatrix()
Initializes a new instance of the SparseMatrix<T> class.
Declaration
public SparseMatrix()
SparseMatrix(int)
Initializes a new instance of the SparseMatrix<T> class.
Declaration
public SparseMatrix(int size)
Parameters
| Type | Name | Description |
|---|---|---|
| int | size | The matrix size. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
Properties
ElementCount
Gets the number of elements in the matrix.
Declaration
public int ElementCount { get; }
Property Value
| Type | Description |
|---|---|
| int | The element count. |
this[MatrixLocation]
Gets or sets the value at the specified location.
Declaration
public T this[MatrixLocation location] { get; set; }
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The location. |
Property Value
| Type | Description |
|---|---|
| T | The value. |
this[int, int]
Gets or sets the value at the specified row and column.
Declaration
public T this[int row, int column] { get; set; }
Parameters
| Type | Name | Description |
|---|---|---|
| int | row | The row index. |
| int | column | The column index. |
Property Value
| Type | Description |
|---|---|
| T | The value. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
Size
Gets the size of the matrix.
Declaration
public int Size { get; }
Property Value
| Type | Description |
|---|---|
| int | The matrix size. |
Methods
Clear()
Clears the matrix of any elements. The size of the matrix becomes 0.
Declaration
public void Clear()
FindDiagonalElement(int)
Finds the ISparseMatrixElement<T> on the diagonal.
Declaration
public ISparseMatrixElement<T> FindDiagonalElement(int index)
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | The index. |
Returns
| Type | Description |
|---|---|
| ISparseMatrixElement<T> | The matrix element if it exists; otherwise |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
FindElement(MatrixLocation)
Finds a pointer to the matrix element at the specified row and column. If
the element doesn't exist, null is returned.
Declaration
public Element<T> FindElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The matrix location. |
Returns
| Type | Description |
|---|---|
| Element<T> | The matrix element if it exists; otherwise |
GetElement(MatrixLocation)
Gets a pointer to the matrix element at the specified row and column. If the element doesn't exist, it is created.
Declaration
public Element<T> GetElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The matrix location. |
Returns
| Type | Description |
|---|---|
| Element<T> | The matrix element. |
GetFirstInColumn(int)
Gets the first non-default ISparseMatrixElement<T> in the specified column.
Declaration
public ISparseMatrixElement<T> GetFirstInColumn(int column)
Parameters
| Type | Name | Description |
|---|---|---|
| int | column | The column index. |
Returns
| Type | Description |
|---|---|
| ISparseMatrixElement<T> | The matrix element. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
GetFirstInRow(int)
Gets the first non-default ISparseMatrixElement<T> in the specified row.
Declaration
public ISparseMatrixElement<T> GetFirstInRow(int row)
Parameters
| Type | Name | Description |
|---|---|---|
| int | row | The row index. |
Returns
| Type | Description |
|---|---|
| ISparseMatrixElement<T> | The matrix element. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
GetLastInColumn(int)
Gets the last non-default ISparseMatrixElement<T> in the specified column.
Declaration
public ISparseMatrixElement<T> GetLastInColumn(int column)
Parameters
| Type | Name | Description |
|---|---|---|
| int | column | The column index. |
Returns
| Type | Description |
|---|---|
| ISparseMatrixElement<T> | The matrix element. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
GetLastInRow(int)
Gets the last non-default ISparseMatrixElement<T> in the specified row.
Declaration
public ISparseMatrixElement<T> GetLastInRow(int row)
Parameters
| Type | Name | Description |
|---|---|---|
| int | row | The row index. |
Returns
| Type | Description |
|---|---|
| ISparseMatrixElement<T> | The matrix element. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
RemoveElement(MatrixLocation)
Removes a matrix element at the specified row and column. If the element
doesn't exist, this method returns false.
Declaration
public bool RemoveElement(MatrixLocation location)
Parameters
| Type | Name | Description |
|---|---|---|
| MatrixLocation | location | The location. |
Returns
| Type | Description |
|---|---|
| bool |
|
Reset()
Resets all elements in the matrix to their default value.
Declaration
public void Reset()
SwapColumns(int, int)
Swaps two columns in the matrix.
Declaration
public void SwapColumns(int column1, int column2)
Parameters
| Type | Name | Description |
|---|---|---|
| int | column1 | The first column index. |
| int | column2 | The second column index. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
SwapRows(int, int)
Swaps two rows in the matrix.
Declaration
public void SwapRows(int row1, int row2)
Parameters
| Type | Name | Description |
|---|---|---|
| int | row1 | The first row index. |
| int | row2 | The second row index. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if |
ToString()
Returns a string that represents this instance.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| string | A string that represents this instance. |