Ciphertext packing in bootstrapping #506
Open
+263
−99
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.
This PR makes the following changes:
bootstrapping.Parameters.LogMaxSlots()
is not maximal.N1 != N2
and the ciphertexts are sparsed relative toN1
.N1
(resp.N2
) refers to the degree of the ring used outside (resp. inside) the bootstrapping.bootstrapping/evaluator.go
(to check).Regarding the last point, the following methods have been made private:
pack
unpack
switchRingDegreeN1ToN2New
switchRingDegreeN2ToN1New
The idea is that users could want to pack and unpack themselves (using
PackAndSwitchN1ToN2
andUnpackAndSwitchN2toN1
) to take advantage of the packing, but the lower level functions are not meant to be used outside of this context. Any feedback on that is much appreciated.