Class MarkowitzDiagonal<T>
Markowitz-count based strategy for finding a pivot. Searches the whole diagonal of the submatrix.
Implements
Inherited Members
Namespace: SpiceSharp.Algebra.Solve
Assembly: SpiceSharp.dll
Syntax
public class MarkowitzDiagonal<T> : MarkowitzSearchStrategy<T>, ICloneable<MarkowitzSearchStrategy<T>>
Type Parameters
| Name | Description |
|---|---|
| T | The base value type. |
Properties
TiesMultiplier
Gets or sets a heuristic for speeding up pivot searching.
Declaration
[GreaterThanOrEquals(0)]
public static int TiesMultiplier { get; set; }
Property Value
| Type | Description |
|---|---|
| int | The multiplier for searching pivots with the same markowitz products. |
Remarks
Instead of searching the whole matrix for a pivot on the diagonal, the search strategy can choose to stop searching for more pivot elements with the lowest "Markowitz product", which scores how many extra unwanted elements a row/column could create as a by-product of factoring the solver. When this score is tied, this search strategy will keep searching until we have (MarkowitzProduct * TiesMultiplier) eligible pivots. In other words, pivots with a high Markowitz product will ask the search strategy for more entries to make sure that we can't do better.
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown if the value is negative. |
Methods
Clone()
Clones the instance.
Declaration
public override MarkowitzSearchStrategy<T> Clone()
Returns
| Type | Description |
|---|---|
| MarkowitzSearchStrategy<T> | The cloned instance. |
Overrides
FindPivot(Markowitz<T>, ISparseMatrix<T>, int, int)
Find a pivot in a matrix.
Declaration
public override Pivot<ISparseMatrixElement<T>> FindPivot(Markowitz<T> markowitz, ISparseMatrix<T> matrix, int eliminationStep, int max)
Parameters
| Type | Name | Description |
|---|---|---|
| Markowitz<T> | markowitz | The Markowitz pivot strategy. |
| ISparseMatrix<T> | matrix | The matrix. |
| int | eliminationStep | The current elimination step. |
| int | max | The maximum row/column index. |
Returns
| Type | Description |
|---|---|
| Pivot<ISparseMatrixElement<T>> | The pivot element, or null if no pivot was found. |
Overrides
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown if |
| ArgumentOutOfRangeException | Thrown if |