diff --git a/Compiler/floatingpoint.py b/Compiler/floatingpoint.py index 4a252ed2d..ca845670e 100644 --- a/Compiler/floatingpoint.py +++ b/Compiler/floatingpoint.py @@ -499,7 +499,7 @@ def TruncInRing(to_shift, l, pow2m): rev = types.sint.bit_compose(reversed(bits)) rev <<= n_shift rev *= pow2m - r_bits = [types.sint.get_random_bit() for i in range(l)] + r_bits = [types.sint.get_random_bit(size=rev.size) for i in range(l)] r = types.sint.bit_compose(r_bits) shifted = (rev - (r << n_shift)).reveal(False) masked = shifted >> n_shift diff --git a/Compiler/types.py b/Compiler/types.py index f8926be4c..14b0663f8 100644 --- a/Compiler/types.py +++ b/Compiler/types.py @@ -3135,6 +3135,7 @@ def int_mod(self, other, bit_length=None): """ return self - other * self.int_div(other, bit_length=bit_length) + @vectorize def trunc_zeros(self, n_zeros, bit_length=None, signed=True): bit_length = bit_length or program.bit_length return comparison.TruncZeros(self, bit_length, n_zeros, signed)