## AngouriMath

## Matrix

## Description

**Summary**

Basic matrix implementation: https://en.wikipedia.org/wiki/Matrix_(mathematics)

## Members

### #ctor

Method and its overloads### #ctor (GenericTensor. Core. GenTensor{AngouriMath. Entity, AngouriMath. Entity. Matrix. EntityTensorWrapperOperations})

**Summary**Creates a Matrix from an instance of GenTensor`2.

Since only 2-dimensional matrices are supported, it will throw an exception if the number

of dimensions is too high or too low.

**Parameter "innerMatrix"**The instance of a matrix. It will be copied inside. Make sure,

that it has exactly two dimensions. If a vector needs to be

created, make it a normal matrix with one column.

**Exception "InvalidMatrixOperationException"**Is thrown if the number of dimensions of the passed

tensor is not 2.

### #ctor (System. Func{System. Int32[], AngouriMath. Entity}, System. Int32[])

**Summary**List of dimensions

If you need matrix, list 2 dimensions

If you need vector, list 1 dimension (length of the vector)

You can't list 0 dimensions

### Adjugate

Property**Summary**Adjugate form of a matrix

### AsScalar

Method**Summary**Casts the matrix to a scalar. It is only

possible if the matrix is 1x1 size.

**Exception "InvalidMatrixOperationException"**Thrown if the matrix has size different from 1x1.

### Codomain

Property### ColumnCount

Property**Summary**The number of columns of a matrix. It is 1 for vectors.

### Determinant

Property**Summary**Finds the symbolical determinant via Laplace's method

### GetEnumerator

Method**Summary**Gets the enumerator. It is required by the interface

IEnumerable, which lets us enumerate over the matrix or vector

**Returns**### I

Method and its overloads### I (System. Int32, System. Int32)

**Summary**Creates a rectangular identity matrix

with the given size

### I (System. Int32)

**Summary**Creates a square identity matrix

### InitDirectChildren

Method### InnerDifferentiate (AngouriMath. Entity. Variable)

Method### InnerEval

Method### InnerMatrix

Property**Summary**The inner matrix of type GenTensor`2.

### InnerSimplify

Method### Inverse

Property**Summary**Returns an inverse matrix if it exists### IsRowVector

Property**Summary**Checks whether it is a row vector, that is,

the matrix has only one row

### IsScalar

Property**Summary**Determines whether a matrix is a scalar, that is, a one-by-one matrix

### IsSquare

Property**Summary**Checks whether the matrix is square (has as many rows as columns)

### IsVector

Property**Summary**Checks whether the matrix only contains one

column.

### Item(System.Int32,System.Int32)

Property**Summary**Access the tensor if it is a matrix

### Item(System.Int32)

Property**Summary**Returns the i-th element of a vector, or the i-th row of a matrix.

### Latexise

Method### MainDiagonal

Property**Summary**Returns a vector, where the i-th element

is the [i, i] element of the matrix. The number

of elements in it equals the minimum of RowCount and ColumnCount### New (GenericTensor. Core. GenTensor{AngouriMath. Entity, AngouriMath. Entity. Matrix. EntityTensorWrapperOperations})

Method**Summary**Reuse the cache by returning the same object if possible### op_Addition (AngouriMath. Entity. Matrix, AngouriMath. Entity. Matrix)

Method**Summary**The Add operator. Performs an active operation

(elementwise addition of two matrices or vectors)

and then applies inner simplification

### op_Implicit (System. String)~AngouriMath. Entity. Matrix

Method**Summary**Converts from string to specifically tensor

**Parameter "expr"**From where to parse (available since 1.3)### op_Multiply (AngouriMath. Entity. Matrix, AngouriMath. Entity. Matrix)

Method**Summary**The Multiply operator. Performs an active operation

(matrix multiplication of two matrices)

and then applies inner simplification

### op_Subtraction (AngouriMath. Entity. Matrix, AngouriMath. Entity. Matrix)

Method**Summary**The Subtract operator. Performs an active operation

(elementwise subtraction of two matrices or vectors)

and then applies inner simplification

### Pow (System. Int32)

Method**Summary**Performs a binary power of the matrix.

The matrix must be a square matrix.

**Returns**A matrix to the given power with InnerSimplified

applied.

### Rank

Property**Summary**The number of linearly independent rows

### ReducedRowEchelonForm

Property**Summary**Reduced row echelon form via Gaussian elimination.

### Replace (System. Func{AngouriMath. Entity, AngouriMath. Entity})

Method### RowCount

Property**Summary**The number of rows for matrices. The number of elements for vectors.

### RowEchelonForm

Property**Summary**Matrix's form, transformed via Gaussian elimination.

### Shape

Property**Summary**List of Int32s that stand for dimensions### Stringize

Method### Substitute (AngouriMath. Entity, AngouriMath. Entity)

Method### T

Property**Summary**Changes the order of axes in matrix### TensorPower (System. Int32)

Method**Summary**Returns the n-th power of the

given vector or matrix. It is

the same as sequential applying

n-1 TensorProduct(AngouriMath.Entity.Matrix,AngouriMath.Entity.Matrix) to this.

**Parameter "exp"**The power, or the number

of operands in the a *** a *** ... *** a expression

**Returns**Non-simplified tensor

powered vector or matrix. If it

initially had size n x m, it will have

the size of 2^n x 2^m.

### TensorProduct (AngouriMath. Entity. Matrix, AngouriMath. Entity. Matrix)

Method**Summary**Finds a tensor product of two matrices

https://en.wikipedia.org/wiki/Tensor_product

### ToString

Method and its overloads### ToString

### ToString (System. Boolean)

**Summary**Gets a string representation of the

given matrix/vector. If true is

passed, it will format the inner matrix

with new lines and paddings to make it

look like a matrix in plain monospace

text.

**Parameter "multilineFormat"**Whether to format it into a matrix

format. If false is passed, it will

return the same as normal ToString.

### Trace

Property**Summary**The trace of a matrix. It is a sum of

all elements on the main diagonal

### With (System. Func{System. Int32, System. Int32, AngouriMath. Entity, AngouriMath. Entity})

Method**Summary**Returns a new matrix/vector of the same shape,

but with each element replaced by the user.

**Parameter "elementByIndex"**Takes 2 ints which are row number and column

number of an element, and the current element

as the third argument.

**Example**`var re = O_4.With ((rowId, colId, element) => (rowId, colId, element) switch { (0, 1, _) => 1, (1, 2, _) => 2, (>1, 3, _) => 6, (var a, var b, _) when a + b < 3 => 8, _ => element }); Console.WriteLine(re.ToString(multilineFormat: true));`

The output is going to be:

`Matrix[4 x 4] 8 1 8 0 8 8 2 0 8 0 0 6 0 0 0 6`

**Returns**A new matrix or vector with the same shape

(row count and column count).

### WithColumn

Method and its overloads### WithColumn (GenericTensor. Core. GenTensor{AngouriMath. Entity, AngouriMath. Entity. Matrix. EntityTensorWrapperOperations}, System. Int32, AngouriMath. Entity. Matrix)

**Summary**Creates a new matrix with the specified column

set to a new column

### WithColumn (System. Int32, AngouriMath. Entity. Matrix)

**Summary**Creates a new matrix with the specified column

set to a new column

### WithElement

Method and its overloads### WithElement (System. Int32, AngouriMath. Entity)

**Summary**Creates a new vector with the specified element being

set to a new value

### WithElement (System. Int32, System. Int32, AngouriMath. Entity)

**Summary**Creates a new matrix with the specified element being

set to a new value

### WithRow

Method and its overloads### WithRow (GenericTensor. Core. GenTensor{AngouriMath. Entity, AngouriMath. Entity. Matrix. EntityTensorWrapperOperations}, System. Int32, AngouriMath. Entity. Matrix)

**Summary**Creates a new matrix with the specified row

set to a new row

### WithRow (System. Int32, AngouriMath. Entity. Matrix)

**Summary**Creates a new matrix with the specified row

set to a new row

Angouri © 2019-2022 · Project's repo · Site's repo · Octicons