AUSTRA

Represents a lower triangular matrix.

C#

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

- Implements
- IMatrix, IEquatableLMatrix, IFormattable, IAdditionOperatorsLMatrix, LMatrix, LMatrix, IAdditionOperatorsLMatrix, RMatrix, Matrix, IAdditionOperatorsLMatrix, Double, LMatrix, IDivisionOperatorsLMatrix, Double, LMatrix, IEqualityOperatorsLMatrix, LMatrix, Boolean, IEqualityOperatorsLMatrix, RMatrix, Boolean, IEqualityOperatorsLMatrix, Matrix, Boolean, IMultiplyOperatorsLMatrix, Matrix, Matrix, IMultiplyOperatorsLMatrix, DVector, DVector, IMultiplyOperatorsLMatrix, Double, LMatrix, ISubtractionOperatorsLMatrix, LMatrix, LMatrix, ISubtractionOperatorsLMatrix, RMatrix, Matrix, ISubtractionOperatorsLMatrix, Double, LMatrix, IUnaryNegationOperatorsLMatrix, LMatrix

Having a separate type for lower-triangular matrices is not a matter of storage, but of semantics. For instance, the Cholesky factorization always returns either a lower or upper triangular matrix, so it's important for the API to make clear which type of matrix is returning.

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

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

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

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

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

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

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

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

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

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

LMatrix(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(LMatrix) | Checks if the provided argument is a matrix with the same values. |

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

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. |

MultiplyAdd(DVector, DVector) | Transforms a vector and adds an offset. |

MultiplyAdd(DVector, DVector, Double) | Transforms a vector and adds an offset. |

MultiplySubtract(DVector, DVector) | Transforms a vector and subtracts an offset. |

MultiplySubtract(DVector, DVector, Double) | Transforms a vector and subtracts an offset. |

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, LMatrix) | Adds a scalar value to a lower triangular matrix. |

Addition(LMatrix, LMatrix) | Sums two lower matrices with the same size. |

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

Addition(LMatrix, Double) | Adds a scalar value to a lower triangular matrix. |

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

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

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

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

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

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

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

(LMatrix to Double) | Explicit conversion from a matrix to a onedimensional array. |

(Matrix to LMatrix) | Implicit conversion from a rectangular to a lower triangular matrix. |

Inequality(LMatrix, LMatrix) | Checks two matrices for inequality. |

Inequality(LMatrix, Matrix) | Checks two matrices for inequality. |

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

Multiply(Double, LMatrix) | Multiplies a lower triangular matrix by a scalar value. |

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

Multiply(LMatrix, LMatrix) | Multiplies two lower-triangular matrices. |

Multiply(LMatrix, Matrix) | Multiplies a lower triangular matrix by a rectangular one. |

Multiply(LMatrix, RMatrix) | Multiplies a lower-triangular matrix with an upper-triangular one. |

Multiply(LMatrix, Double) | Multiplies a lower triangular matrix by a scalar value. |

Multiply(Matrix, LMatrix) | Multiplies a rectangular matrix by a lower triangular one. |

Multiply(RMatrix, LMatrix) | Multiplies an upper-triangular matrix with a lower-triangular one. |

Subtraction(Double, LMatrix) | Subtracts a lower triangular matrix from a scalar value. |

Subtraction(LMatrix, LMatrix) | Subtracts two lower matrices with the same size. |

Subtraction(LMatrix, RMatrix) | Subtracts an upper triangular matrix from a lower triangular one. |

Subtraction(LMatrix, Double) | Subtracts a scalar value from a lower triangular matrix. |

UnaryNegation(LMatrix) | Negates a lower matrix. |