Repository navigation
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved numerical-stability and NaN-handling defects produce incorrect results, while unchecked dimension multiplication can violate matrix storage invariants.
10 open issues
Schur rotation overflows when squaring unscaled entries · New Zero-matrix constructor does not check dimension overflow · New SVD rescaling breaks rank, null-space, and 2-norm condition number · New Complex exponential overflows despite representable components · New Complex division loses results when intermediate products underflow · New Frobenius norm and reflector discard NaN inputs · New Reflector construction produces a non-unit vector for subnormal input · New One, infinity, and max norms silently ignore NaN values · New 2-norm condition number treats NaN singular values as zero · New Nuclear condition number overflows for well-conditioned matrices · New
What changed in this PR
This intermediate merge from v0.1 expands the library’s mathematics support with complex numbers and matrices, alongside the existing arbitrary-precision integers and elliptic curves.
Changes:
- Adds complex arithmetic and functions, matrix operations, decompositions, and exact integer-matrix algorithms.
- Adds numerical regression tests covering decomposition identities, algorithm boundaries, and extreme magnitudes.
- Exposes the new modules, integrates documentation, and updates package metadata to version 0.0.29.
| File | Description |
|---|---|
lib/tests/math/matrix/svd.rs |
Tests SVD, norms, ranks, and characteristic polynomials. |
lib/tests/math/matrix/product.rs |
Checks matrix products across kernel boundaries. |
lib/tests/math/matrix/mod.rs |
Registers matrix test modules. |
lib/tests/math/matrix/factor.rs |
Tests factorizations, solves, and inverses. |
lib/tests/math/matrix/factor_paths.rs |
Exercises factorization thresholds and exceptional inputs. |
lib/tests/math/matrix/extremes.rs |
Tests extreme numerical magnitudes. |
lib/tests/math/matrix/exact.rs |
Validates exact integer-matrix algorithms. |
lib/tests/math/matrix/eigen.rs |
Tests Schur forms and eigendecompositions. |
lib/tests/math/matrix/common.rs |
Provides shared numerical test helpers. |
lib/tests/math/matrix/basic.rs |
Tests matrix construction, arithmetic, and formatting. |
lib/tests/math/main.rs |
Registers complex and matrix test suites. |
lib/tests/math/complex/mod.rs |
Tests complex arithmetic, functions, and branch cuts. |
lib/src/math/mod.rs |
Exposes and documents the new math modules. |
lib/src/math/matrix/svd/secular.rs |
Implements the secular-equation SVD merge step. |
lib/src/math/matrix/svd/qr.rs |
Implements bidiagonal QR iteration. |
lib/src/math/matrix/svd.rs |
Provides SVD APIs and algorithm selection. |
lib/src/math/matrix/properties.rs |
Adds norms, condition numbers, ranks, and related properties. |
lib/src/math/matrix/ops.rs |
Implements matrix arithmetic operators. |
lib/src/math/matrix/mod.rs |
Defines matrix storage, constructors, access, and formatting. |
lib/src/math/matrix/householder.rs |
Implements individual and blocked Householder reflections. |
lib/src/math/matrix/gemm/portable.rs |
Adds portable matrix-product kernels. |
lib/src/math/matrix/exact.rs |
Implements exact integer-matrix algorithms. |
lib/src/math/matrix/eigen.rs |
Provides eigendecomposition APIs and Schur conversion. |
lib/src/math/matrix/cholesky/aarch64.rs |
Adds NEON Cholesky kernels. |
lib/src/math/matrix/blas/trsm/aarch64.rs |
Adds NEON triangular-solve kernels. |
lib/src/math/matrix/blas.rs |
Provides shared product, solve, and scratch-memory interfaces. |
lib/src/math/matrix/basic.rs |
Adds transposes, row operations, traces, and powers. |
lib/src/math/complex/ops.rs |
Implements complex arithmetic operators. |
lib/src/math/complex/mod.rs |
Defines complex numbers and mathematical functions. |
lib/src/math/complex/float.rs |
Provides a sealed floating-point abstraction. |
lib/src/docs.rs |
Includes complex and matrix documentation in doctests. |
lib/docs/math/complex.md |
Documents complex APIs, algorithms, and benchmarks. |
lib/Cargo.toml |
Updates version and package descriptions and categories. |
lib/Cargo.lock |
Synchronizes the package version. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


No description provided.