openfhe-development
openfhe-development copied to clipboard
Support CKKS bootstrapping to a specific output level
See https://openfhe.discourse.group/t/inquiries-on-ckks-scheme-and-real-number-optimization-in-openfhe/1803/3 for more details
Add targetLevel as an extra argument to EvalBootstrap
Did initial pass. The implementation becomes too involved as the precomputed plaintexts (needed for the linear transforms) for a specific output level cannot be easily transformed to a different output level. In addition to indexing issues, the scale of the plaintexts also needs to be updated for FLEXIBLEAUTO* modes, which requires calling the adjustment logic (for extended plaintexts in QP rather than just Q; this logic is not currently implemented in OpenFHE; it only exists for plaintexts/ciphertexts in Q). The alternative is to support multiple sets of precomputed plaintexts via an STL map. However, this would require extra RAM and is also not supported by OpenFHE (only one set of precomputed plaintexts is currently supported). Simply speaking, significant new functionality would need to be added in either case.
Moved to the Future Releases milestone as this change requires major changes in OpenFHE.
Is there a simple workaround that can be used as long as this feature is not implemented?