Skip to content

Commit f9b8c93

Browse files
authored
fix case where k=0, which happens in tests (#79)
1 parent b23db7d commit f9b8c93

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/prover_slow.h

+6-4
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ form GenerateWesolowski(form &y, form &x_init,
3838

3939
uint64_t k1 = k / 2;
4040
uint64_t k0 = k - k1;
41+
assert(k > 0);
42+
assert(l > 0);
4143

4244
form x = form::identity(D);
4345

@@ -48,12 +50,10 @@ form GenerateWesolowski(form &y, form &x_init,
4850
for (uint64_t i = 0; i < (1 << k); i++)
4951
ys[i] = form::identity(D);
5052

51-
form *tmp;
52-
for (uint64_t i = 0; i < ceil(1.0 * num_iterations / (k * l)); i++) {
53+
for (uint64_t i = 0; i < ceil(double(num_iterations) / (k * l)); i++) {
5354
if (num_iterations >= k * (i * l + j + 1)) {
5455
uint64_t b = GetBlock(i*l + j, k, num_iterations, B);
55-
tmp = &intermediates[i];
56-
nucomp_form(ys[b], ys[b], *tmp, D, L);
56+
nucomp_form(ys[b], ys[b], intermediates[i], D, L);
5757
}
5858
}
5959
for (uint64_t b1 = 0; b1 < (1 << k1); b1++) {
@@ -87,6 +87,8 @@ std::vector<uint8_t> ProveSlow(integer& D, form& x, uint64_t num_iterations) {
8787
int d_bits = D.num_bits();
8888

8989
ApproximateParameters(num_iterations, l, k);
90+
if (k <= 0) k = 1;
91+
if (l <= 0) l = 1;
9092
for (int i = 0; i < num_iterations; i++) {
9193
if (i % (k * l) == 0) {
9294
intermediates.push_back(y);

0 commit comments

Comments
 (0)