-
Notifications
You must be signed in to change notification settings - Fork 121
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
refactor(tfhe): Allow CompactCiphertextList to store heterogeneous types #1123
Conversation
c8993a1
to
762507b
Compare
75ef4d0
to
88fb777
Compare
88fb777
to
43ba08a
Compare
599dcb1
to
2e90e06
Compare
c2046ee
to
b71527c
Compare
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.
One question first : do we drop the compact ciphertext type entirely ?
it looks a bit less ergonomic to use, I was thinking that maybe a thin wrapper around the generic list could be of interest
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.
Haven't gone in the very detailed
5e1df0a
to
8686eb4
Compare
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.
Thanks a lot !
This refactors the integer's CompactCiphertextList to allow storing unsigned, signed (without necessarily the same number of blocks) and booleans in a single comapct list. This is better as its more flexible and allows for better compression by not forcing to use a list per data type. This is especially interessing with zero-knowledge proofs as they are expensive to compute. This also adds the ability to pack integer blocks by using the carry space, but makes the expansion require a ServerKey to split blocks via PBS. BREAKING CHANGE: expand method from CompactCiphertextList returns a CiphertextExpander BREAKING CHANGE: Removes 'typed' CompactList and Compact types from the hlapi (e.g. CompactFheUintList/CompactFheUintX)
8686eb4
to
ebcb65e
Compare
This refactors the integer's CompactCiphertextList to allow storing usngined, signed (not with necessarily the same number of blocks) and booleans in a single comapct list.
This is better as its more flexible and allows for better compression by not forcing to use a list per data type. This is especially interessing with zero-knowledge proofs as they are expensive to compute.
This also removes 'typed' CompactList and Comapct types from the hlapi.