Reference

PLUQ decomposition

RankRevealing.PLUQ — Type
PLUQ <: Factorizarion

Matrix factorization type for the full LU factorization of any rectangular matrix A over an arbitrary numeric field. This is the return type of pluq.

The factorization satisfies

P * [L ; M] * [U V] * Q == A
ComponentDescription
F.LFull-rank unit lower triangular part
F.UFull-rank upper triangular part
F.MRemainder of the row dimension
F.VRemainder of the column dimension
F.Prow-wise permutation Matrix
F.Qcolumn-wise permutation Matrix
F.prow-wise permutation Vector
F.qcolumn-wise permutation Matrix

Iteration and destructuring produce the components in the order p, L, U, V, M, q`.

Both L and U are square full-rank matrices with the same rank as A.

source
RankRevealing.pluq — Function
pluq(A) -> PLUQ

Perform a rank-sensitive LU factorization of A. The factorization of an n by m matrix is computed in O(n m r^(ω-2)) steps, where r = rank(A) and ω is the matrix multiplication complexity exponent.

This is an exact function who should work with any type implementing the basic arithmetic operations +, -, *, /, one, zero.

The resulting factorization F satisfies

F.P * [F.L ; F.M] * [F.U F.V] * F.Q == A

See the link for the original description of the algorithm.

source

Generalized Rank Revealing decomposition

RankRevealing.GeneralizedRankRevealing — Type
GeneralizedRankRevealing <: Factorization

Matrix factorization type for the Generalized Rank Reveling decomposition of two matrices A and B with the same number of columns. This is obtained via the function grr(A,B).

By calling d_+ the dimension of the sum of A and B row spaces, this factorization has the decomposes the matrices as

                | I 0 0 |
| A | = | X 0 | | 0 0 I |
| B |   | 0 Y | | 0 I 0 | H
                | 0 0 I |
ComponentDescription
F.Xm_A x r_A full column rank matrix
F.Ym_B x r_B full column rank matrix
F.Hd_+ x n full row rank matrix

Other useful fields are:

  • F.r1: Rank of A minus minus the intersection
  • F.r2: Rank of B minus minus the intersection
  • F.r3: Rank of the intersection
source
RankRevealing.grr — Function
grr(A, B) -> GeneralizedRankRevealing

Compute the Generalized LU decomposition of matrices A and B. There are matrices X, Y and H such that

                | I 0 0 |
| A | = | X 0 | | 0 0 I |
| B |   | 0 Y | | 0 I 0 | H
                | 0 0 I |
source

Working with subspaces

RankRevealing.basis — Function
basis(xs)

Turn a set of vectors into a set of linearly independet vectors spawning the same subspace.

Warning: Even if the input is already linearly independent, the returned basis may be composed of other vectors spawning the same subspace.

source
RankRevealing.intersection — Function
intersection(xs, ys) -> vs

Given two sets of vectors, calculate a basis for the intersection of the subspaces generated by them.

source
RankRevealing.sumspace — Function
sumspace(xs, ys) -> vs

Given two sets of vectors, calculate a basis for the sum space of the subspaces generated by them.

source