Szabolcs Nagy
07e2c32828
New log2 implementation
...
The new implementation is provided under !__OBSOLETE_MATH, it uses
ISO C99 code. With default settings the worst case error in nearest
rounding mode is 0.547 ULP with inlined fma and fma contraction. It uses
a 1 KB lookup table, on aarch64 .text+.rodata size of libm.a is increased
by 1584 bytes.
Note that the math.h header defines log2(x) to be log(x)/Ln2, this is
not changed, so the new code is only used if that macro is suppressed.
Improvements on Cortex-A72:
latency: 2.0x
thruput: 2.2x
2018-06-27 15:40:49 +02:00
..
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2018-06-21 09:37:04 +02:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2015-02-06 16:14:04 +00:00
2009-04-17 22:15:43 +00:00
2017-12-01 03:41:53 -06:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-24 22:49:55 +00:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2014-12-15 20:50:23 +00:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2014-12-15 20:50:23 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2018-06-27 15:40:49 +02:00
2013-11-19 17:28:04 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2014-12-15 20:50:23 +00:00
2018-05-07 12:22:12 -04:00
2014-12-15 20:50:23 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2007-04-25 22:28:19 +00:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2018-01-17 11:47:26 -06:00
2018-01-17 11:47:26 -06:00
2017-12-01 03:41:53 -06:00
2018-01-17 11:47:26 -06:00
2006-09-13 22:06:43 +00:00
2018-05-29 15:59:48 +02:00
2010-08-03 18:21:20 +00:00
2017-12-01 03:41:53 -06:00
2018-06-27 15:40:49 +02:00
2017-12-01 03:41:53 -06:00
2018-05-29 15:59:48 +02:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2018-06-21 09:31:13 +02:00
2002-06-07 21:59:57 +00:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2017-12-01 03:41:53 -06:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2017-10-13 10:58:00 +02:00
2017-10-13 10:58:00 +02:00
2007-05-17 18:50:57 +00:00
2017-10-13 10:58:00 +02:00
2009-03-25 19:13:24 +00:00
2009-03-25 19:13:24 +00:00
2005-08-10 21:02:28 +00:00
2005-08-10 21:02:28 +00:00
2007-04-25 22:28:19 +00:00
2010-02-11 21:00:33 +00:00
2018-01-17 11:47:26 -06:00
2018-01-17 11:47:26 -06:00
2018-01-17 11:47:26 -06:00
2018-01-17 11:47:26 -06:00
2010-10-08 15:24:56 +00:00
2009-03-25 19:13:24 +00:00
2017-10-13 10:58:00 +02:00
2017-10-13 10:58:00 +02:00
2017-10-13 10:58:00 +02:00
2017-10-13 10:58:00 +02:00
2009-03-25 19:13:24 +00:00
2009-04-16 15:39:46 +00:00
2009-03-25 19:13:24 +00:00
2014-03-21 21:27:29 +00:00
2002-06-07 21:59:57 +00:00
2007-05-17 18:50:57 +00:00
2017-10-13 10:58:00 +02:00
2018-06-27 15:40:49 +02:00
2009-03-25 19:13:24 +00:00
2010-03-08 17:16:37 +00:00
2012-08-08 11:04:18 +00:00
2002-06-07 21:59:57 +00:00
2002-06-07 21:59:57 +00:00
2018-06-21 09:37:04 +02:00
2018-06-21 09:37:04 +02:00
2018-06-21 09:37:04 +02:00
2018-06-21 09:37:04 +02:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2016-03-26 20:29:20 +01:00
2015-02-06 16:14:04 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00
2009-04-17 22:15:43 +00:00