extendr_api::prelude::modules::core

Module householder

Expand description

Block Householder transformations.

A Householder reflection is linear transformation that describes a reflection about a hyperplane that crosses the origin of the space.

Let $v$ be a unit vector that is orthogonal to the hyperplane. Then the corresponding Householder transformation in matrix form is $I - 2vv^H$, where $I$ is the identity matrix.

In practice, a non unit vector $v$ is used, so the transformation is written as $$H = I - \frac{vv^H}{\tau}.$$

A block Householder transformation is a sequence of such transformations $H_0, H_1, \dots, H_{b -1 }$ applied one after the other, with the restriction that the first $i$ components of the vector $v_i$ of the $i$-th transformation are zero, and the component at index $i$ is one.

The matrix $V = [v_0\ v_1\ \dots\ v_{b-1}]$ is thus a lower trapezoidal matrix with unit diagonal. We call it the Householder basis.

There exists a unique upper triangular matrix $T$, that we call the Householder factor, such that $$H_0 \times \dots \times H_{b-1} = I - VT^{-1}V^H.$$

A block Householder sequence is a sequence of such transformations, composed of two matrices:

  • a lower trapezoidal matrix with unit diagonal, which is the horizontal concatenation of the bases of each block Householder transformation,
  • a horizontal concatenation of the Householder factors.

Examples on how to create and manipulate block Householder sequences are provided in the documentation of the QR module.

Functionsยง