Double hoisting is already implemented in OpenFHE. The simplest instance is provided at openfhe-development/src/pke/lib/scheme/ckksrns/ckksrns-fhe.cpp at v1.4.0 · openfheorg/openfhe-development · GitHub This instance corresponds to Algorithm 6 (with some optimizations). The number of ModDown calls is reduced just like in Algorithm 6. Note that to support double hoisting, the automorphism key generation is done differently (see EvalAutomorphismKeyGen ModInverse index and LeveledSHEBase<Element>::EvalAutomorphism code order for more details)
Related topics
| Topic | Replies | Views | Activity | |
|---|---|---|---|---|
| Advanced bootstrapping and level collapsing | 3 | 126 | August 19, 2024 | |
| Order of Automorphism and Key-Switching in OpenFHE’s EvalAutomorphism (C++) | 1 | 70 | August 3, 2025 | |
| Homomorphic Rotations between first and second half of the vector | 6 | 331 | March 21, 2024 | |
| Encoding im OpenFHE | 1 | 33 | August 15, 2024 | |
| Do CKKS evalSumRows/Cols implicitly use hoisting for rotations? | 1 | 70 | October 13, 2025 |