-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(nifs): impl protogalaxy::poly::compute_G
#284
Conversation
d01110d
to
6b0ae01
Compare
protogalaxy::poly::compute_G
The algorithm separated from the context is here, for your reference https://gist.github.com/rust-play/89ae0609d30feb22d2585a6f43ccc07e |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finish the first round of review. The fold_challenges
looks good to me (still left some comments). The 'fold_witness` has some issues to be addressed.
I did not take into account that I will postpone this task for now due to higher priority, however, the fix will be not very large |
refactor(nifs): mv `folded_trace` to mod fix(util): err in doc-test docs(nifs): `protogalaxy::poly`
Benchmark data is still being collected, but there doesn't seem to be any code left there, I'm going back to this task |
0f6031f
to
b232c7a
Compare
Generally fixed, but because of cloning there is multiple rows traversal, which can be annoying. It is also possible to create result vectors more optimally. But in order not to delay, I suggest to return to this optimization, if it becomes bottle neck |
@chaosma |
Clone to a chunk of memory will be faster than piece-by-piece copying
I think I got it. Other comments are addressed. I leave a new comment there. |
Motivation
Close #260
Overview
compute_G
viatree_reduce
fold_witness
fold_plonk_challenges
implementation (there are not so many items, so there is no sense to use rayon)multi_product
, analogous to itertools, but withoutClone
.try_multi_product
, analogous to itertools, but with processingResult
in Item. This allows not to finish processing when the first error occurs.folded_trace
module to control the size ofprotogalaxy::poly