Skip to content

Commit 931e925

Browse files
inital commit for add plain
1 parent 31b47b2 commit 931e925

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-1
lines changed

kerngen/pisa_generators/basic.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,34 @@ def add_last_half(
397397
)
398398

399399

400+
@dataclass
401+
class AddPlain(HighOp):
402+
"""Class representing a add plain operation"""
403+
404+
context: KernelContext
405+
output: Polys
406+
input0: Polys
407+
input1: Polys
408+
409+
def to_pisa(self) -> list[PIsaOp]:
410+
"""Return the p-isa code to perform a add plain operation"""
411+
one, r2, _ = common_immediates(
412+
r2_rns=self.context.max_rns, iq_rns=self.context.max_rns
413+
)
414+
first_part_input0 = Polys.from_polys(self.input0)
415+
first_part_input0.parts = 1
416+
first_part_input1 = Polys.from_polys(self.input1)
417+
first_part_input1.parts = 1
418+
419+
last_part_input0 = Polys.from_polys(self.input0, mode="last_part")
420+
last_part_output = Polys.from_polys(self.output, mode="last_part")
421+
return mixed_to_pisa_ops(
422+
Add(self.context, self.output, first_part_input0, first_part_input1),
423+
Muli(self.context, last_part_output, last_part_input0, one),
424+
Muli(self.context, last_part_output, last_part_output, r2),
425+
)
426+
427+
400428
def sub_last_half(
401429
context: KernelContext,
402430
output: Polys,

kerngen/pisa_generators/manifest.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"MOD": ["Mod", "mod.py"],
1212
"MODUP": ["ModUp", "mod.py"],
1313
"RELIN": ["Relin", "relin.py"],
14-
"ROTATE": ["Rotate", "rotate.py"]
14+
"ROTATE": ["Rotate", "rotate.py"],
15+
"ADDPLAIN": ["AddPlain","basic.py"]
1516
},
1617
"CKKS": {
1718
"ADD": ["Add", "basic.py"],

0 commit comments

Comments
 (0)