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
  • 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
  • Decomposition(T) Class
    • Decomposition(T) Constructor
    • Properties
    • Methods

DecompositionT Class

Extreme Optimization Numerical Libraries for .NET Professional
Represents a matrix decomposition.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebraLinearOperatorT
    Extreme.Mathematics.LinearAlgebraDecompositionT
      More...

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

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

Type Parameters

T

The DecompositionT type exposes the following members.

Constructors

  NameDescription
Protected methodDecompositionT
Constructs a new DecompositionT object.
Top
Properties

  NameDescription
Public propertyBaseMatrix
Gets the underlying matrix of the decomposition.
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.
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.
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.
(Inherited from LinearOperatorT.)
Public propertyRowIndex
Gets or sets the index of labels for the rows of the matrix.
(Inherited from LinearOperatorT.)
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.)
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 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.
(Overrides LinearOperatorTIsSingular.)
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.
(Overrides LinearOperatorTLeastSquaresSolveInto(VectorT, VectorT).)
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.
(Overrides LinearOperatorTMultiplyAndAddAsLeftFactorCore(T, VectorT, T, TransposeOperation, VectorT, VectorT).)
Protected methodMultiplyAsLeftCore(TransposeOperation, MatrixT, MatrixT)
Multiplies a matrix by the linear operator and returns the result.
(Overrides LinearOperatorTMultiplyAsLeftCore(TransposeOperation, MatrixT, MatrixT).)
Protected methodMultiplyAsLeftCore(TransposeOperation, VectorT, VectorT)
Multiplies a vector by the linear operator and returns the result.
(Overrides LinearOperatorTMultiplyAsLeftCore(TransposeOperation, VectorT, VectorT).)
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 a matrix using the specified tolerance.
(Inherited from LinearOperatorT.)
Protected methodSetSingular
Sets a flag that indicates the underlying matrix of this decomposition is singular.
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 DecompositionT class represents a decomposition of a matrix into a product of matrices with specific properties.

The DecompositionT 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 LinearOperatorT abstract base class.

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

ClassDescription
LUDecompositionTRepresents a decomposition into a lower and an upper-triangular matrix.
QRDecompositionTRepresents a decomposition into an orthogonal and an upper triangular matrix.
CholeskyDecompositionTRepresents the decomposition of a SymmetricMatrixT into the product of a lower-triangular matrix and its transpose.

Notes to inheritors: When you inherit from DecompositionT, you must override the following members: EstimateConditionNumber, GetDeterminant, GetInverse, Rank(T), Solve(VectorT).

See Also

Reference

Extreme.Mathematics.LinearAlgebra Namespace
Extreme.Mathematics.LinearAlgebraLUDecompositionT
Extreme.Mathematics.LinearAlgebraQRDecompositionT
Extreme.Mathematics.LinearAlgebraCholeskyDecompositionT
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebraLinearOperatorT
    Extreme.Mathematics.LinearAlgebraDecompositionT
      Extreme.Mathematics.LinearAlgebraCholeskyDecompositionT
      Extreme.Mathematics.LinearAlgebraComplexSingularValueDecompositionT
      Extreme.Mathematics.LinearAlgebraEigenvalueDecompositionT
      Extreme.Mathematics.LinearAlgebraLQDecompositionT
      Extreme.Mathematics.LinearAlgebraLUDecompositionT
      Extreme.Mathematics.LinearAlgebraNonNegativeMatrixFactorizationT
      Extreme.Mathematics.LinearAlgebraQLDecompositionT
      Extreme.Mathematics.LinearAlgebraQRDecompositionT
      Extreme.Mathematics.LinearAlgebraRQDecompositionT
      Extreme.Mathematics.LinearAlgebraSingularValueDecompositionT
      Extreme.Mathematics.LinearAlgebraSymmetricIndefiniteDecompositionT

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.