Skip to content
Snippets Groups Projects
Commit f566b435 authored by Eric Kooistra's avatar Eric Kooistra
Browse files

true_log_pow2(n) = 2**true_log2(n) to return power of 2 that is >= n.

parent 5550d068
No related branches found
No related tags found
No related merge requests found
......@@ -163,6 +163,7 @@ PACKAGE common_pkg IS
FUNCTION floor_log10(n : NATURAL) RETURN NATURAL;
FUNCTION is_pow2(n : NATURAL) RETURN BOOLEAN; -- return TRUE when n is a power of 2, so 0, 1, 2, 4, 8, 16, ...
FUNCTION true_log_pow2(n : NATURAL) RETURN NATURAL; -- 2**true_log2(n), return power of 2 that is >= n
FUNCTION ratio( n, d : NATURAL) RETURN NATURAL; -- return n/d when n MOD d = 0 else return 0, so ratio * d = n only when integer ratio > 0
FUNCTION ratio2(n, m : NATURAL) RETURN NATURAL; -- return integer ratio of n/m or m/n, whichever is the largest
......@@ -498,6 +499,11 @@ PACKAGE BODY common_pkg IS
RETURN n=2**true_log2(n);
END;
FUNCTION true_log_pow2(n : NATURAL) RETURN NATURAL IS
BEGIN
RETURN 2**true_log2(n);
END;
FUNCTION ratio(n, d : NATURAL) RETURN NATURAL IS
BEGIN
IF n MOD d = 0 THEN
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment