Class LinAlg (mod)
Linear algebra algorithms
Inheritance
Namespace: Tensor.Algorithm
Assembly: Tensor.Algorithm.dll
Syntax
module LinAlg
Methods
Name | Description |
---|---|
val generalInverse: Tensor<'T> -> Tensor<'T> * Tensor<'T> * Tensor<'T> | Computes the generalized inverse I, solvability constraints S and null-space N of the specified matrix L. L can be of any shape and rank. The return values is a tuple (I, S, N). The following properties are fulfilled. Inverse: M .* I .* M = M. Solvability: S .* M = 0. Null-space: M .* N = 0. This has the following consequences for a linear equation system of the form y = M .* x: If y comes from the solvable space (i.e. S .* y = 0), then the value x = I .* y gives one solution of y = M .* x. Adding any linear combination of the columns of N to this x yields another solution, i.e. y = M .* x = M .* (x + N .* z) for any z. If x contains no component from the null-space (i.e. N^T .* x = 0), then we can recover x from y = M .* x by x = I .* y. (TODO: check last sentence, because it was violated in test1) |
val integerInverse: Tensor<bigint> -> Tensor<Rat> * Tensor<bigint> * Tensor<bigint> | Computes the inverse I, solvability constraints S and null-space N of the specified integer matrix M, which can be of any shape and rank. The inversion is carried out over the domain of integers. The return values is a tuple (I, S, N), which fulfilles the following properties: Inverse: M .* I .* M = M. Solvability: S .* M = 0. Null-space: M .* N = 0. The equation system M .* x = y is solvable when S .* y = 0 and I .* y is an integer vector. In this case, the set of solutions is given by x = I .* y + N .* z where z is any integer vector. |
val rowEchelon: Tensor<'T> -> Tensor<'T> * int64 * int64 list | Computes the reduced row echelon form of the specified matrix. Returns a tuple of (row echelon form, number of non-zero rows, list of non-normalized columns). |
val rowEchelonAugmented: Tensor<'T> -> Tensor<'T> -> Tensor<'T> * int64 * int64 list * Tensor<'T> | Computes the reduced row echelon form of matrix L augmented with matrix A. Returns a tuple of (row echelon form, number of non-zero rows, list of non-normalized columns, transformed augmentation matrix). |
val smithNormalForm: Tensor<bigint> -> Tensor<bigint> * Tensor<bigint> * Tensor<bigint> | Computes the Smith Normal Form S of integer matrix A and returns a tuple (U, S, V) so that S = U .* A .* V, where U and V are invertible matrices and S is a positive, diagonal matrix with the property that each element of the diagonal divides all of its successors. |