Skip to content

Commit f9d3e5f

Browse files
authored
Fix log2 precision loss (#75)
1 parent 988fc08 commit f9d3e5f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

lightclient-circuits/src/ssz_merkle.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,12 @@ pub fn ssz_merkleize_chunks<F: Field, CircuitBuilder: CommonCircuitBuilder<F>>(
3737
MAX_INPUT_LEAFS_NOT_POW2
3838
);
3939

40-
let len_even = chunks.len() + chunks.len() % 2;
41-
let height = (len_even as f64).log2().ceil() as usize;
40+
let height = if chunks.len() == 1 {
41+
1
42+
} else {
43+
chunks.len().next_power_of_two().ilog2() as usize
44+
};
45+
4246
for depth in 0..height {
4347
// Pad to even length using 32 zero bytes assigned as constants.
4448
let len_even = chunks.len() + chunks.len() % 2;

0 commit comments

Comments
 (0)