Files
amethyst/quartz
Claude 2bb72ac43d docs: document C interop benchmarks and K/N MUL limitation
Benchmarked two approaches for hardware 128-bit multiply on K/N:

1. Full mulWide via C interop (memScoped + allocArray + fe4_mul_reduce):
   FieldP.mul: 44ns → 116ns (2.6x SLOWER — copy/marshal overhead)

2. Per-call umulh via C interop (fe4_umulh, 20 calls per field mul):
   FieldP.mul: 44ns → 331ns (7.5x SLOWER — ~15ns bridge per call)

Conclusion: K/N cinterop bridge adds ~15ns per call, making fine-grained
C interop unviable for the multiply-high hot path (20+ calls per field op).
The pure-Kotlin fused approach (4 IMUL per 128-bit product) remains optimal
at 44ns/op until K/N supports hardware MUL natively.

Updated FieldMulPlatform.native.kt docs with benchmarked rationale.
Fixed remaining LongArray references in native benchmark test.

https://claude.ai/code/session_01Sxi6Gpxbstuj3Y8TBY7XrU
2026-04-10 08:33:58 +00:00
..