Skip to content

Solver for QR factorization #1

@JMoore5353

Description

@JMoore5353

We will be using QR factorization to help solve the Ax=b equation.

However, if we want to compute this efficiently, we should avoid computing Q, and instead compute Q^T @ b by performing the Householder rotations on b and A as we compute them . This is the way that the paper implements the iSAM, and it is the way the incremental factorization is implemented as well.

However, neither numpy or scipy have options to transform the b vector instead of just computing Q. This means we have a few options:

  1. Compute the QR factorization ourselves so we avoid the extra computation
  2. Reframe the incremental factorization to return a transformed Q as well.
  3. Ignore the problem and have a different solve method if we do a batch vs incremental update.

My vote is to do number 3 for the following:

  • We don't have to implement QR (which would likely be slower than numpy version, even though our implementation would be more "efficient")
  • We don't have to reframe the incremental factorization (which wouldn't be that difficult, but it is less efficient)
  • Should be easy.

The question boils down to: How do we want to implement the solver?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions