Skip to content

docs: README perf table + math bullet for the float engine#13

Merged
NiceAndPeter merged 1 commit into
mainfrom
docs-readme-float-perf
Jun 23, 2026
Merged

docs: README perf table + math bullet for the float engine#13
NiceAndPeter merged 1 commit into
mainfrom
docs-readme-float-perf

Conversation

@NiceAndPeter

Copy link
Copy Markdown
Owner

Update the README for the float engine

  • Performance table: the single math::sin row becomes a double-engine and a float-engine (math::flt::sin, f32 operand) row, each against its native baseline (std::sin / std::sinf), measured in one fresh bench run so they're mutually comparable. The note explains the float engine tracks the double engine on a double-capable host (~1.15× here) and comparable to std::sinf; its real win is single-precision-only FPUs paired with f32 storage (all-hardware-float, no soft-double at the boundary). Absolute ns is flagged as machine-dependent.
  • Features bullet: "two engines" → three callable by namespace (dbl/flt/cordic), the build-default macros, BND_MATH_NO_FP, and snap-not-real.
  • bench.cpp: adds the math::flt::sin / std::sinf blocks (guarded !BND_MATH_FIXED) + an f32-backed angle vector, so the figure comes from the committed harness. Builds clean under default / float / CORDIC.

Docs/bench only — no library change, no single-header regen needed.

🤖 Generated with Claude Code

- Performance table: split the single `math::sin` row into a double-engine and
  a float-engine (`math::flt::sin`, f32 operand) row, each vs its native baseline
  (`std::sin` / `std::sinf`), measured in one fresh bench run so they are mutually
  comparable. Note explains the float engine tracks the double engine on a
  double-capable host (~1.15× here) and its real win is single-precision-only
  FPUs paired with f32 storage (all-hardware-float, no soft-double at the I/O
  boundary). Absolute ns is machine-dependent (flagged).
- Features bullet: "two engines" → three engines callable by namespace
  (dbl/flt/cordic), the build-default macros, BND_MATH_NO_FP, and snap-not-real.
- bench.cpp: add the `math::flt::sin` / `std::sinf` blocks (guarded
  !BND_MATH_FIXED) + an f32-backed angle vector, so the number is measured by the
  committed harness. Builds clean under default / float / CORDIC.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@NiceAndPeter NiceAndPeter merged commit a02b799 into main Jun 23, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant