//10 times faster than (Math.log(x) / Math.LN
//but only for integers
//http://www.nbilyk.com/optimizing-actionscript-3
public function log2(x:int):int {
var num:int = x >> 16;
var sign:int = int(!num);
var ans:int = (sign << 4) ^ 24;
num = x >> (ans);
sign = int(!num);
ans = (sign << 3) ^ (ans + 4);
num = x >> (ans);
sign = int(!num);
ans = (sign << 2) ^ (ans + 2);
num = x >> (ans);
sign = int(!num);
ans = (sign << 1) ^ (ans + 1);
num = x >> (ans);
sign = int(!num);
ans = sign ^ ans;
return ans;
}
Comments
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|👍
/👎
0 B
|👍
/👎