CHANGELOG:
- Update of `PrecisionStats` in `ckks/precision.go`:
- precision/error stats computed as log2 of min/max/average/...
- fields renamed (`MinPrecision` -> `MINLog2Prec`, `MaxPrecision` -> `MAXLog2Prec`, ...)
- `rlwe.Scale` has a `.Log2()` method
- Update of `mod1.Parameters` fields (made public, some removed)
- Improvement of the relinearization key-generation protocol (reduce the degree of the shares)
- Serialisation of bootstrapping keys
- Lower noise incurred by `ModUp`
- Evaluation keys can be compressed (public element `a` can be generated from a seed)
- More doc formatting
- Fix various bugs:
- `ShallowCopy` of the CKKS bootstrapping evaluator and BFV evaluator not deep enough.
- PSI example failing
- Incorrect reset of pointer in uniform sampler
- Error when doing inverse NTT with small degree
- Mod1Evaluator changes the input ciphertext
Co-authored-by: Andrea Caforio <andrea.caforio@protonmail.com>
Co-authored-by: Jean-Philippe Bossuat <jean-philippe@tuneinsight.com>
The distribtion interface was too complicated for what it provided. To achieve its
intended functionality, larger changes needed to occure such as including the base ring
in the Distribution interface and probably moving the samplers to the rlwe package.
Since this is not the envision goal of this PR, I simplified the distribution
parameterization so that it meets these goals.