From 3879cdc7400d502897d3ae026a3053603e268cf2 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 24 Nov 2019 04:42:11 -0500 Subject: [PATCH] helper methods to round to nearest power of 2 --- .../UniversalEditor.Core/ExtensionMethods.cs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/CSharp/Libraries/UniversalEditor.Core/ExtensionMethods.cs b/CSharp/Libraries/UniversalEditor.Core/ExtensionMethods.cs index 9faed70f..b65f163e 100644 --- a/CSharp/Libraries/UniversalEditor.Core/ExtensionMethods.cs +++ b/CSharp/Libraries/UniversalEditor.Core/ExtensionMethods.cs @@ -870,5 +870,31 @@ namespace UniversalEditor } } #endregion + + public static long RoundToNearestPowerOf2(this long input) + { + long v = input; + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; + } + [CLSCompliant(false)] + public static ulong RoundToNearestPowerOf2(this ulong input) + { + ulong v = input; + v--; + v |= v >> 1; + v |= v >> 2; + v |= v >> 4; + v |= v >> 8; + v |= v >> 16; + v++; + return v; + } } }