Skip to content

Householder reflections for high-dimensional alignment #5

Description

@isomorphisms

Note

For the high-dimensional rotation/alignment work, Householder reflections are closer to the target use case than a chain of coordinate Givens rotations.

The motivating operation is:

d = x - y

then align the distinguished direction with the first axis,

d -> ||d|| e1

while retaining an explicit orthogonal change of basis that can also be applied to accompanying vectors/data.

A single Householder reflection can perform this dense high-dimensional alignment directly. If a proper rotation is required rather than a reflection, compose two reflections; the result has determinant +1.

This is especially natural to keep in Coxeter because reflections are the primitive objects here, rather than treating them merely as a numerical-linear-algebra trick.

Comparison to preserve

Keep Givens rotations as a useful comparison and atomic plane-rotation test, especially for sparse/local updates. But do not let the Givens formulation define the main high-dimensional workload by accident.

Useful experiments later:

  • Householder alignment of dense n-vectors;
  • two-reflection proper rotation carrying other vectors along;
  • Givens-chain implementation of the same alignment as a comparison;
  • numerical error, operation count, parallel/GPU lowering, and representation cost;
  • relationship between these concrete orthogonal transformations and the reflection/Coxeter-group viewpoint.

No claim yet that Householder is universally optimal; this records the mathematical direction of interest and the target workload.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions