heir
heir copied to clipboard
A compiler for homomorphic encryption
Add initial poly approximation for "ReLU via tosa.clamp"
- We can reduce complexity of polynomial multiplication by using the number-theoretic transform - Here we add a pass that will convert all poly.mul operations into a poly.ntt of both...
- Support generated functions with multiple return values - Support a variable number of input arguments (not just 2 ints) - Custom function name besides `fn_under_test`?
Likely flattening indices with values, for e.g.
- [ ] Handle non-memref Ciphertext args in tfhe-rs-emitter.: Right now, we assume that temp_nodes contains all possible input ciphertexts by inserting `create_trivial` and any `memref.load` ops from ciphertext memrefs...
Right now, most of the emitter type conversions to Rust assume inputs are EncryptedUint3's - we should have a trait /interface on the tfhe_rust dialect's encrypted types and use that.
Right now the user must manually call functions like `EvalMultKeyGen` if the IR contains `EvalMult`, and `EvalRotateKeyGen` with known rotation shifts (which requires looking at the generated code to determine),...
I originally wrote the `bgv-to-openfhe` lowering without a complete understanding of the limitations of the OpenFHE API, which results in a decent amount of cruft related to casting types during...