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
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
    • 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.Mathematics
    • Extreme.Mathematics.Algorithms
    • Extreme.Mathematics.Calculus
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations
    • Extreme.Mathematics.Curves
    • Extreme.Mathematics.Curves.Nonlinear
    • Extreme.Mathematics.Distributed
    • Extreme.Mathematics.Distributed.Cuda
    • Extreme.Mathematics.EquationSolvers
    • Extreme.Mathematics.FSharp
    • Extreme.Mathematics.Generic
    • Extreme.Mathematics.Generic.LinearAlgebra
    • Extreme.Mathematics.Generic.LinearAlgebra.Implementation
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers
    • Extreme.Mathematics.Generic.SignalProcessing
    • Extreme.Mathematics.Implementation
    • Extreme.Mathematics.LinearAlgebra
    • Extreme.Mathematics.LinearAlgebra.Complex
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions
    • Extreme.Mathematics.LinearAlgebra.Implementation
    • Extreme.Mathematics.LinearAlgebra.IO
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners
    • Extreme.Mathematics.LinearAlgebra.Providers
    • Extreme.Mathematics.LinearAlgebra.Sparse
    • Extreme.Mathematics.Optimization
    • Extreme.Mathematics.Optimization.Genetic
    • Extreme.Mathematics.Optimization.LineSearches
    • Extreme.Mathematics.Random
    • Extreme.Mathematics.SignalProcessing
    • Extreme.Numerics.FSharp
    • Extreme.Statistics
    • Extreme.Statistics.Distributions
    • Extreme.Statistics.IO
    • Extreme.Statistics.Linq
    • Extreme.Statistics.Multivariate
    • Extreme.Statistics.Random
    • Extreme.Statistics.Tests
    • Extreme.Statistics.TimeSeriesAnalysis
  • Extreme.Mathematics.LinearAlgebra
    • BandMatrix Class
    • BandMatrix(T) Class
    • BandVector Class
    • BlockVector(T) Class
    • CholeskyDecomposition Class
    • CholeskyDecomposition(T) Class
    • CloningMethod Enumeration
    • ColumnCollection Structure
    • ColumnCollection(T) Structure
    • ComplexEigenvalueDecomposition Class
    • ComplexSingularValueDecomposition(T) Class
    • ComponentReadOnlyException Class
    • ComposedComplexMatrix(T) Class
    • ComposedComplexVector(T) Class
    • ConstantMatrix Class
    • ConstantMatrix(T) Class
    • ConstantVector Class
    • ConstantVector(T) Class
    • Decomposition Class
    • Decomposition(T) Class
    • DenseMatrix Class
    • DenseMatrix(T) Class
    • DenseVector Class
    • DenseVector(T) Class
    • DiagonalMatrix Class
    • DiagonalMatrix(T) Class
    • EigenvalueDecomposition Class
    • EigenvalueDecomposition(T) Class
    • EigenvalueRange Enumeration
    • GeneralizedDecomposition(T) Class
    • GeneralizedEigenvalueDecomposition(T) Class
    • GeneralizedSingularValueDecomposition(T) Class
    • GeneralizedSingularValueDecompositionFactors Enumeration
    • HermitianEigenvalueDecomposition Class
    • HermitianMatrix(T) Class
    • IDoubleStorage Interface
    • ILeastSquaresSolver Interface
    • IndexedVector Class
    • IndexedVector(T) Class
    • IndexValuePair Structure
    • IndexValuePair(T) Structure
    • IResizableMatrix Interface
    • IResizableMatrix(T) Interface
    • ISingleLeastSquaresSolver Interface
    • ISingleResizableMatrix Interface
    • ISingleStorage Interface
    • Kernel Class
    • LeastSquaresSolutionMethod Enumeration
    • LeastSquaresSolver Class
    • LeastSquaresSolver(T) Class
    • LinearAlgebraOperations Class
    • LinearOperator Class
    • LinearOperator(T) Class
    • LQDecomposition(T) Class
    • LUDecomposition Class
    • LUDecomposition(T) Class
    • MatrixNotPositiveDefiniteException Class
    • MatrixSingularException Class
    • MatrixStructure Enumeration
    • MatrixView Class
    • MatrixView(T) Class
    • NonHermitianEigenvalueDecomposition Class
    • NonHermitianEigenvalueDecomposition(T) Class
    • NonNegativeMatrixFactorization Class
    • NonNegativeMatrixFactorization(T) Class
    • NonsymmetricEigenvalueDecomposition Class
    • PermutationMatrix Class
    • PivotVector Structure
    • QLDecomposition(T) Class
    • QRDecomposition Class
    • QRDecomposition(T) Class
    • Range Structure
    • RowCollection Structure
    • RowCollection(T) Structure
    • RowColumnValueTriplet Structure
    • RowColumnValueTriplet(T) Structure
    • RQDecomposition(T) Class
    • SingleBandCholeskyDecomposition Class
    • SingleBandLUDecomposition Class
    • SingleBandMatrix Class
    • SingleBandVector Class
    • SingleBandVector.BandVectorEnumerator Structure
    • SingleCholeskyDecomposition Class
    • SingleColumnCollection Structure
    • SingleConstantMatrix Class
    • SingleConstantVector Class
    • SingleDecomposition Class
    • SingleDenseMatrix Class
    • SingleDenseVector Class
    • SingleDiagonalMatrix Class
    • SingleEigenvalueDecomposition Class
    • SingleIndexedVector Class
    • SingleIndexValuePair Structure
    • SingleKernel Class
    • SingleLeastSquaresSolver Class
    • SingleLinearTransformation Class
    • SingleLUDecomposition Class
    • SingleMatrixView Class
    • SinglePermutationMatrix Class
    • SingleQRDecomposition Class
    • SingleRowCollection Structure
    • SingleRowColumnValueTriplet Structure
    • SingleSingularValueDecomposition Class
    • SingleSparseLUDecomposition Class
    • SingleSparseMatrix Class
    • SingleSparseVector Class
    • SingleSymmetricEigenvalueDecomposition Class
    • SingleSymmetricMatrix Class
    • SingleTriangularMatrix Class
    • SingularValueDecomposition Class
    • SingularValueDecomposition(T) Class
    • SingularValueDecompositionFactors Enumeration
    • SparseCompressedColumnMatrix Class
    • SparseCompressedColumnMatrix(T) Class
    • SparseMatrix Class
    • SparseMatrix(T) Class
    • SparseVector Class
    • SparseVector(T) Class
    • SymmetricEigenvalueDecomposition Class
    • SymmetricIndefiniteDecomposition Class
    • SymmetricIndefiniteDecomposition(T) Class
    • SymmetricMatrix Class
    • SymmetricMatrix(T) Class
    • TriangularMatrix Class
    • TriangularMatrix(T) Class
  • Decomposition Class
    • Decomposition Constructor
    • Properties
    • Methods
Decomposition ClassExtreme Optimization Numerical Libraries for .NET Professional
Represents a matrix decomposition.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebraLinearOperator
    Extreme.Mathematics.LinearAlgebraDecomposition
      More...

Namespace: Extreme.Mathematics.LinearAlgebra
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
Syntax

C#
VB
C++
F#
Copy
public abstract class Decomposition : LinearOperator
Public MustInherit Class Decomposition
	Inherits LinearOperator
public ref class Decomposition abstract : public LinearOperator
[<AbstractClassAttribute>]
type Decomposition =  
    class
        inherit LinearOperator
    end

The Decomposition type exposes the following members.

Constructors

  NameDescription
Protected methodDecomposition
Constructs a new Decomposition object.
Top
Properties

  NameDescription
Public propertyBaseMatrix
Gets the underlying matrix of the decomposition.
Public propertyColumnCount
Gets the number of columns in the matrix.
(Overrides LinearOperatorColumnCount.)
Protected propertyDone
Gets or sets whether the decomposition has been performed.
Public propertyFactors
Gets a collection of the matrix factors that make up the decomposition.
Public propertyOverwrite
Gets or sets a value indicating whether the BaseMatrix should be overwritten by its decomposition.
Public propertyRowCount
Gets the number of rows in the matrix.
(Overrides LinearOperatorRowCount.)
Top
Methods

  NameDescription
Public methodAddProductToVector
Multiplies a Vector by this Matrix and stores the result in a second vector of type DenseVector.
(Inherited from LinearOperator.)
Public methodDecompose
Performs the actual decomposition.
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 LinearOperator.)
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 LinearOperator.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetInverse
Calculates the inverse matrix..
(Inherited from LinearOperator.)
Public methodGetInverse(Boolean)
Calculates the inverse of the factorized matrix.
(Inherited from LinearOperator.)
Public methodGetObjectData
Populates a SerializationInfo with the data needed to serialize the target object.
(Inherited from LinearOperator.)
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.
(Overrides LinearOperatorIsSingular.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMultiply(Matrix)
Multiplies the decomposition to a matrix.
(Overrides LinearOperatorMultiply(Matrix).)
Public methodMultiply(Vector)
Applies the base matrix of the decomposition to a vector.
(Overrides LinearOperatorMultiply(Vector).)
Public methodMultiplyTranspose(Matrix)
Multiplies the transpose of the decomposition to a matrix.
(Overrides LinearOperatorMultiplyTranspose(Matrix).)
Public methodMultiplyTranspose(Vector)
Multiplies the transpose of the decomposition to a vector.
(Overrides LinearOperatorMultiplyTranspose(Vector).)
Public methodRank
Returns the numerical rank of a matrix.
(Inherited from LinearOperator.)
Public methodRank(Double)
Returns the numerical rank of a matrix using the specified tolerance.
(Inherited from LinearOperator.)
Protected methodSetSingular
Sets a flag that indicates the underlying matrix of this decomposition is singular.
Public methodSolve(Matrix)
Solves the system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator.)
Public methodSolve(Vector)
Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator.)
Public methodSolve(DenseMatrix, 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 LinearOperator.)
Public methodSolve(DenseVector, 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 LinearOperator.)
Public methodSolveTo(DenseVector, DenseVector)
Solves the system for the specified right-hand side.
(Inherited from LinearOperator.)
Public methodSolveTo(Vector, DenseVector)
Solves the system for the specified right-hand side.
(Inherited from LinearOperator.)
Public methodSolveTranspose(Matrix)
Solves the transposed system of linear equations for the specified right-hand side matrix.
(Inherited from LinearOperator.)
Public methodSolveTranspose(Vector)
Solves the system of linear equations for the specified right-hand side vector.
(Inherited from LinearOperator.)
Public methodSolveTranspose(DenseMatrix, 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 LinearOperator.)
Public methodSolveTranspose(DenseVector, 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 LinearOperator.)
Public methodSolveTransposeTo
Solves the transposed system for the specified right-hand side.
(Inherited from LinearOperator.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Remarks

The Decomposition class represents a decomposition of a matrix into a product of matrices with specific properties.

The Decomposition class defines methods and properties that are shared by all decomposition classes. This includes methods related to solving systems of simultaneous linear equations defined by the LinearOperator abstract base class.

The Decomposition class is an abstract base class and cannot be instantiated directly. Instead, use one of its derived classes. These are:

ClassDescription
LUDecompositionRepresents a decomposition into a lower and an upper-triangular matrix.
QRDecompositionRepresents a decomposition into an orthogonal and an upper triangular matrix.
CholeskyDecompositionRepresents the decomposition of a SymmetricMatrix into the product of a lower-triangular matrix and its transpose.

Notes to inheritors: When you inherit from Decomposition, you must override the following members: EstimateConditionNumber, GetDeterminant, GetInverse, Rank(Double), Solve(DenseMatrix, Boolean), Solve(DenseVector, Boolean).

Version Information

Numerical Libraries

Supported in: 5.x, 4.x
See Also

Reference

Extreme.Mathematics.LinearAlgebra Namespace
Extreme.Mathematics.LinearAlgebraLUDecomposition
Extreme.Mathematics.LinearAlgebraQRDecomposition
Extreme.Mathematics.LinearAlgebraCholeskyDecomposition
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebraLinearOperator
    Extreme.Mathematics.LinearAlgebraDecomposition
      Extreme.Mathematics.LinearAlgebraCholeskyDecomposition
      Extreme.Mathematics.LinearAlgebraEigenvalueDecomposition
      Extreme.Mathematics.LinearAlgebraLUDecomposition
      Extreme.Mathematics.LinearAlgebraNonNegativeMatrixFactorization
      Extreme.Mathematics.LinearAlgebraQRDecomposition
      Extreme.Mathematics.LinearAlgebraSingularValueDecomposition
      Extreme.Mathematics.LinearAlgebraSymmetricIndefiniteDecomposition

Copyright (c) 2004-2016 ExoAnalytics Inc.

Send comments on this topic to support@extremeoptimization.com

Copyright © 2004-2018, 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.