From 4de18964f35fc169cb94058dcfe2e1ccb59b2524 Mon Sep 17 00:00:00 2001 From: Peter Dettman Date: Wed, 1 Mar 2023 17:20:21 +0700 Subject: Add Integers.PopCount --- crypto/src/math/BigInteger.cs | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'crypto/src/math') diff --git a/crypto/src/math/BigInteger.cs b/crypto/src/math/BigInteger.cs index 5b2ea0d87..d84680de5 100644 --- a/crypto/src/math/BigInteger.cs +++ b/crypto/src/math/BigInteger.cs @@ -942,7 +942,7 @@ namespace Org.BouncyCastle.Math int sum = 0; for (int i = 0; i < magnitude.Length; ++i) { - sum += BitCnt(magnitude[i]); + sum += Integers.PopCount(magnitude[i]); } nBits = sum; } @@ -952,21 +952,6 @@ namespace Org.BouncyCastle.Math } } - internal static int BitCnt(uint u) - { -#if NETCOREAPP3_0_OR_GREATER - return BitOperations.PopCount(u); -#else - u = u - ((u >> 1) & 0x55555555); - u = (u & 0x33333333) + ((u >> 2) & 0x33333333); - u = (u + (u >> 4)) & 0x0f0f0f0f; - u += (u >> 8); - u += (u >> 16); - u &= 0x3f; - return (int)u; -#endif - } - private static int CalcBitLength(int sign, int indx, uint[] mag) { for (;;) -- cgit 1.4.1