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 |