diff options
Diffstat (limited to 'nim/nmath.pas')
-rwxr-xr-x | nim/nmath.pas | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/nim/nmath.pas b/nim/nmath.pas deleted file mode 100755 index 8b638eb42..000000000 --- a/nim/nmath.pas +++ /dev/null @@ -1,68 +0,0 @@ -// -// -// The Nimrod Compiler -// (c) Copyright 2008 Andreas Rumpf -// -// See the file "copying.txt", included in this -// distribution, for details about the copyright. -// - -unit nmath; - -interface - -{$include 'config.inc'} - -{@ignore} -uses - nsystem; -{@emit} - -function countBits(n: cardinal): int; -function IsPowerOfTwo(x: int): Boolean; -function nextPowerOfTwo(x: int): int; - -implementation - -function countBits(n: cardinal): int; -const - lookup: array [0..255] of Byte = ( - 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4, 1, 2, 2, 3, - 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, 1, 2, 2, 3, 2, 3, 3, 4, - 2, 3, 3, 4, 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, - 4, 5, 5, 6, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5, - 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 2, 3, 3, 4, - 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, - 4, 5, 5, 6, 5, 6, 6, 7, 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, - 3, 4, 4, 5, 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, - 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, - 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, 2, 3, 3, 4, 3, 4, 4, 5, - 3, 4, 4, 5, 4, 5, 5, 6, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, - 5, 6, 6, 7, 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7, - 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8 - ); -var - i: int; -begin - result := 0; - for i := 0 to sizeof(n)-1 do - Inc(result, lookup[ (n shr (i * 8)) and 255 ]) -end; - -function IsPowerOfTwo(x: int): Boolean; -begin - result := x and -x = x -end; - -function nextPowerOfTwo(x: int): int; -begin - result := x - 1; - result := result or (result shr 16); - result := result or (result shr 8); - result := result or (result shr 4); - result := result or (result shr 2); - result := result or (result shr 1); - Inc(result) -end; - -end. |