linalg: QR decomposition (Householder)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 23
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
Add numx_qr_decompose to the linalg module: QR decomposition via Householder reflections, bounded by NUMX_MAX_MAT_ROWS/NUMX_MAX_MAT_COLS like the rest of linalg (see numx_lu_decompose and numx_cholesky_decompose, #51, for the established style of matrix decomposition functions in this codebase).
Follow CONTRIBUTING.md exactly: full Doxygen header, NULL-checks, numx_status_t return, all four deliverables (header, impl, test, docs page). Test against known QR examples and verify Q is orthogonal (Q^T Q = I) and QR reconstructs the original matrix, following the same reconstruction-test pattern #51 used for Cholesky (test_cholesky_decompose_residual_reconstruction in tests/test_linalg.c).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read CONTRIBUTING.md and the existing numx_lu_decompose and numx_cholesky_decompose implementations first; use their established header, status, bounds, and deliverable conventions. Run tests/test_linalg.c, especially test_cholesky_decompose_residual_reconstruction, then add known QR cases and verify Q^T Q = I and QR reconstructs the input; done means the header, implementation, test, and docs page are present.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100