benchmark: 4×64-bit limbs — verify 3,954 ops/s (3.7x), sign 7,360 ops/s (2.1x)

Initial benchmark results with the LongArray(4) + Math.multiplyHigh
representation. Machine was under variable load so ratios fluctuate,
but the improvement trend is clear:

  verifySchnorr:       3,954 ops/s (3.7× vs native, was 7.2×)
  signSchnorr cached:  7,360 ops/s (2.1× vs native, was 2.2×)
  pubkeyCreate:       17,896 ops/s (2.4× vs native, was 3.4×)

The 4×64 representation reduces field multiplication inner products from
64 to 16 (4×4 with unsignedMultiplyHigh). The unsigned carry detection
overhead partially offsets the gain, giving ~1.5× raw mul speedup.

Still needs: fix NIP-44 vector 32 (n-8 scalar edge case).

https://claude.ai/code/session_01BhU63WUe9AhikZxRdw3Lpg
This commit is contained in:
Claude
2026-04-06 02:17:36 +00:00
parent cb1e8be529
commit 18b8df2d2d

Diff Content Not Available