# Functional bootstrapping
The main idea is to replace the mod_eval step with LUT table computation. This can be used to remove CKKS noise or computing specific function $f:\mathbb{Z}_p\rightarrow\mathbb{Z}_p$ during bootstrapping. $f$ is chosen so it's derivatives will vanish in the interpolation points. Require higher derivative consume more levels.
It is relevant when we the slots are over $\mathbb{Z}_p$.
## Bootstrap algorithm
$
x\xrightarrow{\text{modUp}}x+I\xrightarrow{\text{CtS}}exp(2\pi i(x\Delta+Iq))=exp(2\pi i x)\xrightarrow{\text{EvalLUT}}P_f(x)
$
note that after CtS, the slots are added with $qI$ value but as their scale is $\Delta\approx q$ then the addition to the slots is actually $I$ (polynomial with small integer coefficients).
Reference: Alexandru, A., Kim, A., and Polyakov, Y. **General Functional Bootstrapping using CKKS.** _IACR Cryptology ePrint Archive_, Report 2024/1623, 2024. [https://eprint.iacr.org/2024/1623](https://eprint.iacr.org/2024/1623)
## Created 2026-06-22 10:14