refactor: clean iop APIs + add Marshal methods #337
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
iop
package methods / functions are more consistent, and takes as argument / return the same type*iop.Polynomial
.There is now only
Polynomial
(previouslyWrappedPolynomial
); the contract of this struct is consistent;it is initialized with a pointer to a slice of field elements (the coefficients:
*[]fr.Element
) and any calls onPolynomial
methods will mutate the original slice (even if it needs to grow for a FFT).The method
Clone() *Polynomial
performs a deep-copy and clones the underlying vector of coefficients.The method
ShallowClone() *Polynomial
returns a new object with the same underlying coefficients; this allows modification of theshift
size
andblindedSize
attributres (Blind
method for example) without re-allocating.Additionally,
Polynomial
now implementsio.ReaderFrom
andio.WriterTo
.