Skip to content

Commit a56d29c

Browse files
committed
optimize next_mle in zkDSL
1 parent c28afb9 commit a56d29c

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

crates/rec_aggregation/utils.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -632,11 +632,13 @@ def next_mle(x, y, n):
632632
for i in range(0, n):
633633
xi = x + i * DIM
634634
yi = y + i * DIM
635-
xy = mul_extension_ret(xi, yi)
636-
one_minus_x = one_minus_self_extension_ret(xi)
637-
one_minus_y = one_minus_self_extension_ret(yi)
638-
prod_one_minus = mul_extension_ret(one_minus_x, one_minus_y)
639-
eq_i = add_extension_ret(xy, prod_one_minus)
635+
temp = Array(4 * DIM)
636+
mul_extension(xi, yi, temp)
637+
copy_5(xi, temp + DIM)
638+
copy_5(yi, temp + 2 * DIM)
639+
set_to_one(temp + 3 * DIM)
640+
eq_i = Array(DIM)
641+
dot_product(EQ_MLE_COEFFS_PTR, temp, eq_i, 4, BE)
640642
mul_extension(eq_prefix + i * DIM, eq_i, eq_prefix + (i + 1) * DIM)
641643

642644
# Build low_suffix[0..n+1] where low_suffix[i] = prod_{j>=i} (x[j] * (1-y[j]))

0 commit comments

Comments
 (0)