Skip to content

Faster polynomial evaluation in Lagrange basis with rhizomes algorithm.#1340

Merged
divergentdave merged 2 commits into
divviup:mainfrom
armfazh:cc/verifier
Nov 3, 2025
Merged

Faster polynomial evaluation in Lagrange basis with rhizomes algorithm.#1340
divergentdave merged 2 commits into
divviup:mainfrom
armfazh:cc/verifier

Conversation

@armfazh
Copy link
Copy Markdown
Contributor

@armfazh armfazh commented Sep 23, 2025

Use of faster polynomial evaluation in the Lagrange basis from the rhizomes paper.

Reference:
link Rhizomes and the Roots of Efficiency, Latincrypt 2025.

Running Benchmarks

git checkout main
cargo bench --features experimental --bench speed_tests -- "prio3.*prepare_init" --quiet --save-baseline baseline

git checkout pr
cargo bench --features experimental --bench speed_tests -- "prio3.*prepare_init" --quiet --save-baseline rhizomes
critcmp baseline rhizomes

Timings

Plot of the timings for PrepInit step.

comparison

Faster polynomial evaluation on flp.Query.
Polynomials are directly evaluated in the Lagrange basis.
Uses the batched algorithm from the rhizomes paper (https://ia.cr/2025/1727).
Copy link
Copy Markdown
Contributor

@jcjones jcjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only weighing in on the Rust, not the cryptographic implementation

Comment thread src/polynomial.rs Outdated
Comment thread src/polynomial.rs
Copy link
Copy Markdown
Collaborator

@divergentdave divergentdave left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking good, just noted one edge case. Thanks so much for this work, the performance improvement is amazing!

Comment thread src/polynomial.rs
Comment thread src/polynomial.rs Outdated
Copy link
Copy Markdown
Contributor

@jcjones jcjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've gone back through this and am good to merge with the existing review fixes in place.

@divergentdave divergentdave merged commit 60c27c5 into divviup:main Nov 3, 2025
6 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.

3 participants