Skip to content

Infrastructure update: MSM variants + compact polynomial types#493

Open
srinathsetty wants to merge 2 commits intomainfrom
compact
Open

Infrastructure update: MSM variants + compact polynomial types#493
srinathsetty wants to merge 2 commits intomainfrom
compact

Conversation

@srinathsetty
Copy link
Copy Markdown
Collaborator

No description provided.

Stores polynomial evaluations as bool/u8/u16/u32/u64/i64 and defers
conversion to field elements until bind. First bind promotes the compact
representation to field elements in one pass using diff_to_field.

Also enables the bn256-table feature for fast small-value Fr conversion:
values below 65536 use a precomputed lookup table instead of Montgomery
multiplication.
Add signed MSM (msm_signed, msm_signed_windowed) for i128 scalars,
splitting into positive/negative u64 parts with optimal small-scalar
MSM. Add windowed Pippenger with XYZZ bucket coordinates and signed
digit recoding for 33-64 bit scalars.

Add batch sparse binary commit (commit_sparse_binary_batch) with shared-
index deduplication: when multiple polynomials in a group share the same
hot index at a position, the SRS point is accumulated once into a shared
sum rather than once per polynomial.

Add batch_add_address_grouped for chunked polynomials where the SRS index
has address locality, using sequential SRS scans with per-address
bitmasks for cache-friendly access.

New CommitmentEngineTrait methods: commit_signed, commit_sparse,
commit_sparse_binary_batch, with implementations for HyperKZG and
Pedersen.
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