AUSTRA

Represents an upper triangular matrix.

C#

```
public readonly struct RMatrix : IFormattable,
IEquatable<RMatrix>, IEqualityOperators<RMatrix, RMatrix, bool>,
IEqualityOperators<RMatrix, LMatrix, bool>, IEqualityOperators<RMatrix, Matrix, bool>,
IAdditionOperators<RMatrix, RMatrix, RMatrix>, IAdditionOperators<RMatrix, double, RMatrix>,
ISubtractionOperators<RMatrix, RMatrix, RMatrix>, ISubtractionOperators<RMatrix, double, RMatrix>,
IMultiplyOperators<RMatrix, DVector, DVector>, IMultiplyOperators<RMatrix, double, RMatrix>,
IDivisionOperators<RMatrix, double, RMatrix>, IUnaryNegationOperators<RMatrix, RMatrix>,
IMatrix
```

- Implements
- IMatrix, IEquatableRMatrix, IFormattable, IAdditionOperatorsRMatrix, RMatrix, RMatrix, IAdditionOperatorsRMatrix, Double, RMatrix, IDivisionOperatorsRMatrix, Double, RMatrix, IEqualityOperatorsRMatrix, RMatrix, Boolean, IEqualityOperatorsRMatrix, LMatrix, Boolean, IEqualityOperatorsRMatrix, Matrix, Boolean, IMultiplyOperatorsRMatrix, DVector, DVector, IMultiplyOperatorsRMatrix, Double, RMatrix, ISubtractionOperatorsRMatrix, RMatrix, RMatrix, ISubtractionOperatorsRMatrix, Double, RMatrix, IUnaryNegationOperatorsRMatrix, RMatrix

Having a separate type for upper-triangular matrices is not a matter of storage, but of semantics.

Upper-triangular matrices may have a different number of rows and columns.

RMatrix(DVector) | Creates a diagonal matrix given its diagonal. |

RMatrix(Int32) | Creates an empty square matrix. |

RMatrix(Int32, NormalRandom) | Creates a squared matrix filled with a standard normal distribution. |

RMatrix(Int32, Int32) | Creates an empty rectangular matrix. |

RMatrix(Int32, Random) | Creates a squared matrix filled with a uniform distribution generator. |

RMatrix(Int32, Int32, NormalRandom) | Creates a matrix filled with a standard normal distribution. |

RMatrix(Int32, Int32, Double) | Creates a matrix with a given number of rows and columns, and its internal array. |

RMatrix(Int32, Int32, Random) | Creates a matrix filled with a uniform distribution generator. |

RMatrix(Int32, Random, Double, Double) | Creates a square matrix filled with a uniform distribution generator. |

RMatrix(Int32, Int32, Random, Double, Double) | Creates a matrix filled with a uniform distribution generator. |

Cols | Gets the number of columns. |

IsInitialized | Has the matrix been properly initialized? |

IsSquare | Checks if the matrix is a square one. |

Item | Gets the value at a single cell. |

Rows | Gets the number of rows. |

AMax | Gets the cell with the maximum absolute value. |

AMin | Gets the cell with the minimum absolute value. |

Clone | Creates an identical lower triangular matrix. |

Contains | Checks if the matrix contains the given value. |

Determinant | Gets the determinant of the matrix. |

Diagonal | Gets the main diagonal. |

Equals(Object) | Checks if the provided argument is a matrix with the same values. (Overrides ValueTypeEquals(Object)) |

Equals(RMatrix) | Checks if the provided argument is a matrix with the same values. |

GetHashCode | Returns the hashcode for this matrix. (Overrides ValueTypeGetHashCode) |

GetType | Gets the Type of the current instance. (Inherited from Object) |

Identity | Creates an identity matrix given its size. |

Inverse | Calculates the inverse of the matrix. |

Maximum | Gets the cell with the maximum value. |

Minimum | Gets the cell with the minimum value. |

MultiplyTranspose | Multiplies this matrix by the transposed argument. |

Redim(Int32) | Creates a new matrix with different dimensions. |

Redim(Int32, Int32) | Creates a new matrix with different dimensions. |

Solve(DVector) | Solves the equation Ax = b for x. |

Solve(DVector, DVector) | Solves the equation Ax = b for x. |

Square | Multiplies this matrix by its own transposed. |

Stats | Gets statistics on the matrix cells. |

Sum | Calculates the sum of the matrix cells. |

ToString | Gets a textual representation of this matrix. (Overrides ValueTypeToString) |

ToString(String, IFormatProvider) | Gets a textual representation of this matrix. |

Trace | Calculates the trace of a matrix. |

Transpose | Transposes the matrix. |

Addition(Double, RMatrix) | Adds a scalar value to an upper triangular matrix. |

Addition(RMatrix, LMatrix) | Adds an upper triangular matrix and a lower triangular one. |

Addition(RMatrix, RMatrix) | Sums two upper matrices with the same size. |

Addition(RMatrix, Double) | Adds a scalar value to an upper triangular matrix. |

Division(DVector, RMatrix) | Solves the equation m*x = v for the vector x. |

Division(Matrix, RMatrix) | Solves the equation m2*x = m1 for the matrix x. |

Division(RMatrix, Double) | Divides a matrix by a scalar value. |

Equality(RMatrix, LMatrix) | Checks two matrices for equality. |

Equality(RMatrix, Matrix) | Checks two matrices for equality. |

Equality(RMatrix, RMatrix) | Checks two matrices for equality. |

(RMatrix to Matrix) | Explicit conversion from a triangular matrix to a rectangular one. |

(Matrix to RMatrix) | Implicit conversion from a rectangular to an upper triangular matrix. |

Inequality(RMatrix, LMatrix) | Checks two matrices for equality. |

Inequality(RMatrix, Matrix) | Checks two matrices for equality. |

Inequality(RMatrix, RMatrix) | Checks two matrices for equality. |

Multiply(Double, RMatrix) | Multiplies an upper triangular matrix by a scalar value. |

Multiply(Matrix, RMatrix) | Multiplies a rectangular matrix by an upper triangular one. |

Multiply(RMatrix, DVector) | Transform a vector using a matrix. |

Multiply(RMatrix, Matrix) | Multiplies an upper triangular matrix by a rectangular one. |

Multiply(RMatrix, RMatrix) | Multiplies two upper-triangular matrices. |

Multiply(RMatrix, Double) | Multiplies an upper triangular matrix by a scalar value. |

Subtraction(Double, RMatrix) | Subtracts an upper triangular matrix from a scalar value. |

Subtraction(RMatrix, RMatrix) | Subtracts two upper matrices with the same size. |

Subtraction(RMatrix, Double) | Subtracts a scalar value from an upper triangular matrix. |

UnaryNegation(RMatrix) | Negates an upper right matrix. |