Show / Hide Table of Contents

Class DenseLUSolver<T>

An base class for dense linear systems that can be solved using LU decomposition. Pivoting is controlled by the

Inheritance
object
ParameterSet
ParameterSetCollection
PivotingSolver<IMatrix<T>, IVector<T>, T>
DenseLUSolver<T>
DenseRealSolver
Implements
IPivotingSolver<IMatrix<T>, IVector<T>, T>
ISolver<T>
IParameterSetCollection
IParameterSet
IParameterized<RookPivoting<T>>
Inherited Members
PivotingSolver<IMatrix<T>, IVector<T>, T>.IsFactored
PivotingSolver<IMatrix<T>, IVector<T>, T>.NeedsReordering
PivotingSolver<IMatrix<T>, IVector<T>, T>.Size
PivotingSolver<IMatrix<T>, IVector<T>, T>.this[int, int]
PivotingSolver<IMatrix<T>, IVector<T>, T>.this[MatrixLocation]
PivotingSolver<IMatrix<T>, IVector<T>, T>.this[int]
PivotingSolver<IMatrix<T>, IVector<T>, T>.Row
PivotingSolver<IMatrix<T>, IVector<T>, T>.Column
PivotingSolver<IMatrix<T>, IVector<T>, T>.Matrix
PivotingSolver<IMatrix<T>, IVector<T>, T>.Vector
PivotingSolver<IMatrix<T>, IVector<T>, T>.Precondition(PreconditioningMethod<IMatrix<T>, IVector<T>, T>)
PivotingSolver<IMatrix<T>, IVector<T>, T>.SwapRows(int, int)
PivotingSolver<IMatrix<T>, IVector<T>, T>.SwapColumns(int, int)
PivotingSolver<IMatrix<T>, IVector<T>, T>.Reset()
PivotingSolver<IMatrix<T>, IVector<T>, T>.Clear()
PivotingSolver<IMatrix<T>, IVector<T>, T>.ExternalToInternal(MatrixLocation)
PivotingSolver<IMatrix<T>, IVector<T>, T>.InternalToExternal(MatrixLocation)
PivotingSolver<IMatrix<T>, IVector<T>, T>.ToString()
PivotingSolver<IMatrix<T>, IVector<T>, T>.Factor()
PivotingSolver<IMatrix<T>, IVector<T>, T>.OrderAndFactor()
PivotingSolver<IMatrix<T>, IVector<T>, T>.SetParameter<P>(string, P)
PivotingSolver<IMatrix<T>, IVector<T>, T>.ForwardSubstitute(IVector<T>)
PivotingSolver<IMatrix<T>, IVector<T>, T>.BackwardSubstitute(IVector<T>)
PivotingSolver<IMatrix<T>, IVector<T>, T>.ComputeDegenerateContribution(int)
PivotingSolver<IMatrix<T>, IVector<T>, T>.ForwardSubstituteTransposed(IVector<T>)
PivotingSolver<IMatrix<T>, IVector<T>, T>.BackwardSubstituteTransposed(IVector<T>)
PivotingSolver<IMatrix<T>, IVector<T>, T>.ComputeDegenerateContributionTransposed(int)
PivotingSolver<IMatrix<T>, IVector<T>, T>.Degeneracy
PivotingSolver<IMatrix<T>, IVector<T>, T>.PivotSearchReduction
ParameterSetCollection.GetParameterSet<P>()
ParameterSetCollection.TryGetParameterSet<P>(out P)
ParameterSetCollection.ParameterSets
ParameterSetCollection.SetParameter<P>(string, P)
ParameterSetCollection.TrySetParameter<P>(string, P)
ParameterSetCollection.GetProperty<P>(string)
ParameterSetCollection.TryGetProperty<P>(string, out P)
ParameterSetCollection.CreateParameterSetter<P>(string)
ParameterSetCollection.CreatePropertyGetter<P>(string)
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 abstract class DenseLUSolver<T> : PivotingSolver<IMatrix<T>, IVector<T>, T>, IPivotingSolver<IMatrix<T>, IVector<T>, T>, ISolver<T>, IParameterSetCollection, IParameterSet, IParameterized<RookPivoting<T>>
Type Parameters
Name Description
T

The base value type.

Constructors

DenseLUSolver(Func<T, double>)

Initializes a new instance of the DenseLUSolver<T> class.

Declaration
protected DenseLUSolver(Func<T, double> magnitude)
Parameters
Type Name Description
Func<T, double> magnitude

The magnitude.

Exceptions
Type Condition
ArgumentNullException

Thrown if magnitude is null.

DenseLUSolver(int, Func<T, double>)

Initializes a new instance of the DenseLUSolver<T> class.

Declaration
protected DenseLUSolver(int size, Func<T, double> magnitude)
Parameters
Type Name Description
int size

The size.

Func<T, double> magnitude

The magnitude.

Exceptions
Type Condition
ArgumentNullException

Thrown if magnitude is null.

ArgumentOutOfRangeException

Thrown if size is negative.

Properties

Parameters

Gets the pivoting strategy.

Declaration
public RookPivoting<T> Parameters { get; }
Property Value
Type Description
RookPivoting<T>

The pivoting strategy.

Methods

Clear()

Clears the system of any elements. The size of the system becomes 0.

Declaration
public override void Clear()
Overrides
PivotingSolver<IMatrix<T>, IVector<T>, T>.Clear()

Eliminate(int, int)

Eliminates the submatrix right and below the pivot.

Declaration
protected abstract void Eliminate(int step, int size)
Parameters
Type Name Description
int step

The current elimination step.

int size

The maximum row/column to be eliminated.

Exceptions
Type Condition
AlgebraException

Thrown if the pivot has a magnitude of zero.

Factor()

Factor the equation matrix and right hand side vector. This method can save time when factoring similar matrices in succession.

Declaration
public override bool Factor()
Returns
Type Description
bool

true if the factoring was successful; otherwise, false.

Overrides
PivotingSolver<IMatrix<T>, IVector<T>, T>.Factor()

Factor(int)

Factor the equation matrix and right hand side vector.

Declaration
public bool Factor(int size)
Parameters
Type Name Description
int size

The size of the matrix that should be factored.

Returns
Type Description
bool

true if the factoring was successful; otherwise false.

Remarks

This factoring method allows reusing matrices if only a small matrix is needed.

OrderAndFactor()

Order and factor the equation matrix and right hand side vector. This method will reorder the matrix as it sees fit.

Declaration
public override int OrderAndFactor()
Returns
Type Description
int

The number of rows that were successfully eliminated.

Overrides
PivotingSolver<IMatrix<T>, IVector<T>, T>.OrderAndFactor()

Precondition(PreconditioningMethod<IMatrix<T>, IVector<T>, T>)

Preconditions the solver matrix and right hand side vector.

Declaration
public override void Precondition(PreconditioningMethod<IMatrix<T>, IVector<T>, T> method)
Parameters
Type Name Description
PreconditioningMethod<IMatrix<T>, IVector<T>, T> method

The method.

Overrides
PivotingSolver<IMatrix<T>, IVector<T>, T>.Precondition(PreconditioningMethod<IMatrix<T>, IVector<T>, T>)

Implements

IPivotingSolver<M, V, T>
ISolver<T>
IParameterSetCollection
IParameterSet
IParameterized<P>

Extension Methods

Utility.ThrowIfNull<T>(T, string)
Documentation.ParameterValues<T>(IParameterSet, bool)
Documentation.Parameters(IParameterSet)
Documentation.ParameterValues<T>(IParameterSetCollection, bool)
Documentation.Parameters(IParameterSetCollection)

See Also

IMatrix<T>
IVector<T>
In this article
Back to top Generated by DocFX