Skip to content

Conversation

@xrvdg
Copy link
Collaborator

@xrvdg xrvdg commented Dec 17, 2025

This PR adds basic support for M31 (addition, subtraction, multiplication and shift left). This implementation differs from Plonky, STWO and Icicle in that it uses the correspondence between Mersenne numbers and one complement representation. This correspondence allows us to get rid of the asymmetry between addition and subtraction and thereby making effective use of 64 bit registers. With this PR intermediate results can accumulate to fill a 62 bit signed integer before needing reduction.

@xrvdg xrvdg requested review from recmo and veljkovranic December 17, 2025 04:00
@xrvdg xrvdg mentioned this pull request Dec 17, 2025
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.

3 participants