Skip to content

Improve native array kernels and separate build layers - #57

Merged
jph00 merged 9 commits into
mainfrom
minor-release-review
Nov 8, 2026
Merged

jph00 merged 9 commits into
mainfrom
minor-release-review

Conversation

@jph00

@jph00 jph00 commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Separate core, kernels and timing build layers. Improve constant logarithms, scans, floor conversion and Mac joint sine/cosine. Share mapped input/output handling, write products into final storage, batch short ordered folds and reuse serial scratch. Use Cargo-owned workspace publication.

jph00 added 9 commits November 7, 2026 08:48
Use whole-slice constant-base logarithms and direct Boolean output for numeric comparison scans. Avoid the difference-scan temporary, use Mac's joint sine/cosine routine for bulk complex functions, and inline per-item formula forwarders across crate boundaries.

Keep scalar repair and the existing numerical contracts, with regression coverage for scan kinds, tolerances and lane boundaries. See Accuracy and the numerical-kernel documentation.
Allow expm1, log1p, trig, hyperbolic and cbrt recipes to specialize inside their calling kernels across the core/kernel crate boundary. Add ordinary inline hints only, without changing formulas, scalar repair, APIs or numerical contracts.
Keep the short predicate, reduction and polynomial helpers visible to the calling trigonometric recipe so native loops can specialize the operation and vectorize. Leave accurate scalar repair out of line. No algorithms, APIs or numerical contracts change.
Add ordinary inline hints to the two short Kind helpers still called per item in the current native loops. Math bodies and APIs are unchanged; performance validation of this development checkpoint remains pending.
Write mapped products and ready maps directly into their destination through the shared math kernels. Reuse serial map and fold scratch, preserve packed comparison results and convert constant results through their declared kind.

Separate timing support into its own crate. Run native correctness and performance tests through nextest, with instruction and allocation counts beside timing budgets. Keep CI free of performance measurements.
Include rustymath-timing after core and kernels in the existing registry publish loop. Update the documented order to match the Cargo dependencies.
Publish the workspace with Cargo rather than maintaining a second list of publishable crates and their dependency order. Keep the existing no-verify release policy and update the development notes.
@jph00 jph00 added the enhancement New feature or request label Nov 8, 2026
@jph00
jph00 merged commit 9be2031 into main Nov 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant