From e71f866b14e287cf967b500490ebaca48841295b Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 7 Feb 2014 15:59:14 +0100 Subject: [PATCH] docs: FastMath --- vtm/src/org/oscim/utils/FastMath.java | 37 +++++++++++++-------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/vtm/src/org/oscim/utils/FastMath.java b/vtm/src/org/oscim/utils/FastMath.java index fca6bf15..98b8e343 100644 --- a/vtm/src/org/oscim/utils/FastMath.java +++ b/vtm/src/org/oscim/utils/FastMath.java @@ -18,43 +18,42 @@ package org.oscim.utils; public class FastMath { /** - * from http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog + * Integer version of log2(x) * - * @param v - * ... - * @return ... + * from http://graphics.stanford.edu/~seander/bithacks.html#IntegerLog */ - public static int log2(int v) { + public static int log2(int x) { int r = 0; // result of log2(v) will go here - if ((v & 0xFFFF0000) != 0) { - v >>= 16; + if ((x & 0xFFFF0000) != 0) { + x >>= 16; r |= 16; } - if ((v & 0xFF00) != 0) { - v >>= 8; + if ((x & 0xFF00) != 0) { + x >>= 8; r |= 8; } - if ((v & 0xF0) != 0) { - v >>= 4; + if ((x & 0xF0) != 0) { + x >>= 4; r |= 4; } - if ((v & 0xC) != 0) { - v >>= 2; + if ((x & 0xC) != 0) { + x >>= 2; r |= 2; } - if ((v & 0x2) != 0) { + if ((x & 0x2) != 0) { r |= 1; } return r; } - public static float pow(int pow) { - if (pow == 0) + /** Integer version of 2^x */ + public static float pow(int x) { + if (x == 0) return 1; - return (pow > 0 ? (1 << pow) : (1.0f / (1 << -pow))); + return (x > 0 ? (1 << x) : (1.0f / (1 << -x))); } public static int clamp(int value, int min, int max) { @@ -87,12 +86,12 @@ public class FastMath { return a2 < a1 ? a1 : a2; } - // test if any absolute value is greater than 'cmp' + /** test if any absolute value is greater than 'cmp' */ public static boolean absMaxCmp(float value1, float value2, float cmp) { return value1 < -cmp || value1 > cmp || value2 < -cmp || value2 > cmp; } - // test if any absolute value is greater than 'cmp' + /** test if any absolute value is greater than 'cmp' */ public static boolean absMaxCmp(int value1, int value2, int cmp) { return value1 < -cmp || value1 > cmp || value2 < -cmp || value2 > cmp; }