* tmp
* tmp
* fix: add `forward_lazy` to make prime ring work with modulus up to `2^61`
* refactor
* refactor
* fix: apply auto to LWE `a` instead of to `sk`
* feat: test multi party case
* feat: integrate ring packing to `fhew` and example `multi_party`
* chore
* feat: update example `multi_party`
* feat: add noise stat for ring packing and improve example
* chore
* chore: rename `Interactive` to `Mpi`
* feat: add mod `prelude` for easier usage
* refactor: remove crs from key shaer
* refactor: remove scratch from args for fns called only once
* feat: port sample parameter `I_4P` from original impl
* chore
* feat: implement more details in `multi_party`
* feat: client receive pk
* feat: add `serde` and derive for most structs
* refactor: skip serde PhantomData
* feat: add serialize deserialize test
* feat: introduce `Compact` as a wrapper to serialize modulus element more compact
* feat: use `assert` for `FhewBoolCiphertext` decrypt
* feat: interactive key gen (noisy ring not working yet)
* feat: add interactive key gen noise stats test
* fix: clippy
* feat: add `LmkcdeyInteractiveCrs`
* chore: re-organize mod `lmkcdey`
* feat: on precise `PowerOfTwoRing` split u64 into 4 limbs and fft to preserve 64-bits precision
* feat: add `eval_scratch` to reduce rustfft cost (4% improvement in forward/backward)
* refactor: refactor deps and add bench for fhew evaluator
* refactor: benchmark with random data
* fix: fmt
* refactor: simplify a bit
* feat: introduce crate `evaluator` and implement `FhewBoolEvaluator`
* feat: fix `Ternary` and implement `rgsw::pk_encrypt`
* refactor: allocate scratch for each `bitop_assign`
* feat: make evaluator `Send + Sync`