NMath Reference Guide

## Double |

Class DoubleHermitianBandMatrix represents an Hermitian banded matrix of
double-precision floating point values. An Hermitian banded matrix is an
Hermitian matrix that has all its non-zero entries near the diagonal.

Inheritance Hierarchy

Syntax

The DoubleHermitianBandMatrix type exposes the following members.

Constructors

Name | Description | |
---|---|---|

DoubleHermitianBandMatrix(DoubleComplexBandMatrix) | Constructs a DoubleHermitianBandMatrix instance from a square banded matrix. | |

DoubleHermitianBandMatrix(DoubleComplexTriDiagMatrix) | Constructs a DoubleHermitianBandMatrix instance from a square tridiagonal matrix. | |

DoubleHermitianBandMatrix(DoubleComplexMatrix, Int32) | Constructs a DoubleHermitianBandMatrix instance by extracting the Hermitian part of a band of entries from a square matrix. | |

DoubleHermitianBandMatrix(Int32, Int32) | Constructs a DoubleHermitianBandMatrix instance with the specified number of rows, columns, and half bandwidth. | |

DoubleHermitianBandMatrix(DoubleComplexVector, Int32, Int32) | Constructs a DoubleHermitianBandMatrix instance with the specified dimensions and half bandwidth using the data in the passed vector. |

Properties

Name | Description | |
---|---|---|

Bandwidth | Gets the bandwidth of the matrix. | |

Cols | Gets the number of columns in the matrix. | |

DataVector | Gets the data vector referenced by this matrix. | |

HalfBandwidth | Gets the half bandwidth of the matrix. | |

Item | Gets and sets the value at the specified position. | |

Order | Gets the order of the matrix (the number of rows and columns). | |

Rows | Gets the number of rows in the matrix. |

Methods

Name | Description | |
---|---|---|

Add | Adds two banded matrices. | |

Clone | Creates a deep copy of this matrix. | |

DeepenThisCopy | Guarantees that there is only one reference to the underlying data and that this data is in contiguous storage. | |

Divide(DoubleComplex, DoubleHermitianBandMatrix) | Divides a scalar by the non-zero elements of a banded matrix. | |

Divide(DoubleHermitianBandMatrix, DoubleComplex) | Divides the non-zero elements of a banded matrix by a scalar. | |

Divide(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Divides a banded matrix by another. | |

Equals |
Tests for equality of this matrix and another matrix.
Two matrices are equal if they have the same dimensions, upper bandwidth
and all values are equal.
(Overrides ObjectEquals(Object)) | |

GetHashCode |
Returns an integer hash code for this matrix.
(Overrides ObjectGetHashCode) | |

IsDiagonalReal | Determines if the main diagonal elements are real values. | |

LeadingSubmatrix | Returns the k by k upper left corner of the matrix. | |

MakeDiagonalReal | Sets the imaginary parts on the main diagonal to zero thereby meeting the strict definition of an Hermitian banded matrix. | |

Multiply(DoubleComplex, DoubleHermitianBandMatrix) | Multiplies the non-zero elements of a banded matrix by a scalar. | |

Multiply(DoubleHermitianBandMatrix, DoubleComplex) | Multiplies the non-zero elements of a banded matrix and a scalar. | |

Multiply(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Multiplies two banded matrices. | |

Negate | Negation operator. | |

Resize(Int32) | Changes the dimensions of this matrix to those specified, adding zeros or truncating as necessary. | |

Resize(Int32, Int32) | Changes the dimensions and half bandwidth of this matrix to those specified, adding zeros or truncating as necessary. | |

ShallowCopy | Creates a shallow copy of this matrix. | |

Subtract | Subtracts two banded matrices. | |

ToGeneralMatrix | Converts this banded Hermitian matrix to a general matrix. | |

ToString |
Returns a formatted string representation of this matrix.
(Overrides ObjectToString) | |

ToString(String) | Returns a formatted string representation of this matrix. Numbers are displayed using the specified format. | |

ToTabDelimited | Returns a formatted string representation of this matrix using tabs and newlines. | |

ToTabDelimited(String) | Returns a formatted string representation of this matrix using tabs and newlines. Numbers are formatted using the specified format string. | |

Transpose | Transposes the matrix. |

Operators

Name | Description | |
---|---|---|

Addition(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Adds two Hermitian banded matrices. | |

Division(DoubleComplex, DoubleHermitianBandMatrix) | Divides a scalar by the non-zero elements of a Hermitian banded matrix. | |

Division(DoubleHermitianBandMatrix, DoubleComplex) | Divides the non-zero elements of a Hermitian banded matrix by a scalar. | |

Division(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Divides a Hermitian banded matrix by another. | |

Equality(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Tests for equality of two Hermitian banded matrices. Two matrices are equal if they have the same dimensions, and half bandwidth, and all values are equal. | |

(DoubleSymBandMatrix to DoubleHermitianBandMatrix) | Implicitly converts a DoubleSymBandMatrix instance into a DoubleHermitianBandMatrix instance. | |

Inequality(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Tests for equality of two Hermitian banded matrices. Two matrices are equal if they have the same dimensions, and half bandwidths, and all values are equal. | |

Multiply(DoubleComplex, DoubleHermitianBandMatrix) | Multiplies the non-zero elements of a Hermitian banded matrix by a scalar. | |

Multiply(DoubleHermitianBandMatrix, DoubleComplex) | Multiplies the non-zero elements of a Hermitian banded matrix and a scalar. | |

Multiply(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Multiplies two Hermitian banded matrices. | |

Subtraction(DoubleHermitianBandMatrix, DoubleHermitianBandMatrix) | Subtracts two Hermitian banded matrices. | |

UnaryNegation(DoubleHermitianBandMatrix) | Negation operator. | |

UnaryPlus(DoubleHermitianBandMatrix) | Unary + operator. Just returns the input matrix. |

Remarks

If hb is the half bandwidth, then the element in the ith row, jth
column is defined to be zero whenever j - i > hb. or i - j > hb.

The upper triangular part of the matrix is stored in a vector, column by column (zero elements and the lower triagular part of the matrix are not stored). There are some blank entries in the data vector so the each column takes up the same number of elements, half bandwidth + 1, in the vector. For example, the following 9 by 9 matrix with half bandwidth 2,
is stored in a data vector v as
where x denotes an unused location.

The upper triangular part of the matrix is stored in a vector, column by column (zero elements and the lower triagular part of the matrix are not stored). There are some blank entries in the data vector so the each column takes up the same number of elements, half bandwidth + 1, in the vector. For example, the following 9 by 9 matrix with half bandwidth 2,

C#

| a11 a12 a13 0 0 0 0 0 0 | | a12 a22 a23 a24 0 0 0 0 0 | | a13 a23 a33 a34 a35 0 0 0 0 | A = | 0 a24 a34 a44 a45 a46 0 0 0 | | 0 0 a35 a45 a55 a56 a57 0 0 | | 0 0 0 a46 a56 a66 a67 a68 0 | | 0 0 0 0 a57 a67 a77 a78 a79 | | 0 0 0 0 0 a68 a78 a88 a89 | | 0 0 0 0 0 0 a79 a89 a99 |

C#

v = [x x a11 x a12 a22 a13 a23 a33 a24 a34 a44 a35 a45 a55 a46 a56 a66 a57 a67 a77 a68 a78 a88 a79 a89 a99 ]

See Also