Closed asraa closed 5 months ago
We need to add a bgv plaintext type:
def Plaintext : BGV_Type<"Plaintext", "plaintext"> { let summary = "A type for BGV plaintext"; let description = [{ A type for BGV plaintext. }]; let parameters = (ins BGVRingAttrArray:$rings, ); let assemblyFormat = "`<` `rings` = $rings `>`"; }
That also likely needs to hold on to plaintext bits. (see https://github.com/google/heir/issues/99)
Which would enable representation of muls, or other ops that can occur between ciphertext and plaintext:
def BGV_MulPlaintextOp : BGV_Op<"mul_plaintext"> { let summary = "Multiplication by a plaintext element."; let arguments = (ins Ciphertext:$x, Plaintext:$y ); let results = (outs Ciphertext:$output ); }
This can even be an input to a trivial encryption.
This issue has 1 outstanding TODOs:
This comment was autogenerated by todo-backlinks
We need to add a bgv plaintext type:
That also likely needs to hold on to plaintext bits. (see https://github.com/google/heir/issues/99)
Which would enable representation of muls, or other ops that can occur between ciphertext and plaintext:
This can even be an input to a trivial encryption.