## Types

Type ComplexMatrix

Namespace MathNet.Numerics.LinearAlgebra

Interfaces IMatrix<T>, ICloneable

### Public instance methods

Add a complex scalar to all elements of this complex matrix.
This method has the same effect as the overloaded + operator.
 return `ComplexMatrix` `Complex` b The complex scalar.

 return `ComplexMatrix` `IMatrix` b

 `IMatrix` b

In place addition of a complex scalar to all elements of this complex matrix.
This method changes this matrix.
 `Complex` b The complex scalar.

#### ComplexMatrix ArrayDivide(IMatrix<T> b)

 return `ComplexMatrix` `IMatrix` b

#### void ArrayDivideInplace(IMatrix<T> b)

 `IMatrix` b

#### ComplexMatrix ArrayMap(Converter<Complex, Complex> mapping)

 return `ComplexMatrix` `Converter` mapping

#### void ArrayMapInplace(Converter<Complex, Complex> mapping)

 `Converter` mapping

#### ComplexMatrix ArrayMultiply(IMatrix<T> b)

 return `ComplexMatrix` `IMatrix` b

#### void ArrayMultiplyInplace(IMatrix<T> b)

 `IMatrix` b

#### ComplexMatrix ArrayPower(Complex exponent)

Element-by-element raise to power, "ret = this .^ exponent".
 return `ComplexMatrix` `Complex` exponent The exponent to raise to power to.

#### void ArrayPowerInplace(Complex exponent)

Inplace element-by-element raise to power, "this .^= exponent".
This method changes this matrix.
 `Complex` exponent The exponent to raise to power to.

#### ComplexMatrix Clone()

Returns a deep copy of this instance.
 return `ComplexMatrix`

#### ComplexMatrix Conjugate()

Conjugate this complex matrix.
 return `ComplexMatrix`

#### void ConjugateInplace()

In place conjugation of this complex matrix.
This method changes this matrix.

#### Complex[,] CopyToArray()

Copies the internal data structure to a 2-dimensional array.
 return `Complex[,]`

#### Complex[][] CopyToJaggedArray()

Copies the internal data structure to a jagged rectangular array.
 return `Complex[][]`

#### bool Equals(object obj)

 return `bool` `object` obj

#### Complex[][] GetArray()

Returns the internal data structure array.
 return `Complex[][]`

#### ComplexVector GetColumnVector(int columnIndex)

Copies a specified column of this matrix to a new vector.
 return `ComplexVector` `int` columnIndex

#### int GetHashCode()

 return `int`

#### ComplexMatrix GetMatrix(Int32[] r, Int32[] c)

 return `ComplexMatrix` `Int32[]` r `Int32[]` c

#### ComplexMatrix GetMatrix(int i0, int i1, Int32[] c)

 return `ComplexMatrix` `int` i0 `int` i1 `Int32[]` c

#### ComplexMatrix GetMatrix(Int32[] r, int j0, int j1)

 return `ComplexMatrix` `Int32[]` r `int` j0 `int` j1

#### ComplexMatrix GetMatrix(int i0, int i1, int j0, int j1)

Gets a submatrix.
 return `ComplexMatrix` `int` i0 First row index. `int` i1 Last row index (inclusive). `int` j0 First column index. `int` j1 Last column index (inclusive).

#### ComplexVector GetRowVector(int rowIndex)

Copies a specified row of this matrix to a new vector.
 return `ComplexVector` `int` rowIndex

#### Type GetType()

 return `Type`

#### ComplexMatrix HermitianTranspose()

Transpose this complex matrix. The elements conjugated by this method, see Transpose for non-conjugated transposing.
 return `ComplexMatrix`

#### void HermitianTransposeInplace()

Inplace transpose this square complex matrix. The elements are conjugated by this method, see Transpose for non-conjugated transposing.
This method changes this matrix. Only square matrices are supported.

#### ComplexMatrix Multiply(Complex b)

Scale this complex matrix with a complex scalar.
This method has the same effect as the overloaded * operator.
 return `ComplexMatrix` `Complex` b The other complex scalar.

#### ComplexMatrix Multiply(IMatrix<T> b)

 return `ComplexMatrix` `IMatrix` b

#### void MultiplyInplace(Complex b)

Inplace scale this matrix by a complex scalar.
This method changes this matrix.
 `Complex` b The other complex scalar.

#### void MultiplyInplace(IMatrix<T> b)

 `IMatrix` b

#### ComplexMatrix MultiplyLeftDiagonal(IVector<T> diagonal)

 return `ComplexMatrix` `IVector` diagonal

#### void MultiplyLeftDiagonalInplace(IVector<T> diagonal)

 `IVector` diagonal

#### ComplexVector MultiplyRightColumn(IVector<T> b)

 return `ComplexVector` `IVector` b

#### ComplexMatrix MultiplyRightDiagonal(IVector<T> diagonal)

 return `ComplexMatrix` `IVector` diagonal

#### void MultiplyRightDiagonalInplace(IVector<T> diagonal)

 `IVector` diagonal

#### ComplexMatrix Negate()

Negate this complex matrix.
 return `ComplexMatrix`

#### void NegateInplace()

In place negation of this complex matrix.
This method changes this matrix.

#### double Norm1()

One norm
 return `double`

#### void ResetComputations()

Reset various internal computations. Call this method after you made changes directly on the the internal double[][] data structure.

#### void SetColumnVector(IVector<T> columnVector, int columnIndex)

 `IVector` columnVector `int` columnIndex

#### void SetMatrix(Int32[] r, int j0, int j1, IMatrix<T> X)

 `Int32[]` r `int` j0 `int` j1 `IMatrix` X

#### void SetMatrix(Int32[] r, Int32[] c, IMatrix<T> X)

 `Int32[]` r `Int32[]` c `IMatrix` X

#### void SetMatrix(int i0, int i1, int j0, int j1, IMatrix<T> X)

 `int` i0 `int` i1 `int` j0 `int` j1 `IMatrix` X

#### void SetMatrix(int i0, int i1, Int32[] c, IMatrix<T> X)

 `int` i0 `int` i1 `Int32[]` c `IMatrix` X

#### void SetRowVector(IVector<T> rowVector, int rowIndex)

 `IVector` rowVector `int` rowIndex

#### ComplexMatrix Subtract(Complex b)

Subtract a complex scalar from all elements of this complex matrix.
This method has the same effect as the overloaded - operator.
 return `ComplexMatrix` `Complex` b The complex scalar.

#### ComplexMatrix Subtract(IMatrix<T> b)

 return `ComplexMatrix` `IMatrix` b

#### void SubtractInplace(IMatrix<T> b)

 `IMatrix` b

#### void SubtractInplace(Complex b)

In place subtraction of a complex scalar from all elements of this complex matrix.
This method changes this matrix.
 `Complex` b The complex scalar.

#### ComplexMatrix TensorMultiply(ComplexMatrix B)

Tensor Product (Kronecker) of this and another matrix.
 return `ComplexMatrix` `ComplexMatrix` B The matrix to operate on.

#### string ToString()

Formats this matrix to a human-readable string
 return `string`

#### ComplexMatrix Transpose()

Transpose this complex matrix. The elements are not conjugated by this method, see HermitianTranspose for conjugated transposing.
 return `ComplexMatrix`

#### void TransposeInplace()

Inplace transpose this square complex matrix. The elements are not conjugated by this method, see HermitianTransposeInplace for conjugated transposing.
This method changes this matrix. Only square matrices are supported.

### Public static methods

#### Complex[][] CloneMatrixData(Complex[][] data)

 return `Complex[][]` `Complex[][]` data

#### ComplexMatrix Create(Complex[][] A)

 return `ComplexMatrix` `Complex[][]` A

#### ComplexMatrix Create(Complex[,] A)

 return `ComplexMatrix` `Complex[,]` A

#### ComplexMatrix Create(IMatrix<T> realMatrix)

 return `ComplexMatrix` `IMatrix` realMatrix

#### ComplexMatrix CreateFromColumns(IList<ComplexVector> columnVectors)

 return `ComplexMatrix` `IList` columnVectors

#### ComplexMatrix CreateFromRows(IList<ComplexVector> rowVectors)

 return `ComplexMatrix` `IList` rowVectors

#### Complex[][] CreateMatrixData(int m, int n)

Create the internal matrix data structure for a matrix of the given size. Initializing matrices directly on the internal structure may be faster than accessing the cells through the matrix class.
 return `Complex[][]` `int` m Number of rows. `int` n Number of columns.

#### ComplexMatrix Diagonal(IVector<T> diagonalVector, int m, int n)

 return `ComplexMatrix` `IVector` diagonalVector `int` m `int` n

#### ComplexMatrix Diagonal(IVector<T> diagonalVector)

 return `ComplexMatrix` `IVector` diagonalVector

#### void GetRowColumnCount(Complex[][] data, Int32& rows, Int32& columns)

 `Complex[][]` data `Int32&` rows `Int32&` columns

#### ComplexMatrix Identity(int m, int n)

Generates the identity matrix.
 return `ComplexMatrix` `int` m Number of rows. `int` n Number of columns.

#### ComplexMatrix KroneckerProduct(ComplexMatrix A, ComplexMatrix B)

Kronecker Product of two matrices.
 return `ComplexMatrix` `ComplexMatrix` A `ComplexMatrix` B

#### ComplexMatrix Ones(int m)

Generates an m-by-m matrix filled with 1.
 return `ComplexMatrix` `int` m Number of rows = Number of columns

#### ComplexMatrix Random(int m, int n, IContinuousGenerator randomDistribution)

Generates matrix with random real and imaginary elements.
 return `ComplexMatrix` `int` m Number of rows. `int` n Number of columns. `IContinuousGenerator` randomDistribution Continuous Random Distribution or Source

#### ComplexMatrix RandomPolar(int m, int n, IContinuousGenerator modulusRandomDistribution, IContinuousGenerator argumentRandomDistribution)

Generates matrix with random modulus and argument elements.
 return `ComplexMatrix` `int` m Number of rows. `int` n Number of columns. `IContinuousGenerator` modulusRandomDistribution Continuous Random Distribution or Source for the modulus part (must be non-negative!). `IContinuousGenerator` argumentRandomDistribution Continuous Random Distribution or Source for the argument part.

#### ComplexMatrix RandomReal(int m, int n, IContinuousGenerator realRandomDistribution)

Generates matrix with random real and zero imaginary elements.
 return `ComplexMatrix` `int` m Number of rows. `int` n Number of columns. `IContinuousGenerator` realRandomDistribution Continuous Random Distribution or Source for the real part.

#### ComplexMatrix RandomUnitCircle(int m, int n, IContinuousGenerator argumentRandomDistribution)

Generates a matrix of complex numbers on the unit circle with random argument.
 return `ComplexMatrix` `int` m Number of rows. `int` n Number of columns. `IContinuousGenerator` argumentRandomDistribution Continuous random distribution or source for the complex number arguments.

#### ComplexMatrix Zeros(int m)

Generates an m-by-m matrix filled with 0.
 return `ComplexMatrix` `int` m Number of rows = Number of columns

### Public properties

#### int ColumnCount get;

Gets the number of columns.
 `return int`

#### Complex Item get; set;

Gets or set the element indexed by `(i, j)`in the `Matrix`.
 `return Complex`

#### int RowCount get;

Gets the number of rows.
 `return int`