Show / Hide Table of Contents

Class MarkowitzDiagonal<T>

Markowitz-count based strategy for finding a pivot. Searches the whole diagonal of the submatrix.

Inheritance
object
MarkowitzSearchStrategy<T>
MarkowitzDiagonal<T>
Implements
ICloneable<MarkowitzSearchStrategy<T>>
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
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
MarkowitzSearchStrategy<T>.Clone()

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
MarkowitzSearchStrategy<T>.FindPivot(Markowitz<T>, ISparseMatrix<T>, int, int)
Exceptions
Type Condition
ArgumentNullException

Thrown if markowitz or matrix is null.

ArgumentOutOfRangeException

Thrown if eliminationStep or max not 1 or higher, or eliminationStep is higher than max.

Implements

ICloneable<T>

Extension Methods

Utility.ThrowIfNull<T>(T, string)
In this article
Back to top Generated by DocFX