Click or drag to resize

LMatrix Structure

Represents a lower triangular matrix.
Inheritance Hierarchy
SystemObject
  SystemValueType
    Austra.LibraryLMatrix

Namespace: Austra.Library
Assembly: Austra.Library (in Austra.Library.dll) Version: 2.7.0+b25929339ea1019e260029cf0ebd18b3a0ce2443
Syntax
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

The LMatrix type exposes the following members.

Constructors
 NameDescription
Public methodLMatrix(DVector)Creates a diagonal matrix given its diagonal.
Public methodLMatrix(Int32)Creates an empty square matrix.
Public methodLMatrix(Int32, NormalRandom)Creates a squared matrix with a standard normal distribution.
Public methodLMatrix(Int32, Int32)Creates an empty rectangular matrix.
Public methodLMatrix(Int32, Random) Creates a square lower matrix filled with a uniform distribution generator.
Public methodLMatrix(Int32, Int32, NormalRandom) Creates a matrix filled with a standard normal distribution.
Public methodLMatrix(Int32, Int32, Double) Creates a matrix with a given number of rows and columns, and its internal array.
Public methodLMatrix(Int32, Int32, Random) Creates a matrix filled with a uniform distribution generator.
Public methodLMatrix(Int32, Random, Double, Double)Creates a square matrix filled with a uniform distribution generator.
Public methodLMatrix(Int32, Int32, Random, Double, Double)Creates a matrix filled with a uniform distribution generator.
Top
Properties
 NameDescription
Public propertyColsGets the number of columns.
Public propertyIsInitializedHas the matrix been properly initialized?
Public propertyIsSquareChecks if the matrix is a square one.
Public propertyItemGets the value at a single cell.
Public propertyRowsGets the number of rows.
Top
Methods
 NameDescription
Public methodAMaxGets the cell with the maximum absolute value.
Public methodAMinGets the cell with the minimum absolute value.
Public methodCloneCreates an identical lower triangular matrix.
Public methodContainsChecks if the matrix contains the given value.
Public methodDeterminantGets the determinant of the matrix.
Public methodDiagonalGets the main diagonal.
Public methodEquals(LMatrix)Checks if the provided argument is a matrix with the same values.
Public methodEquals(Object)Checks if the provided argument is a matrix with the same values.
(Overrides ValueTypeEquals(Object))
Public methodGetHashCodeReturns the hashcode for this matrix.
(Overrides ValueTypeGetHashCode)
Public methodGetTypeGets the Type of the current instance.
(Inherited from Object)
Public methodStatic memberIdentityCreates an identity matrix given its size.
Public methodInverseCalculates the inverse of the matrix.
Public methodMaximumGets the cell with the maximum value.
Public methodMinimumGets the cell with the minimum value.
Public methodMultiplyAdd(DVector, DVector)Transforms a vector and adds an offset.
Public methodMultiplyAdd(DVector, DVector, Double)Transforms a vector and adds an offset.
Public methodMultiplySubtract(DVector, DVector)Transforms a vector and subtracts an offset.
Public methodMultiplySubtract(DVector, DVector, Double)Transforms a vector and subtracts an offset.
Public methodMultiplyTransposeMultiplies this matrix by the transposed argument.
Public methodRedim(Int32)Creates a new matrix with different dimensions.
Public methodRedim(Int32, Int32)Creates a new matrix with different dimensions.
Public methodSolve(DVector)Solves the equation Ax = b for x.
Public methodSolve(DVector, DVector)Solves the equation Ax = b for x.
Public methodSquareMultiplies this matrix by its own transposed.
Public methodStatsGets statistics on the matrix cells.
Public methodSumCalculates the sum of the matrix cells.
Public methodToStringGets a textual representation of this matrix.
(Overrides ValueTypeToString)
Public methodToString(String, IFormatProvider)Gets a textual representation of this matrix.
Public methodTraceCalculates the trace of a matrix.
Public methodTransposeTransposes the matrix.
Top
Operators
 NameDescription
Public operatorStatic memberAddition(Double, LMatrix)Adds a scalar value to a lower triangular matrix.
Public operatorStatic memberAddition(LMatrix, LMatrix)Sums two lower matrices with the same size.
Public operatorStatic memberAddition(LMatrix, RMatrix)Adds a lower-triangular matrix and an upper-triangular one.
Public operatorStatic memberAddition(LMatrix, Double)Adds a scalar value to a lower triangular matrix.
Public operatorStatic memberDivision(DVector, LMatrix)Solves the equation m*x = v for the vector x.
Public operatorStatic memberDivision(LMatrix, Double)Divides a matrix by a scalar value.
Public operatorStatic memberDivision(Matrix, LMatrix)Solves the equation m2*x = m1 for the matrix x.
Public operatorStatic memberEquality(LMatrix, LMatrix)Checks two matrices for equality.
Public operatorStatic memberEquality(LMatrix, Matrix)Checks two matrices for equality.
Public operatorStatic memberEquality(LMatrix, RMatrix)Checks two matrices for equality.
Public operatorStatic member(LMatrix to Matrix) Explicit conversion from a triangular matrix to a rectangular one.
Public operatorStatic member(LMatrix to Double) Explicit conversion from a matrix to a onedimensional array.
Public operatorStatic member(Matrix to LMatrix) Implicit conversion from a rectangular to a lower triangular matrix.
Public operatorStatic memberInequality(LMatrix, LMatrix)Checks two matrices for inequality.
Public operatorStatic memberInequality(LMatrix, Matrix)Checks two matrices for inequality.
Public operatorStatic memberInequality(LMatrix, RMatrix)Checks two matrices for inequality.
Public operatorStatic memberMultiply(Double, LMatrix)Multiplies a lower triangular matrix by a scalar value.
Public operatorStatic memberMultiply(LMatrix, DVector)Transform a vector using a matrix.
Public operatorStatic memberMultiply(LMatrix, LMatrix)Multiplies two lower-triangular matrices.
Public operatorStatic memberMultiply(LMatrix, Matrix)Multiplies a lower triangular matrix by a rectangular one.
Public operatorStatic memberMultiply(LMatrix, RMatrix)Multiplies a lower-triangular matrix with an upper-triangular one.
Public operatorStatic memberMultiply(LMatrix, Double)Multiplies a lower triangular matrix by a scalar value.
Public operatorStatic memberMultiply(Matrix, LMatrix)Multiplies a rectangular matrix by a lower triangular one.
Public operatorStatic memberMultiply(RMatrix, LMatrix)Multiplies an upper-triangular matrix with a lower-triangular one.
Public operatorStatic memberSubtraction(Double, LMatrix)Subtracts a lower triangular matrix from a scalar value.
Public operatorStatic memberSubtraction(LMatrix, LMatrix)Subtracts two lower matrices with the same size.
Public operatorStatic memberSubtraction(LMatrix, RMatrix)Subtracts an upper triangular matrix from a lower triangular one.
Public operatorStatic memberSubtraction(LMatrix, Double)Subtracts a scalar value from a lower triangular matrix.
Public operatorStatic memberUnaryNegation(LMatrix)Negates a lower matrix.
Top
Remarks

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.

See Also