-
Notifications
You must be signed in to change notification settings - Fork 254
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
Change GroupAffine
/GroupProjective
to maintain invariants
#268
Comments
Please consider using the |
As a user rather than a maintainer of arkworks, I don't really have a stake in this, but I'm not sure it's fair to describe those crates as being minimal dependencies -- regardless of code size or number of transitive dependencies, a fundamental abstraction like a group or field trait is a significant dependency, affecting nearly every part of the codebase, and switching to it isn't trivial. |
If this happens, it's worth retaining some |
@hdevalence That's why I only suggested switching to it in the case that Arkworks' APIs were going to change in order to make essentially the same |
Hmm I don't think we intend to have separate traits for |
Currently the
GroupAffine
andGroupProjective
structs do not maintain either of these invariants:The
GroupAffine
struct provides methods to check these, butGroupProjective
does not. The API could be improved by:new()
method and making it fallible;fn x(&self) -> &F
,fn y(&self) -> &F
, etc;This ensures that any users of the structures outside of the module subtree can't violate these invariants.
The text was updated successfully, but these errors were encountered: