Skip to content

Commit 4e07914

Browse files
Bug fix - Kerngen crash large RNS values. (#129)
Fixed a bug to address a crash when RNS values in relin/decomp is large (greater than 52).
1 parent f334b11 commit 4e07914

File tree

6 files changed

+482
-484
lines changed

6 files changed

+482
-484
lines changed

p-isa_tools/kerngen/pisa_generators/basic.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import itertools as it
77
from collections.abc import Iterable
88
from dataclasses import dataclass
9-
from string import ascii_letters
109
from typing import ClassVar
1110

1211
import high_parser.pisa_operations as pisa_op
@@ -244,7 +243,7 @@ def get_pisa_op(num):
244243
ls: list[pisa_op] = []
245244
for digit, op in get_pisa_op(self.input1.digits):
246245
input0_tmp = Polys.from_polys(self.input0)
247-
input0_tmp.name += "_" + ascii_letters[digit]
246+
input0_tmp.name += f"_{digit}"
248247

249248
# mul/mac for 0-current_rns
250249
ls.extend(

p-isa_tools/kerngen/pisa_generators/decomp.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import itertools as it
66
from dataclasses import dataclass
7-
from string import ascii_letters
87

98
import high_parser.pisa_operations as pisa_op
109
from high_parser import HighOp, Immediate, KernelContext, Polys
@@ -66,7 +65,7 @@ def to_pisa(self) -> list[PIsaOp]:
6665
)
6766

6867
output_tmp = Polys.from_polys(self.output)
69-
output_tmp.name += "_" + ascii_letters[input_rns_index]
68+
output_tmp.name += f"_{input_rns_index}"
7069
output_split = Polys.from_polys(self.output)
7170
output_split.rns = self.context.current_rns
7271
# ntt for 0-current_rns

p-isa_tools/kerngen/tests/kernel_examples/relin_kernel/output.bgv.16k_l2_m3.relin

Lines changed: 120 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -44,132 +44,132 @@
4444
0, muli, coeffs_2_1_1, ct_2_0_1, R2_1, 1
4545
0, muli, coeffs_2_2_0, ct_2_0_0, R2_2, 2
4646
0, muli, coeffs_2_2_1, ct_2_0_1, R2_2, 2
47-
0, mul, coeffs_a_2_0_0, coeffs_2_0_0, psi_0_0_0, 0
48-
0, mul, coeffs_a_2_1_0, coeffs_2_1_0, psi_0_1_0, 1
49-
0, mul, coeffs_a_2_0_1, coeffs_2_0_1, psi_0_0_1, 0
50-
0, mul, coeffs_a_2_1_1, coeffs_2_1_1, psi_0_1_1, 1
51-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 0, 0, 0
52-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 0, 0, 1
53-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 1, 0, 0
54-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 1, 0, 1
55-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 2, 0, 0
56-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 2, 0, 1
57-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 3, 0, 0
58-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 3, 0, 1
59-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 4, 0, 0
60-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 4, 0, 1
61-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 5, 0, 0
62-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 5, 0, 1
63-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 6, 0, 0
64-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 6, 0, 1
65-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 7, 0, 0
66-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 7, 0, 1
67-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 8, 0, 0
68-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 8, 0, 1
69-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 9, 0, 0
70-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 9, 0, 1
71-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 10, 0, 0
72-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 10, 0, 1
73-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 11, 0, 0
74-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 11, 0, 1
75-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_a_2_0_0, coeffs_a_2_0_1, 12, 0, 0
76-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_a_2_1_0, coeffs_a_2_1_1, 12, 0, 1
77-
0, ntt, coeffs_a_2_0_0, coeffs_a_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 13, 0, 0
78-
0, ntt, coeffs_a_2_1_0, coeffs_a_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 13, 0, 1
79-
0, mul, coeffs_a_2_2_0, coeffs_2_2_0, psi_0_2_0, 2
80-
0, mul, coeffs_a_2_2_1, coeffs_2_2_1, psi_0_2_1, 2
81-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 0, 0, 2
82-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 1, 0, 2
83-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 2, 0, 2
84-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 3, 0, 2
85-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 4, 0, 2
86-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 5, 0, 2
87-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 6, 0, 2
88-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 7, 0, 2
89-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 8, 0, 2
90-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 9, 0, 2
91-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 10, 0, 2
92-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 11, 0, 2
93-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_a_2_2_0, coeffs_a_2_2_1, 12, 0, 2
94-
0, ntt, coeffs_a_2_2_0, coeffs_a_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 13, 0, 2
47+
0, mul, coeffs_0_2_0_0, coeffs_2_0_0, psi_0_0_0, 0
48+
0, mul, coeffs_0_2_1_0, coeffs_2_1_0, psi_0_1_0, 1
49+
0, mul, coeffs_0_2_0_1, coeffs_2_0_1, psi_0_0_1, 0
50+
0, mul, coeffs_0_2_1_1, coeffs_2_1_1, psi_0_1_1, 1
51+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 0, 0, 0
52+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 0, 0, 1
53+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 1, 0, 0
54+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 1, 0, 1
55+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 2, 0, 0
56+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 2, 0, 1
57+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 3, 0, 0
58+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 3, 0, 1
59+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 4, 0, 0
60+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 4, 0, 1
61+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 5, 0, 0
62+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 5, 0, 1
63+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 6, 0, 0
64+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 6, 0, 1
65+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 7, 0, 0
66+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 7, 0, 1
67+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 8, 0, 0
68+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 8, 0, 1
69+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 9, 0, 0
70+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 9, 0, 1
71+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 10, 0, 0
72+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 10, 0, 1
73+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 11, 0, 0
74+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 11, 0, 1
75+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_0_2_0_0, coeffs_0_2_0_1, 12, 0, 0
76+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_0_2_1_0, coeffs_0_2_1_1, 12, 0, 1
77+
0, ntt, coeffs_0_2_0_0, coeffs_0_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 13, 0, 0
78+
0, ntt, coeffs_0_2_1_0, coeffs_0_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 13, 0, 1
79+
0, mul, coeffs_0_2_2_0, coeffs_2_2_0, psi_0_2_0, 2
80+
0, mul, coeffs_0_2_2_1, coeffs_2_2_1, psi_0_2_1, 2
81+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 0, 0, 2
82+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 1, 0, 2
83+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 2, 0, 2
84+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 3, 0, 2
85+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 4, 0, 2
86+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 5, 0, 2
87+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 6, 0, 2
88+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 7, 0, 2
89+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 8, 0, 2
90+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 9, 0, 2
91+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 10, 0, 2
92+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 11, 0, 2
93+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_0_2_2_0, coeffs_0_2_2_1, 12, 0, 2
94+
0, ntt, coeffs_0_2_2_0, coeffs_0_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 13, 0, 2
9595
0, muli, coeffs_2_0_0, ct_2_1_0, R2_0, 0
9696
0, muli, coeffs_2_0_1, ct_2_1_1, R2_0, 0
9797
0, muli, coeffs_2_1_0, ct_2_1_0, R2_1, 1
9898
0, muli, coeffs_2_1_1, ct_2_1_1, R2_1, 1
9999
0, muli, coeffs_2_2_0, ct_2_1_0, R2_2, 2
100100
0, muli, coeffs_2_2_1, ct_2_1_1, R2_2, 2
101-
0, mul, coeffs_b_2_0_0, coeffs_2_0_0, psi_0_0_0, 0
102-
0, mul, coeffs_b_2_1_0, coeffs_2_1_0, psi_0_1_0, 1
103-
0, mul, coeffs_b_2_0_1, coeffs_2_0_1, psi_0_0_1, 0
104-
0, mul, coeffs_b_2_1_1, coeffs_2_1_1, psi_0_1_1, 1
105-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 0, 0, 0
106-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 0, 0, 1
107-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 1, 0, 0
108-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 1, 0, 1
109-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 2, 0, 0
110-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 2, 0, 1
111-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 3, 0, 0
112-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 3, 0, 1
113-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 4, 0, 0
114-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 4, 0, 1
115-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 5, 0, 0
116-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 5, 0, 1
117-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 6, 0, 0
118-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 6, 0, 1
119-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 7, 0, 0
120-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 7, 0, 1
121-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 8, 0, 0
122-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 8, 0, 1
123-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 9, 0, 0
124-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 9, 0, 1
125-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 10, 0, 0
126-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 10, 0, 1
127-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 11, 0, 0
128-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 11, 0, 1
129-
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_b_2_0_0, coeffs_b_2_0_1, 12, 0, 0
130-
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_b_2_1_0, coeffs_b_2_1_1, 12, 0, 1
131-
0, ntt, coeffs_b_2_0_0, coeffs_b_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 13, 0, 0
132-
0, ntt, coeffs_b_2_1_0, coeffs_b_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 13, 0, 1
133-
0, mul, coeffs_b_2_2_0, coeffs_2_2_0, psi_0_2_0, 2
134-
0, mul, coeffs_b_2_2_1, coeffs_2_2_1, psi_0_2_1, 2
135-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 0, 0, 2
136-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 1, 0, 2
137-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 2, 0, 2
138-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 3, 0, 2
139-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 4, 0, 2
140-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 5, 0, 2
141-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 6, 0, 2
142-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 7, 0, 2
143-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 8, 0, 2
144-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 9, 0, 2
145-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 10, 0, 2
146-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 11, 0, 2
147-
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_b_2_2_0, coeffs_b_2_2_1, 12, 0, 2
148-
0, ntt, coeffs_b_2_2_0, coeffs_b_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 13, 0, 2
149-
0, mul, c2_rlk_0_0_0, coeffs_a_2_0_0, rlk_0_0_0_0, 0
150-
0, mul, c2_rlk_0_0_1, coeffs_a_2_0_1, rlk_0_0_0_1, 0
151-
0, mul, c2_rlk_0_1_0, coeffs_a_2_1_0, rlk_0_0_1_0, 1
152-
0, mul, c2_rlk_0_1_1, coeffs_a_2_1_1, rlk_0_0_1_1, 1
153-
0, mul, c2_rlk_1_0_0, coeffs_a_2_0_0, rlk_1_0_0_0, 0
154-
0, mul, c2_rlk_1_0_1, coeffs_a_2_0_1, rlk_1_0_0_1, 0
155-
0, mul, c2_rlk_1_1_0, coeffs_a_2_1_0, rlk_1_0_1_0, 1
156-
0, mul, c2_rlk_1_1_1, coeffs_a_2_1_1, rlk_1_0_1_1, 1
157-
0, mul, c2_rlk_0_2_0, coeffs_a_2_2_0, rlk_0_0_2_0, 2
158-
0, mul, c2_rlk_0_2_1, coeffs_a_2_2_1, rlk_0_0_2_1, 2
159-
0, mul, c2_rlk_1_2_0, coeffs_a_2_2_0, rlk_1_0_2_0, 2
160-
0, mul, c2_rlk_1_2_1, coeffs_a_2_2_1, rlk_1_0_2_1, 2
161-
0, mac, c2_rlk_0_0_0, coeffs_b_2_0_0, rlk_0_1_0_0, 0
162-
0, mac, c2_rlk_0_0_1, coeffs_b_2_0_1, rlk_0_1_0_1, 0
163-
0, mac, c2_rlk_0_1_0, coeffs_b_2_1_0, rlk_0_1_1_0, 1
164-
0, mac, c2_rlk_0_1_1, coeffs_b_2_1_1, rlk_0_1_1_1, 1
165-
0, mac, c2_rlk_1_0_0, coeffs_b_2_0_0, rlk_1_1_0_0, 0
166-
0, mac, c2_rlk_1_0_1, coeffs_b_2_0_1, rlk_1_1_0_1, 0
167-
0, mac, c2_rlk_1_1_0, coeffs_b_2_1_0, rlk_1_1_1_0, 1
168-
0, mac, c2_rlk_1_1_1, coeffs_b_2_1_1, rlk_1_1_1_1, 1
169-
0, mac, c2_rlk_0_2_0, coeffs_b_2_2_0, rlk_0_1_2_0, 2
170-
0, mac, c2_rlk_0_2_1, coeffs_b_2_2_1, rlk_0_1_2_1, 2
171-
0, mac, c2_rlk_1_2_0, coeffs_b_2_2_0, rlk_1_1_2_0, 2
172-
0, mac, c2_rlk_1_2_1, coeffs_b_2_2_1, rlk_1_1_2_1, 2
101+
0, mul, coeffs_1_2_0_0, coeffs_2_0_0, psi_0_0_0, 0
102+
0, mul, coeffs_1_2_1_0, coeffs_2_1_0, psi_0_1_0, 1
103+
0, mul, coeffs_1_2_0_1, coeffs_2_0_1, psi_0_0_1, 0
104+
0, mul, coeffs_1_2_1_1, coeffs_2_1_1, psi_0_1_1, 1
105+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 0, 0, 0
106+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 0, 0, 1
107+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 1, 0, 0
108+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 1, 0, 1
109+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 2, 0, 0
110+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 2, 0, 1
111+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 3, 0, 0
112+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 3, 0, 1
113+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 4, 0, 0
114+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 4, 0, 1
115+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 5, 0, 0
116+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 5, 0, 1
117+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 6, 0, 0
118+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 6, 0, 1
119+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 7, 0, 0
120+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 7, 0, 1
121+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 8, 0, 0
122+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 8, 0, 1
123+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 9, 0, 0
124+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 9, 0, 1
125+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 10, 0, 0
126+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 10, 0, 1
127+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 11, 0, 0
128+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 11, 0, 1
129+
0, ntt, outtmp_2_0_0, outtmp_2_0_1, coeffs_1_2_0_0, coeffs_1_2_0_1, 12, 0, 0
130+
0, ntt, outtmp_2_1_0, outtmp_2_1_1, coeffs_1_2_1_0, coeffs_1_2_1_1, 12, 0, 1
131+
0, ntt, coeffs_1_2_0_0, coeffs_1_2_0_1, outtmp_2_0_0, outtmp_2_0_1, 13, 0, 0
132+
0, ntt, coeffs_1_2_1_0, coeffs_1_2_1_1, outtmp_2_1_0, outtmp_2_1_1, 13, 0, 1
133+
0, mul, coeffs_1_2_2_0, coeffs_2_2_0, psi_0_2_0, 2
134+
0, mul, coeffs_1_2_2_1, coeffs_2_2_1, psi_0_2_1, 2
135+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 0, 0, 2
136+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 1, 0, 2
137+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 2, 0, 2
138+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 3, 0, 2
139+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 4, 0, 2
140+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 5, 0, 2
141+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 6, 0, 2
142+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 7, 0, 2
143+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 8, 0, 2
144+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 9, 0, 2
145+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 10, 0, 2
146+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 11, 0, 2
147+
0, ntt, outtmp_2_2_0, outtmp_2_2_1, coeffs_1_2_2_0, coeffs_1_2_2_1, 12, 0, 2
148+
0, ntt, coeffs_1_2_2_0, coeffs_1_2_2_1, outtmp_2_2_0, outtmp_2_2_1, 13, 0, 2
149+
0, mul, c2_rlk_0_0_0, coeffs_0_2_0_0, rlk_0_0_0_0, 0
150+
0, mul, c2_rlk_0_0_1, coeffs_0_2_0_1, rlk_0_0_0_1, 0
151+
0, mul, c2_rlk_0_1_0, coeffs_0_2_1_0, rlk_0_0_1_0, 1
152+
0, mul, c2_rlk_0_1_1, coeffs_0_2_1_1, rlk_0_0_1_1, 1
153+
0, mul, c2_rlk_1_0_0, coeffs_0_2_0_0, rlk_1_0_0_0, 0
154+
0, mul, c2_rlk_1_0_1, coeffs_0_2_0_1, rlk_1_0_0_1, 0
155+
0, mul, c2_rlk_1_1_0, coeffs_0_2_1_0, rlk_1_0_1_0, 1
156+
0, mul, c2_rlk_1_1_1, coeffs_0_2_1_1, rlk_1_0_1_1, 1
157+
0, mul, c2_rlk_0_2_0, coeffs_0_2_2_0, rlk_0_0_2_0, 2
158+
0, mul, c2_rlk_0_2_1, coeffs_0_2_2_1, rlk_0_0_2_1, 2
159+
0, mul, c2_rlk_1_2_0, coeffs_0_2_2_0, rlk_1_0_2_0, 2
160+
0, mul, c2_rlk_1_2_1, coeffs_0_2_2_1, rlk_1_0_2_1, 2
161+
0, mac, c2_rlk_0_0_0, coeffs_1_2_0_0, rlk_0_1_0_0, 0
162+
0, mac, c2_rlk_0_0_1, coeffs_1_2_0_1, rlk_0_1_0_1, 0
163+
0, mac, c2_rlk_0_1_0, coeffs_1_2_1_0, rlk_0_1_1_0, 1
164+
0, mac, c2_rlk_0_1_1, coeffs_1_2_1_1, rlk_0_1_1_1, 1
165+
0, mac, c2_rlk_1_0_0, coeffs_1_2_0_0, rlk_1_1_0_0, 0
166+
0, mac, c2_rlk_1_0_1, coeffs_1_2_0_1, rlk_1_1_0_1, 0
167+
0, mac, c2_rlk_1_1_0, coeffs_1_2_1_0, rlk_1_1_1_0, 1
168+
0, mac, c2_rlk_1_1_1, coeffs_1_2_1_1, rlk_1_1_1_1, 1
169+
0, mac, c2_rlk_0_2_0, coeffs_1_2_2_0, rlk_0_1_2_0, 2
170+
0, mac, c2_rlk_0_2_1, coeffs_1_2_2_1, rlk_0_1_2_1, 2
171+
0, mac, c2_rlk_1_2_0, coeffs_1_2_2_0, rlk_1_1_2_0, 2
172+
0, mac, c2_rlk_1_2_1, coeffs_1_2_2_1, rlk_1_1_2_1, 2
173173
0, intt, outtmp_0_2_0, outtmp_0_2_1, c2_rlk_0_2_0, c2_rlk_0_2_1, 0, 0, 2
174174
0, intt, y_0_2_0, y_0_2_1, outtmp_0_2_0, outtmp_0_2_1, 1, 0, 2
175175
0, intt, outtmp_0_2_0, outtmp_0_2_1, y_0_2_0, y_0_2_1, 2, 0, 2

0 commit comments

Comments
 (0)