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
ComplexMatrix ClassExtreme Optimization Numerical Libraries for .NET Professional
Represents a matrix, a two-dimensional array of real numbers.
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebra.ComplexComplexLinearOperator
    Extreme.MathematicsComplexMatrix
      More...

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

C#
VB
C++
F#
Copy
public abstract class ComplexMatrix : ComplexLinearOperator, 
	IFormattable, IStructuralEquatable
Public MustInherit Class ComplexMatrix
	Inherits ComplexLinearOperator
	Implements IFormattable, IStructuralEquatable
public ref class ComplexMatrix abstract : public ComplexLinearOperator, 
	IFormattable, IStructuralEquatable
[<AbstractClassAttribute>]
type ComplexMatrix =  
    class
        inherit ComplexLinearOperator
        interface IFormattable
        interface IStructuralEquatable
    end

The ComplexMatrix type exposes the following members.

Constructors

  NameDescription
Protected methodComplexMatrix(Int32, Int32)
Constructs a new ComplexMatrix of the specified dimensions using the specified values array.
Protected methodComplexMatrix(SerializationInfo, StreamingContext)
Constructs a new ComplexMatrix from serialization values.
Top
Properties

  NameDescription
Public propertyColumnCount
Gets the number of columns in the ComplexMatrix.
Public propertyColumns
Gets the ComplexColumnCollection for this instance.
Public propertyElementOrder
Gets a value indicating the order in which the matrix elements are stored.
Public propertyIsHermitian
Gets a value that indicates if the matrix is equal to its conjugate transpose.
Public propertyIsLowerTriangular
Gets a value that indicates if all elements of the matrix above the main diagonal are zero.
Public propertyIsSymmetrical
Gets a value that indicates if the matrix is symmetrical about the main diagonal.
Public propertyIsUnitDiagonal
Gets a value indicating whether all diagonal elements of this instance are equal to 1.
Public propertyIsUpperTriangular
Gets a value that indicates if all elements of the matrix below the main diagonal are zero.
Public propertyItemInt32, Range
Gets or sets the components of a row of this ComplexMatrix.
Public propertyItemInt32, Int32
Gets or sets the specified element in this ComplexMatrix.
Public propertyItemRange, Range
Gets or sets the components of a submatrix of this ComplexMatrix.
Public propertyItemRange, Int32
Gets or sets the components of a column of this ComplexMatrix.
Public propertyRowCount
Gets the number of rows in the ComplexMatrix.
Public propertyRows
Gets the ComplexRowCollection for this instance.
Top
Methods

  NameDescription
Public methodStatic memberAdd(ComplexMatrix, ComplexMatrix)
Adds two ComplexMatrix objects.
Public methodAdd(TransposeOperation, TransposeOperation, DoubleComplex, ComplexMatrix)
Adds a multiple of a ComplexMatrix to this ComplexMatrix and returns the result.
Public methodAddProductToVector
Multiplies a ComplexVector by this ComplexMatrix and stores the result in a second vector of type ComplexDenseVector.
Public methodAsDenseMatrix
Returns this matrix as a general matrix. ComplexDenseMatrix.
Public methodClone
Constructs a deep copy of this ComplexMatrix.
Public methodCloneData
Gives this instance its own copy of its elements.
Public methodComponentwiseDivide(ComplexMatrix) Obsolete.
Divides the components of this instance by the corresponding components of another matrix.
Public methodStatic memberComponentwiseDivide(ComplexMatrix, ComplexMatrix) Obsolete.
Divides the components of a ComplexMatrix by the corresponding components of another matrix.
Public methodComponentwiseMultiply(ComplexMatrix) Obsolete.
Multiplies the components of this instance by the corresponding components of another matrix.
Public methodStatic memberComponentwiseMultiply(ComplexMatrix, ComplexMatrix) Obsolete.
Multiplies the components of a ComplexMatrix by the corresponding components of another matrix.
Public methodConjugate
Returns the conjugate transpose of this instance.
Public methodConjugateTranspose
Returns the conjugate transpose of this instance.
Public methodCopyTo
Copies the components of this ComplexMatrix to another matrix.
Public methodStatic memberCreate(DoubleComplex)
Constructs a new matrix from a two-dimensional array.
Public methodStatic memberCreate(Int32, Int32)
Constructs a new matrix with the specified number of rows and columns
Public methodStatic memberCreate(Int32, Int32, DoubleComplex)
Constructs a new matrix with the specified number of rows and columns whose elements are all equal to the specified value.
Public methodStatic memberCreate(Int32, Int32, DoubleComplex, MatrixElementOrder)
Constructs a new matrix of the specified dimensions using the specified values array.
Public methodStatic memberCreate(Int32, Int32, DoubleComplex, MatrixElementOrder, Boolean)
Constructs a new matrix of the specified dimensions using the specified values array.
Public methodStatic memberCreate(Int32, Int32, DoubleComplex, Int32, Int32, MatrixElementOrder)
Constructs a new matrix.
Public methodStatic memberCreateConstant
Constructs a new constant matrix.
Public methodStatic memberCreateDiagonal(Int32)
Constructs a new ComplexDiagonalMatrix.
Public methodStatic memberCreateDiagonal(ComplexVector)
Constructs a new ComplexDiagonalMatrix.
Public methodStatic memberCreateHermitian(Int32)
Constructs a new Hermitian matrix with the specified dimension.
Public methodStatic memberCreateHermitian(Int32, DoubleComplex, MatrixTriangle)
Constructs a new Hermitian matrix of the specified dimension using the specified values.
Public methodStatic memberCreateHermitian(Int32, DoubleComplex, MatrixTriangle, Boolean)
Constructs a new Hermitian matrix of the specified dimension using the specified values.
Public methodStatic memberCreateLowerTriangular(Int32)
Constructs a new lower triangular matrix.
Public methodStatic memberCreateLowerTriangular(Int32, Int32)
Constructs a new lower triangular matrix.
Public methodStatic memberCreateLowerTriangular(Int32, Int32, MatrixDiagonal)
Constructs a new lower triangular matrix.
Public methodStatic memberCreateLowerTriangular(Int32, Int32, DoubleComplex, MatrixElementOrder)
Constructs a new lower triangular matrix.
Public methodStatic memberCreateLowerTriangular(Int32, Int32, DoubleComplex, MatrixDiagonal, MatrixElementOrder, Boolean)
Constructs a new lower triangular matrix.
Public methodStatic memberCreateUpperTriangular(Int32)
Constructs a new upper triangular matrix.
Public methodStatic memberCreateUpperTriangular(Int32, Int32)
Constructs a new upper triangular matrix.
Public methodStatic memberCreateUpperTriangular(Int32, Int32, MatrixDiagonal)
Constructs a new upper triangular matrix.
Public methodStatic memberCreateUpperTriangular(Int32, Int32, DoubleComplex, MatrixElementOrder)
Constructs a new upper triangular matrix.
Public methodStatic memberCreateUpperTriangular(Int32, Int32, DoubleComplex, MatrixDiagonal, MatrixElementOrder, Boolean)
Constructs a new upper triangular matrix.
Public methodStatic memberElementwiseDivide
Divides the components of a ComplexMatrix by the corresponding components of another matrix.
Public methodElementwiseDivideInPlace
Divides the components of this instance by the corresponding components of another matrix.
Public methodStatic memberElementwiseMultiply
Multiplies the components of a ComplexMatrix by the corresponding components of another matrix.
Public methodElementwiseMultiplyInPlace
Multiplies the components of this instance by the corresponding components of another matrix.
Public methodEquals(Object)
Determines whether the specified Object is equal to the current ComplexMatrix.
(Overrides ObjectEquals(Object).)
Public methodEquals(Object, IEqualityComparer)
Returns whether an object is structurally equal to this instance.
Public methodEstimateConditionNumber
Calculates an estimate for the condition number of this 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 methodFrobeniusNorm
Returns the Frobenius norm of this ComplexMatrix.
Public methodGetCholeskyDecomposition
Returns the Cholesky decomposition of the matrix.
Public methodGetCholeskyDecomposition(Boolean)
Returns the Cholesky decomposition of the matrix.
Public methodGetColumn(Int32)
Returns a column complex vector for this instance that points at the specified column.
Public methodGetColumn(Int32, Range)
Returns a column complex vector for this instance starting at the specified column and row and of the specified length.
Public methodGetColumn(Int32, Int32, Int32)
Returns a column complex vector for this instance starting at the specified column and row and of the specified length.
Public methodGetColumn(Int32, Int32, Int32, Int32)
Returns a column complex vector for this instance starting at the specified column and row and of the specified length.
Public methodGetColumnEnumerator Obsolete.
Gets an IEnumerator than can be used to enumerate the columns of this ComplexMatrix.
Public methodGetComponents Obsolete.
Gets the components of the complex vector.
Public methodGetComponents(MatrixElementOrder) Obsolete.
Gets the components of the complex vector.
Public methodGetConditionNumber
Calculates the condition number of this matrix.
Public methodGetDeterminant
Calculates the determinant of this ComplexMatrix.
(Overrides ComplexLinearOperatorGetDeterminant.)
Public methodGetDiagonal
Gets a complex vector view of the diagonal elements of this instance.
Public methodGetDiagonal(Int32)
Gets a complex vector view of the specified diagonal of this instance.
Public methodGetEigenvalueDecomposition
Returns the eigenvalue decomposition for this matrix.
Public methodGetEigenvalueDecomposition(Boolean)
Returns the eigenvalue decomposition for this matrix.
Public methodGetHashCode
Returns the hash code for this instance.
(Overrides ObjectGetHashCode.)
Public methodGetHashCode(IEqualityComparer)
Returns a hash code for this instance.
Public methodGetImaginaryPart
Returns a real matrix containing the imaginary elements of the matrix.
Public methodGetInverse
Calculates the inverse matrix..
(Inherited from ComplexLinearOperator.)
Public methodGetInverse(Boolean)
Calculates the inverse of this ComplexMatrix.
(Overrides ComplexLinearOperatorGetInverse(Boolean).)
Public methodGetLUDecomposition
Returns the LU decomposition of the matrix.
Public methodGetLUDecomposition(Boolean)
Returns the LU decomposition of the matrix.
Public methodGetObjectData
Populates a SerializationInfo with the values needed to serialize the target object.
(Overrides ComplexLinearOperatorGetObjectData(SerializationInfo, StreamingContext).)
Public methodGetQRDecomposition
Returns the QR decomposition of the matrix.
Public methodGetQRDecomposition(Boolean)
Returns the QR decomposition of the matrix.
Public methodGetRealPart
Returns a real matrix containing the real elements of the matrix.
Public methodGetRow(Int32)
Returns a row complex vector for this instance that points at the specified row.
Public methodGetRow(Int32, Range)
Returns a row complex vector for this instance starting at the specified row and column and of the specified length.
Public methodGetRow(Int32, Int32, Int32)
Returns a row complex vector for this instance over the specified range.
Public methodGetRow(Int32, Int32, Int32, Int32)
Returns a row complex vector for this instance starting at the specified row and column and of the specified length.
Public methodGetRowEnumerator Obsolete.
Returns an IEnumeratorT that allows you to enumerate the rows of this ComplexMatrix.
Public methodGetSingularValueDecomposition
Returns the singular value decomposition of the matrix.
Public methodGetSingularValueDecomposition(SingularValueDecompositionFactors)
Returns the singular value decomposition of the matrix.
Public methodGetSingularValueDecomposition(SingularValueDecompositionFactors, Boolean)
Returns the singular value decomposition of the matrix.
Public methodGetSingularValues
Gets a vector containing the singular values of the matrix.
Public methodGetSubmatrix(Range, Range)
Gets a ComplexMatrix that is a submatrix of this ComplexMatrix.
Public methodGetSubmatrix(Range, Range, TransposeOperation)
Gets a ComplexMatrix that is a submatrix of this ComplexMatrix.
Public methodGetSubmatrix(Int32, Int32, Int32, Int32)
Gets a ComplexMatrix that is a submatrix of this ComplexMatrix.
Public methodGetSubmatrix(Int32, Int32, Int32, Int32, Int32, Int32, TransposeOperation)
Gets a ComplexMatrix that is a submatrix of this ComplexMatrix.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetValue
Gets the matrix component at the specified position.
Public methodInfinityNorm
Returns the infinity norm of this ComplexMatrix.
Public methodIsComponentWritable Obsolete.
Returns whether the value of the component at the specified row and column can be changed.
Public methodIsElementWritable
Returns whether the value of the component at the specified row and column can be changed.
Public methodIsSingular
Gets a value indicating whether this matrix is singular.
(Overrides ComplexLinearOperatorIsSingular.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMultiply(ComplexMatrix)
Applies the matrix to a matrix.
(Overrides ComplexLinearOperatorMultiply(ComplexMatrix).)
Public methodMultiply(ComplexVector)
Applies the matrix to a vector.
(Overrides ComplexLinearOperatorMultiply(ComplexVector).)
Public methodMultiply(DoubleComplex)
Multiplies this ComplexMatrix by a scalar factor.
Public methodStatic memberMultiply(ComplexMatrix, ComplexMatrix)
Multiplies two ComplexMatrix objects.
Public methodStatic memberMultiply(ComplexMatrix, ComplexVector)
Multiplies a ComplexVector by a ComplexMatrix.
Public methodStatic memberMultiply(ComplexVector, ComplexMatrix)
Multiplies a ComplexVector by a ComplexMatrix.
Public methodMultiply(MatrixOperationSide, TransposeOperation, TransposeOperation, ComplexMatrix)
Multiplies this ComplexMatrix by another matrix and returns the result.
Public methodMultiplyTranspose(ComplexMatrix)
Applies the transpose of the matrix to a matrix.
(Overrides ComplexLinearOperatorMultiplyTranspose(ComplexMatrix).)
Public methodMultiplyTranspose(ComplexVector)
Applies the transpose of the matrix to a vector.
(Overrides ComplexLinearOperatorMultiplyTranspose(ComplexVector).)
Public methodOneNorm
Returns the 1-norm of this ComplexMatrix.
Public methodPermuteColumns
Permutes the columns of the matrix using the specified Permutation.
Public methodPermuteRows
Permutes the rows of the matrix using the specified Permutation.
Public methodPermuteRowsAndColumns(Permutation)
Permutes the rows and columns of the matrix using the specified Permutation.
Public methodPermuteRowsAndColumns(Permutation, Permutation)
Permutes the rows and columns of the matrix using the specified row and column Permutation.
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).)
Public methodScaleColumns
Scales the columns of the matrix by the values specified by a vector.
Public methodScaleRows
Scales the rows of the matrix by the values specified by a vector.
Public methodSetToZero
Sets all elements of the matrix to zero.
Public methodSetValue(DoubleComplex)
Sets all elements of the matrix to the specified value.
Public methodSetValue(DoubleComplex, Int32, Int32)
Sets the matrix component at the specified position to the specified value.
Public methodShallowCopy
Makes a shallow copy of this ComplexMatrix.
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 methodStatic memberSubtract
Subtracts two ComplexMatrix objects.
Public methodSwapColumns
Swaps the columns with the specified indices.
Public methodSwapRows
Swaps the rows with the specified indices.
Public methodToArray
Gets the components of the complex vector.
Public methodToArray(MatrixElementOrder)
Gets the components of the complex vector.
Public methodToDenseMatrix
Makes a copy of this instance and returns it as a ComplexDenseMatrix.
Public methodToGeneralMatrix Obsolete.
Makes a copy of this instance and returns it as a ComplexDenseMatrix.
Public methodToString
Returns a String representation of this ComplexMatrix.
(Overrides ObjectToString.)
Public methodToString(String)
Returns a String representation of this ComplexMatrix.
Public methodToString(String, IFormatProvider)
Returns a String representation of this ComplexMatrix.
Public methodTrace
Gets the sum of the diagonal elements of this ComplexMatrix.
Public methodTranspose
Returns the transpose of this instance.
Public methodUnscaleColumns
Scales the columns of the matrix by the inverse of the values specified by a vector.
Public methodUnscaleRows
Scales the rows of the matrix by the inverse of the values specified by a vector.
Top
Operators

  NameDescription
Public operatorStatic memberAddition
Adds two ComplexMatrix objects.
Public operatorStatic memberEquality
Returns a value indicating whether two instances of ComplexMatrix are equal.
Public operatorStatic memberInequality
Returns a value indicating whether two instances of ComplexMatrix are not equal.
Public operatorStatic memberMultiply(ComplexMatrix, ComplexMatrix)
Multiplies two ComplexMatrix objects.
Public operatorStatic memberMultiply(ComplexMatrix, ComplexVector)
Multiplies a ComplexVector by a ComplexMatrix.
Public operatorStatic memberMultiply(ComplexVector, ComplexMatrix)
Multiplies a ComplexVector by a ComplexMatrix.
Public operatorStatic memberSubtraction
Subtracts two ComplexMatrix objects.
Top
Remarks

ComplexMatrix is the base class for representing real matrices, two-dimensional arrays of double-precision floating-point numbers. An application can perform operations on matrices using instances of the ComplexMatrix class, while descendant classes implement specialized algorithms for specific types of matrices.

The ComplexMatrix class provides methods and properties for all the common operations on matrices, including arithmetic operations, calculating norms and solving systems of simultaneous linear equations. Various methods allow you to access individual components as well as rows and columns and submatrices.

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

ClassDescription
ComplexDenseMatrixRepresents a general, dense, square or rectangular matrix.
ComplexTriangularMatrixRepresents an upper or lower-triangular matrix, a matrix whose elements below or above the main diagonal are zero.
ComplexHermitianMatrixRepresents a square matrix whose elements are symmetrical around the main diagonal.

Note that the specialized classes exploit certain structural properties to perform many calculations more quickly than the general algorithms implemented by ComplexMatrix.

ComplexMatrix provides an indexer property. For convenient access to the rows or columns of a ComplexMatrix or parts thereof, use the GetRow(Int32) and GetColumn(Int32) methods.

Overloaded versions of the major arithmetic operators are provided for languages that support them. For languages that don't support operator overloading, equivalent methods are supplied.

Many matrix decompositions exist, serving a variety of purposes. Each of them has its own class. In this release the LU decomposition and the QR decomposition are supported. For positive-definite hermitian matrices, the ComplexCholeskyDecomposition is available.

Version Information

Numerical Libraries

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

Reference

Extreme.Mathematics Namespace
Extreme.Mathematics.LinearAlgebra.ComplexComplexLUDecomposition
Extreme.Mathematics.LinearAlgebra.ComplexComplexQRDecomposition
Extreme.MathematicsComplexVector
Inheritance Hierarchy

SystemObject
  Extreme.Mathematics.LinearAlgebra.ComplexComplexLinearOperator
    Extreme.MathematicsComplexMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComplexConstantMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComplexDenseMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComplexDiagonalMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComplexHermitianMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComplexMatrixView
      Extreme.Mathematics.LinearAlgebra.ComplexComplexTriangularMatrix
      Extreme.Mathematics.LinearAlgebra.ComplexComposedComplexMatrix
      Extreme.Mathematics.SignalProcessingComplexConjugateSignalMatrix

Copyright (c) 2004-2017 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.