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.Complex
    • ComplexBandVector Class
    • ComplexCholeskyDecomposition Class
    • ComplexColumnCollection Structure
    • ComplexConstantMatrix Class
    • ComplexConstantVector Class
    • ComplexDecomposition Class
    • ComplexDenseMatrix Class
    • ComplexDenseVector Class
    • ComplexDiagonalMatrix Class
    • ComplexHermitianMatrix Class
    • ComplexLeastSquaresSolver Class
    • ComplexLinearOperator Class
    • ComplexLUDecomposition Class
    • ComplexMatrixView Class
    • ComplexQRDecomposition Class
    • ComplexRowCollection Structure
    • ComplexSingularValueDecomposition Class
    • ComplexTriangularMatrix Class
    • ComplexVectorView Class
    • ComposedComplexMatrix Class
    • ComposedComplexVector Class
    • IComplexLeastSquaresSolver Interface
    • IComplexStorage Interface
    • ISingleComplexLeastSquaresSolver Interface
    • ISingleComplexStorage Interface
    • SingleComplexBandVector Class
    • SingleComplexCholeskyDecomposition Class
    • SingleComplexColumnCollection Structure
    • SingleComplexConstantVector Class
    • SingleComplexDecomposition Class
    • SingleComplexDenseMatrix Class
    • SingleComplexDenseVector Class
    • SingleComplexHermitianMatrix Class
    • SingleComplexLeastSquaresSolver Class
    • SingleComplexLinearTransformation Class
    • SingleComplexLUDecomposition Class
    • SingleComplexMatrixView Class
    • SingleComplexQRDecomposition Class
    • SingleComplexRowCollection Structure
    • SingleComplexSingularValueDecomposition Class
    • SingleComplexTriangularMatrix Class
    • SingleComplexVectorView Class
  • ComplexSingularValueDecomposition Class
    • ComplexSingularValueDecomposition Constructors
    • Properties
    • Methods
ComplexSingularValueDecomposition ClassExtreme Optimization Numerical Libraries for .NET Professional
Represents the singular value decomposition of a matrix.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebra.ComplexComplexLinearOperator
    Extreme.Mathematics.LinearAlgebra.ComplexComplexDecomposition
      Extreme.Mathematics.LinearAlgebra.ComplexComplexSingularValueDecomposition

Namespace: Extreme.Mathematics.LinearAlgebra.Complex
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 ComplexSingularValueDecomposition : ComplexDecomposition
Public MustInherit Class ComplexSingularValueDecomposition
	Inherits ComplexDecomposition
public ref class ComplexSingularValueDecomposition abstract : public ComplexDecomposition
[<AbstractClassAttribute>]
type ComplexSingularValueDecomposition =  
    class
        inherit ComplexDecomposition
    end

The ComplexSingularValueDecomposition type exposes the following members.

Constructors

  NameDescription
Public methodComplexSingularValueDecomposition(ComplexDenseMatrix, Boolean)
Constructs a new ComplexSingularValueDecomposition object.
Public methodComplexSingularValueDecomposition(ComplexDenseMatrix, SingularValueDecompositionFactors, Boolean)
Constructs a new ComplexSingularValueDecomposition object.
Top
Properties

  NameDescription
Public propertyBaseMatrix
Gets the underlying matrix of the decomposition.
(Inherited from ComplexDecomposition.)
Public propertyComplexSingularValueMatrix
Gets a matrix with the singular values on the diagonal.
Protected propertyDone
Gets or sets whether the decomposition has been performed.
(Inherited from ComplexDecomposition.)
Public propertyFactors
Gets a collection of the matrix factors that make up the decomposition.
(Overrides ComplexDecompositionFactors.)
Public propertyLeftSingularVectors
Gets the left singular vectors of the decomposition.
Public propertyOverwrite
Gets or sets a value indicating whether the BaseMatrix should be overwritten by its decomposition.
(Inherited from ComplexDecomposition.)
Public propertyRequestedFactors
Gets or sets which factors of the singular value decomposition should be calculated.
Public propertyRightSingularVectors
Gets the right singular vectors of the decomposition.
Public propertySingularValueMatrix
Gets a matrix with the singular values on the diagonal.
Public propertySingularValues
Gets a vector containing the singular values.
Top
Methods

  NameDescription
Public methodDecompose
Performs the actual decomposition.
(Inherited from ComplexDecomposition.)
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 the ComplexMatrix.
(Overrides ComplexLinearOperatorEstimateConditionNumber.)
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 the decomposed ComplexMatrix.
(Overrides ComplexLinearOperatorGetDeterminant.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetInverse
Calculates the inverse matrix..
(Inherited from ComplexLinearOperator.)
Public methodGetInverse(Boolean)
Calculates the inverse of the factorized ComplexMatrix.
(Overrides ComplexLinearOperatorGetInverse(Boolean).)
Public methodGetObjectData
Populates a SerializationInfo with the data needed to serialize the target object.
(Inherited from ComplexLinearOperator.)
Public methodGetPseudoInverse
Calculates the pseudo-inverse of the factorized ComplexMatrix.
Public methodGetPseudoInverse(Double)
Calculates the pseudo-inverse of the factorized ComplexMatrix.
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 ComplexDecomposition.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMultiply(ComplexMatrix)
Multiplies the decomposition to a matrix.
(Inherited from ComplexDecomposition.)
Public methodMultiply(ComplexVector)
Applies the base matrix of the decomposition to a vector.
(Inherited from ComplexDecomposition.)
Public methodMultiplyTranspose(ComplexMatrix)
Multiplies the transpose of the decomposition to a matrix.
(Inherited from ComplexDecomposition.)
Public methodMultiplyTranspose(ComplexVector)
Multiplies the transpose of the decomposition to a vector.
(Inherited from ComplexDecomposition.)
Public methodRank
Returns the numerical rank of a matrix.
(Inherited from ComplexLinearOperator.)
Public methodRank(Double)
Returns the numerical rank of a matrix using the specified tolerance.
(Overrides ComplexLinearOperatorRank(Double).)
Protected methodSetSingular
Sets a flag that indicates the underlying matrix of this decomposition is singular.
(Inherited from ComplexDecomposition.)
Public methodSolve(ComplexMatrix)
Solves the system of linear equations for the specified right-hand side ComplexMatrix.
(Inherited from ComplexLinearOperator.)
Public methodSolve(ComplexVector)
Solves the system of linear equations for the specified right-hand side complex vector.
(Inherited from ComplexLinearOperator.)
Public methodSolve(ComplexDenseMatrix, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side ComplexDenseMatrix and overwrites the right-hand side with the solution.
(Overrides ComplexLinearOperatorSolve(ComplexDenseMatrix, Boolean).)
Public methodSolve(ComplexDenseVector, Boolean)
Solves the system of simultaneous linear equations for the specified right-hand side complex vector.
(Overrides ComplexLinearOperatorSolve(ComplexDenseVector, Boolean).)
Public methodSolveTranspose(ComplexMatrix)
Solves the transposed system of linear equations for the specified right-hand side ComplexMatrix.
(Inherited from ComplexLinearOperator.)
Public methodSolveTranspose(ComplexVector)
Solves the system of linear equations for the specified right-hand side complex vector.
(Inherited from ComplexLinearOperator.)
Public methodSolveTranspose(ComplexDenseMatrix, Boolean)
Solves the transposed system of linear equations for the specified right-hand side ComplexDenseMatrix and optionally overwrites the right-hand side with the solution.
(Overrides ComplexLinearOperatorSolveTranspose(ComplexDenseMatrix, Boolean).)
Public methodSolveTranspose(ComplexDenseVector, Boolean)
Solves the transposed system of linear equations for the specified right-hand side ComplexDenseVector and optionally overwrites the right-hand side with the solution.
(Overrides ComplexLinearOperatorSolveTranspose(ComplexDenseVector, Boolean).)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Remarks

The singular value decomposition (SVD) of a matrix A rewrites the matrix in the form A= USVT, where U and V are orthogonal matrices, and S is a diagonal matrix whose diagonal contains the singular values of the matrix.

ComplexQRDecomposition can operate in two modes. In overwrite mode, the original matrix is overwritten by 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.

ComplexSingularValueDecomposition inherits from LinearOperator. This means you can use it to solve systems of linear equations. You can solve for a single right-hand side, or for multiple right-hand sides using the Solve(ComplexDenseMatrix, Boolean) method. You can also calculate the determinant, the inverse, and an estimate for the EstimateConditionNumber.

In addition, the ComplexSingularValueDecomposition class provides some unique methods. The GetPseudoInverse method calculates the pseudo-inverse of the matrix. This is a matrix A+ such that AA+A = A.

The managed implementation of the singular value decomposition is based on the LINPACK routine DSVDC. The native version uses the LAPACK routine DGESDD.

Version Information

Numerical Libraries

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

Reference

Extreme.Mathematics.LinearAlgebra.Complex Namespace
Extreme.Mathematics.LinearAlgebra.ComplexComplexDenseMatrix
Extreme.Mathematics.LinearAlgebraLinearOperator

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.