Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement