Daniel Gibson
8d26863a51
Improve some portable C implementations of math functions
...
* FloatToInt() should now round correctly ot nearest, even for
negative numbers
* Log2() now calls log2f() instead of log10()*3.321 - no idea what the
previous code was about, I doubt it's faster (and the ASM code uses
something like log2, too).
* FastLog2() (for integers) now uses __builtin_clz() when building with
GCC/clang - the resulting ASM should be pretty similar to the inline
ASM below. I wonder why that function takes signed ints, log2(-1) in
reality is an irrational number (but the function returns 31)..
Also, both the inline ASM and my version return 0 for Log2(0), but
INT_MIN would be closer to the truth
* commented out FastMaxLog2(), it's unused.
* implemented _rotl() using a fast(er) trick from
http://blog.regehr.org/archives/1063
2016-04-17 23:15:56 +02:00
..
2016-04-13 08:21:50 +02:00
2016-04-12 22:29:39 +02:00
2016-04-02 23:56:12 -04:00
2016-04-06 23:20:29 -04:00
2016-04-02 23:56:12 -04:00
2016-04-09 02:18:57 -04:00
2016-03-11 18:20:51 -06:00
2016-03-11 15:57:17 +02:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-03-11 18:20:51 -06:00
2016-03-11 18:20:51 -06:00
2016-04-06 23:20:29 -04:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-04 02:34:07 -04:00
2016-03-11 18:20:51 -06:00
2016-04-09 14:15:33 +02:00
2016-04-09 02:18:57 -04:00
2016-03-28 23:46:13 -04:00
2016-04-02 23:56:12 -04:00
2016-03-28 23:46:13 -04:00
2016-04-09 02:18:57 -04:00
2016-04-04 02:34:07 -04:00
2016-04-04 02:34:07 -04:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-03-28 23:46:13 -04:00
2016-03-11 15:57:17 +02:00
2016-03-11 18:20:51 -06:00
2016-04-04 02:34:07 -04:00
2016-04-04 02:34:07 -04:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-03-28 23:46:13 -04:00
2016-04-13 08:21:50 +02:00
2016-03-11 18:20:51 -06:00
2016-03-11 15:57:17 +02:00
2016-04-06 23:20:29 -04:00
2016-03-11 18:20:51 -06:00
2016-03-28 23:46:13 -04:00
2016-04-01 15:17:48 -04:00
2016-04-01 12:19:18 -04:00
2016-04-02 23:56:12 -04:00
2016-03-28 23:46:13 -04:00
2016-04-06 13:56:26 +02:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-07 18:13:50 +02:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-09 02:18:57 -04:00
2016-04-04 02:34:07 -04:00
2016-04-06 13:38:09 +02:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-04-06 23:20:29 -04:00
2016-04-02 23:56:12 -04:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-04-13 08:21:50 +02:00
2016-04-06 23:20:29 -04:00
2016-04-02 23:56:12 -04:00
2016-04-09 02:18:57 -04:00
2016-04-15 14:52:56 -04:00
2016-04-12 22:29:39 +02:00
2016-03-28 23:46:13 -04:00
2016-04-04 02:34:07 -04:00
2016-04-04 02:34:07 -04:00
2016-03-11 18:20:51 -06:00
2016-04-17 23:15:56 +02:00
2016-04-09 02:18:57 -04:00
2016-03-11 18:20:51 -06:00
2016-04-02 23:56:12 -04:00
2016-03-11 18:20:51 -06:00
2016-03-11 18:20:51 -06:00