-
Notifications
You must be signed in to change notification settings - Fork 1
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
Jl projection #25
Draft
mattsuffern
wants to merge
36
commits into
main
Choose a base branch
from
jl_projection
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Jl projection #25
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implement Zq struct representing elements in ℤ/(2³²)ℤ ring arithmetic with native u32 operations. Key features: - Fully derived Debug, Clone, Copy, PartialEq, Eq, and Default traits - Implements Add/Sub/Mul operator traits with implicit modulo reduction - Provides Assign variants for in-place operations (AddAssign, etc) - Macro-generated trait impls ensuring DRY principle adherence - Display trait for formatted output in user interfaces - Extensive test coverage including edge cases: - Additive/multiplicative identity properties - Wrapping overflow/underflow behavior - Assignment operator correctness - u32 conversion invariants - Display formatting checks Enables safe, zero-cost abstraction for cryptographic primitives requiring modular arithmetic (e.g., FHE schemes, lattice-based crypto). Leverages: - Rust's wrapping arithmetic for constant-time operations - Type-safe API preventing raw integer misuse Performance characteristics: - All operations compile to single CPU instructions - No heap allocations Issue-URL: #17
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Draft PR of current progress in Johnson Lindenstrauss Projection
The tests in the jl.rs file are there to show that the current implementation is not working
(closes #10)