Created a new file macros.rs with the implementation of zip_with and zip_with_for_each macros providing syntactic sugar for zipWith patterns.
zipWith patterns implemented through the use of the zip_with! macros now resolve to the use of zip_eq, a variant of zip that panics when the iterator arguments are of different length,
the zip_eq implementation is the native rayon one for parallel iterators, and the one from itertools (see below) for the sequential ones,
Optimized and refactored functions like batch_eval_prove and batch_eval_verify in snark.rs, methods inside PolyEvalWitness and PolyEvalInstance in mod.rs, and multiple functions in multilinear.rs through the use of implemented macros.
Introduced the use of itertools::Itertools in various files to import the use of zip_eq on sequential iterators.
Made use of the Itertools library for refactoring and optimizing computation in sumcheck.rs and eq.rs files.
This backports (among others) content from the following Arecibo PRS:
Created a new file
macros.rs
with the implementation ofzip_with
andzip_with_for_each
macros providing syntactic sugar for zipWith patterns.zipWith patterns implemented through the use of the zip_with! macros now resolve to the use of zip_eq, a variant of zip that panics when the iterator arguments are of different length,
the zip_eq implementation is the native rayon one for parallel iterators, and the one from itertools (see below) for the sequential ones,
Optimized and refactored functions like
batch_eval_prove
andbatch_eval_verify
insnark.rs
, methods insidePolyEvalWitness
andPolyEvalInstance
inmod.rs
, and multiple functions inmultilinear.rs
through the use of implemented macros.Introduced the use of itertools::Itertools in various files to import the use of zip_eq on sequential iterators.
Made use of the Itertools library for refactoring and optimizing computation in
sumcheck.rs
andeq.rs
files.This backports (among others) content from the following Arecibo PRS:
This supports the upcoming integration of #283