From 7cca53ede2ee4900fce30334fb561a24d1b5d2de Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Mon, 24 Oct 2016 14:22:24 +0200 Subject: ACTUALLY fix strongPseudoPrime2 --- bigint.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'bigint.cpp') diff --git a/bigint.cpp b/bigint.cpp index 0d2a72b..83d00c1 100644 --- a/bigint.cpp +++ b/bigint.cpp @@ -542,6 +542,16 @@ bool Bigint::odd() const { return !even(); } +int Bigint::trailingZeros() const { + if(digits.size()==0)throw domain_error("trailingZeros called on zero bigint"); + int res=0; + for(digit_t dig : digits){ + if(dig==0)res+=digit_bits; + else return res+__builtin_ctz(dig); + } + assert(false); //bigint is not consistent: zero while digits is not empty! +} + //Produces a string with the bytes of the mantissa in little-endian order. string Bigint::serialiseMantissa() const { string s; -- cgit v1.2.3-70-g09d2