Extreme Optimization™: Complexity made simple.

Math and Statistics
Libraries for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Partners
    • Contact us
Introduction
Deployment Guide
Nuget packages
Configuration
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Data Analysis Library User's GuideData Analysis Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand Data Access Library User's GuideData Access Library User's Guide
Expand ReferenceReference
  • Extreme Optimization
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Nuget packages
    • Configuration
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Data Analysis Library User's Guide
    • Statistics Library User's Guide
    • Data Access Library User's Guide
    • Reference
  • Reference
    • Extreme
    • Extreme.Collections
    • Extreme.Data
    • Extreme.Data.Json
    • Extreme.Data.Matlab
    • Extreme.Data.R
    • Extreme.Data.Stata
    • Extreme.Data.Text
    • Extreme.DataAnalysis
    • Extreme.DataAnalysis.Linq
    • Extreme.DataAnalysis.Models
    • Extreme.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Providers
    • Extreme.Providers.InteropServices
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.LinearAlgebra
    • BandMatrix(T) Class
    • BlockVector(T) Class
    • CholeskyDecomposition(T) Class
    • CloningMethod Enumeration
    • ColumnCollection(T) Structure
    • ComplexSingularValueDecomposition(T) Class
    • ComponentReadOnlyException Class
    • ComposedComplexMatrix(T) Class
    • ComposedComplexVector(T) Class
    • ConstantMatrix(T) Class
    • ConstantVector(T) Class
    • Decomposition(T) Class
    • DenseMatrix(T) Class
    • DenseVector(T) Class
    • DiagonalMatrix(T) Class
    • EigenvalueDecomposition(T) Class
    • EigenvalueRange Enumeration
    • GeneralizedDecomposition(T) Class
    • GeneralizedEigenvalueDecomposition(T) Class
    • GeneralizedSingularValueDecomposition(T) Class
    • GeneralizedSingularValueDecompositionFactors Enumeration
    • HermitianMatrix(T) Class
    • IndexedVector(T) Class
    • IndexValuePair(T) Structure
    • IResizableMatrix(T) Interface
    • LeastSquaresSolutionMethod Enumeration
    • LeastSquaresSolver(T) Class
    • LinearAlgebraOperations Class
    • LinearOperator(T) Class
    • LQDecomposition(T) Class
    • LUDecomposition(T) Class
    • MatrixNotPositiveDefiniteException Class
    • MatrixSingularException Class
    • MatrixView(T) Class
    • NonHermitianEigenvalueDecomposition(T) Class
    • NonNegativeMatrixFactorization(T) Class
    • PermutationMatrix Class
    • PivotVector Structure
    • QLDecomposition(T) Class
    • QRDecomposition(T) Class
    • RealEigenvalueDecomposition(T) Class
    • RowCollection(T) Structure
    • RowColumnValueTriplet(T) Structure
    • RQDecomposition(T) Class
    • SingularValueDecomposition(T) Class
    • SingularValueDecompositionFactors Enumeration
    • SparseCompressedColumnMatrix(T) Class
    • SparseMatrix(T) Class
    • SparseVector(T) Class
    • SymmetricIndefiniteDecomposition(T) Class
    • SymmetricMatrix(T) Class
    • TriangularMatrix(T) Class
  • SymmetricIndefiniteDecomposition(T) Class
    • SymmetricIndefiniteDecomposition(T) Constructor
    • Properties
    • Methods

SymmetricIndefiniteDecompositionT Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents the symmetric indefinite (Bunch-Kaufman) decomposition of a symmetric matrix.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebraLinearOperatorT
    Extreme.Mathematics.LinearAlgebraDecompositionT
      Extreme.Mathematics.LinearAlgebraSymmetricIndefiniteDecompositionT

Namespace:  Extreme.Mathematics.LinearAlgebra
Assembly:  Extreme.Numerics (in Extreme.Numerics.dll) Version: 8.1.1
Syntax

C#
VB
C++
F#
Copy
public abstract class SymmetricIndefiniteDecomposition<T> : Decomposition<T>
Public MustInherit Class SymmetricIndefiniteDecomposition(Of T)
	Inherits Decomposition(Of T)
generic<typename T>
public ref class SymmetricIndefiniteDecomposition abstract : public Decomposition<T>
[<AbstractClassAttribute>]
type SymmetricIndefiniteDecomposition<'T> =  
    class
        inherit Decomposition<'T>
    end

Type Parameters

T

The SymmetricIndefiniteDecompositionT type exposes the following members.

Constructors

  NameDescription
Protected methodSymmetricIndefiniteDecompositionT
Constructs a new SymmetricIndefiniteDecompositionT object.
Top
Properties

  NameDescription
Public propertyBaseMatrix
Gets the underlying matrix of the decomposition.
(Inherited from DecompositionT.)
Public propertyBlockDiagonalFactor
Returns the block diagonal component of this SymmetricIndefiniteDecompositionT.
Public propertyColumnCount
Gets the number of columns in the matrix.
(Inherited from LinearOperatorT.)
Public propertyColumnIndex
Gets or sets the index of labels for the columns of the matrix.
(Inherited from LinearOperatorT.)
Protected propertyDone
Gets or sets a value that indicates whether the decomposition has been performed.
(Inherited from DecompositionT.)
Public propertyElementType
Gets the element type of the matrix.
(Inherited from LinearOperatorT.)
Public propertyFactors
Gets a collection of the matrix factors that make up the decomposition.
(Overrides DecompositionTFactors.)
Public propertyFactorTriangle
Gets whether the first triangular factor in the decomposition is upper or lower triangular.
Public propertyLowerTriangularFactor
Returns the lower triangular component of this SymmetricIndefiniteDecompositionT.
Public propertyOverwrite
Gets or sets a value indicating whether the BaseMatrix should be overwritten by its decomposition.
(Inherited from DecompositionT.)
Public propertyRowCount
Gets the number of rows in the matrix.
(Inherited from LinearOperatorT.)
Public propertyRowIndex
Gets or sets the index of labels for the rows of the matrix.
(Inherited from LinearOperatorT.)
Public propertyUpperTriangularFactor
Gets the upper triangular component of this SymmetricIndefiniteDecompositionT.
Top
Methods

  NameDescription
Public methodAddProductToVector Obsolete.
Multiplies a VectorT by this instance and stores the result in a second vector of type DenseVectorT.
(Inherited from LinearOperatorT.)
Protected methodComputeFactors
Computes the factors of the decomposition explicitly.
Public methodDecompose
Performs the actual decomposition.
(Inherited from DecompositionT.)
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodEstimateConditionNumber
Calculates an estimate for the condition number of a matrix.
(Inherited from LinearOperatorT.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetDeterminant
Calculates the determinant of a matrix.
(Inherited from LinearOperatorT.)
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetInverse
Calculates the inverse matrix..
(Inherited from LinearOperatorT.)
Public methodGetInverse(Boolean)
Calculates the inverse of the factorized matrix.
(Inherited from LinearOperatorT.)
Public methodGetObjectData
Populates a SerializationInfo with the data needed to serialize the target object.
(Inherited from LinearOperatorT.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsSingular
Gets a value indicating whether the BaseMatrix of this decomposition is singular.
(Inherited from DecompositionT.)
Public methodLeastSquaresSolve(MatrixT)
Solves the system of linear equations for the specified right-hand side matrix in the least squares sense.
(Inherited from LinearOperatorT.)
Public methodLeastSquaresSolve(VectorT)
Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperatorT.)
Public methodLeastSquaresSolve(DenseMatrixT, Boolean)
Solves the system of linear equations for the specified right-hand side dense matrix in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodLeastSquaresSolve(DenseVectorT, Boolean)
Solves the system of linear equations for the specified right-hand side dense vector in the least squares sense and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodLeastSquaresSolveInto(MatrixT, MatrixT)
Solves a system of equations defined by the matrix and multiple right-hand sides in the least squares sense.
(Inherited from LinearOperatorT.)
Public methodLeastSquaresSolveInto(VectorT, VectorT)
Solves a system of equations defined by the matrix and the specified right-hand side in the least squares sense.
(Inherited from DecompositionT.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMultiply(MatrixT)
Applies the linear operator to a matrix.
(Inherited from LinearOperatorT.)
Public methodMultiply(VectorT)
Applies the linear operator to a vector.
(Inherited from LinearOperatorT.)
Public methodMultiply(TransposeOperation, MatrixT) Obsolete.
Multiplies a matrix on the left by this matrix.
(Inherited from LinearOperatorT.)
Public methodMultiply(TransposeOperation, VectorT) Obsolete.
Multiplies a vector on the left by this vector.
(Inherited from LinearOperatorT.)
Protected methodMultiplyAndAddAsLeftFactorCore
Multiplies the matrix with a vector, adds the scaled result to another scaled vector, and returns the result.
(Inherited from DecompositionT.)
Protected methodMultiplyAsLeftCore(TransposeOperation, MatrixT, MatrixT)
Multiplies a matrix by the linear operator and returns the result.
(Inherited from DecompositionT.)
Protected methodMultiplyAsLeftCore(TransposeOperation, VectorT, VectorT)
Multiplies a vector by the linear operator and returns the result.
(Inherited from DecompositionT.)
Public methodMultiplyTranspose(MatrixT)
Applies the transpose of the linear operator to a matrix.
(Inherited from LinearOperatorT.)
Public methodMultiplyTranspose(VectorT)
Applies the (conjugate) transpose of the linear operator to a vector.
(Inherited from LinearOperatorT.)
Public methodRank
Returns the numerical rank of a matrix.
(Inherited from LinearOperatorT.)
Public methodRank(T)
Returns the numerical rank of the matrix using the specified tolerance.
(Overrides LinearOperatorTRank(T).)
Protected methodSetSingular
Sets a flag that indicates the underlying matrix of this decomposition is singular.
(Inherited from DecompositionT.)
Public methodSolve(MatrixT)
Solves the system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperatorT.)
Public methodSolve(VectorT)
Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperatorT.)
Public methodSolve(DenseMatrixT, Boolean)
Solves the system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodSolve(DenseVectorT, Boolean)
Solves the system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodSolveInto(MatrixT, MatrixT)
Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperatorT.)
Public methodSolveInto(VectorT, VectorT)
Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperatorT.)
Public methodSolveInto(TransposeOperation, MatrixT, MatrixT)
Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperatorT.)
Public methodSolveInto(TransposeOperation, VectorT, VectorT)
Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperatorT.)
Public methodSolveTranspose(MatrixT)
Solves the transposed system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperatorT.)
Public methodSolveTranspose(VectorT)
Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperatorT.)
Public methodSolveTranspose(DenseMatrixT, Boolean)
Solves the transposed system of linear equations for the specified right-hand side dense matrix and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodSolveTranspose(DenseVectorT, Boolean)
Solves the transposed system of linear equations for the specified right-hand side dense vector and optionally overwrites the right-hand side with the solution.
(Inherited from LinearOperatorT.)
Public methodSolveTransposeInto(MatrixT, MatrixT)
Solves a system of equations defined by the matrix and multiple right-hand sides.
(Inherited from LinearOperatorT.)
Public methodSolveTransposeInto(VectorT, VectorT)
Solves a system of equations defined by the matrix and the specified right-hand side.
(Inherited from LinearOperatorT.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Remarks

The Bunch-Kaufman decomposition of a real symmetric positive definite matrix A rewrites the matrix in the form A= LDLT or A= UDUT, where L is a unit lower triangular matrix, U is an unit upper triangular matrix, and D is a block diagonal matrix made up of 1x1 and 2x2 blocks.

SymmetricIndefiniteDecompositionT can operate in two modes. In overwrite mode, the original matrix is overwritten with the result of the decomposition. In preserve mode, the original matrix is preserved, and a new matrix is created to hold the decomposition. You can set the mode through the Overwrite property.

SymmetricIndefiniteDecompositionT inherits from LinearOperatorT. This means you can use it to solve systems of linear equations where the matrix of the system is symmetric but not necessarily. You can solve for a single right-hand side, or for multiple right-hand sides using the Solve(VectorT) method. You can also calculate the determinant the inverse, and an estimate for the condition number.

To solve a symmetric positive definite system of equations, you can use the CholeskyDecompositionT class instead.

See Also

Reference

Extreme.Mathematics.LinearAlgebra Namespace
Extreme.Mathematics.LinearAlgebraSymmetricMatrixT
Extreme.Mathematics.LinearAlgebraTriangularMatrixT
Extreme.Mathematics.LinearAlgebraCholeskyDecompositionT
Extreme.Mathematics.LinearAlgebraLinearOperatorT

Copyright (c) 2004-2021 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.