Rasmus Munk Larsen
cdd8fdc32e
Vectorize pow(x, y)
. This closes https://gitlab.com/libeigen/eigen/-/issues/2085 , which also contains a description of the algorithm.
...
I ran some testing (comparing to `std::pow(double(x), double(y)))` for `x` in the set of all (positive) floats in the interval `[std::sqrt(std::numeric_limits<float>::min()), std::sqrt(std::numeric_limits<float>::max())]`, and `y` in `{2, sqrt(2), -sqrt(2)}` I get the following error statistics:
```
max_rel_error = 8.34405e-07
rms_rel_error = 2.76654e-07
```
If I widen the range to all normal float I see lower accuracy for arguments where the result is subnormal, e.g. for `y = sqrt(2)`:
```
max_rel_error = 0.666667
rms = 6.8727e-05
count = 1335165689
argmax = 2.56049e-32, 2.10195e-45 != 1.4013e-45
```
which seems reasonable, since these results are subnormals with only couple of significant bits left.
2021-01-18 13:25:16 +00:00
..
2019-01-17 11:33:43 +01:00
2019-10-08 16:28:14 +02:00
2021-01-18 13:25:16 +00:00
2018-10-09 22:54:54 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-03-14 10:08:12 +01:00
2018-07-17 14:46:15 +02:00
2020-11-14 05:50:42 +00:00
2019-12-19 13:42:14 +01:00
2020-11-23 14:13:59 -08:00
2019-01-25 14:54:39 +01:00
2020-11-13 16:21:53 +01:00
2019-01-15 15:09:49 +01:00
2020-11-10 13:07:34 -03:00
2016-05-18 14:03:03 +02:00
2016-05-18 14:03:03 +02:00
2016-05-18 14:03:03 +02:00
2019-01-17 01:17:39 +01:00
2018-07-17 14:46:15 +02:00
2020-12-22 23:25:23 -08:00
2020-04-13 16:41:20 +02:00
2019-01-25 14:54:39 +01:00
2018-07-18 23:33:07 +02:00
2019-03-18 11:38:36 +01:00
2018-07-17 14:46:15 +02:00
2018-11-23 15:37:09 +01:00
2019-02-19 10:31:56 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-03-14 10:18:24 +01:00
2018-07-17 14:46:15 +02:00
2018-10-10 23:38:22 +02:00
2018-07-17 14:46:15 +02:00
2019-02-20 13:52:11 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-01-17 19:14:07 +01:00
2018-07-17 14:46:15 +02:00
2013-11-06 18:17:59 +01:00
2018-11-16 11:24:51 +01:00
2018-07-18 23:27:37 +02:00
2018-10-11 09:45:30 +02:00
2018-07-17 14:46:15 +02:00
2020-09-30 08:42:03 -07:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2020-06-11 00:56:54 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2020-07-09 19:54:48 +00:00
2021-01-07 17:45:14 +00:00
2020-12-22 23:25:23 -08:00
2020-12-22 23:25:23 -08:00
2020-11-23 14:13:59 -08:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-01-25 14:54:39 +01:00
2020-05-20 16:04:16 +02:00
2020-03-23 18:09:02 +00:00
2018-07-17 14:46:15 +02:00
2020-01-07 14:35:35 +00:00
2019-01-29 10:27:13 +01:00
2019-12-11 18:22:57 +00:00
2018-07-17 14:46:15 +02:00
2018-11-21 15:59:47 +01:00
2019-01-17 01:17:39 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 15:52:58 +02:00
2018-07-17 14:46:15 +02:00
2019-02-11 17:56:20 +01:00
2020-12-03 11:27:32 -08:00
2018-07-18 02:26:43 -07:00
2018-08-28 18:32:39 +02:00
2018-07-17 14:46:15 +02:00
2020-11-18 20:23:20 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-26 00:01:24 +02:00
2020-06-11 23:43:25 +00:00
2019-08-07 14:19:00 -07:00
2019-01-17 18:27:25 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-02-18 22:03:47 +01:00
2018-07-17 14:46:15 +02:00
2021-01-17 08:50:57 -08:00
2021-01-08 01:17:19 +00:00
2021-01-08 01:17:19 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-11-13 21:16:53 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-11-16 11:24:51 +01:00
2019-09-10 23:29:52 +02:00
2019-02-18 14:45:55 +01:00
2018-07-17 14:46:15 +02:00
2021-01-05 18:15:30 +00:00
2019-09-11 15:04:25 +02:00
2019-09-10 23:29:52 +02:00
2019-09-11 15:04:25 +02:00
2018-07-17 14:46:15 +02:00
2019-09-11 15:04:25 +02:00
2019-09-10 16:25:24 +02:00
2019-11-13 21:16:53 +01:00
2019-01-17 01:17:39 +01:00
2019-01-17 01:17:39 +01:00
2018-07-17 14:46:15 +02:00
2021-01-07 12:48:40 -08:00
2020-06-30 18:53:55 +00:00
2018-07-17 14:46:15 +02:00
2018-10-10 13:23:52 -07:00
2021-01-05 10:41:25 -08:00
2019-01-17 17:35:32 +01:00
2018-07-17 14:46:15 +02:00
2020-06-11 23:43:25 +00:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-01-25 14:54:39 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-01-17 01:17:39 +01:00
2020-08-26 12:32:20 +02:00
2018-07-18 23:33:07 +02:00
2018-07-17 14:46:15 +02:00
2020-11-18 23:15:33 +00:00
2018-07-17 14:46:15 +02:00
2018-10-16 00:43:44 +02:00
2019-01-16 15:24:59 +01:00
2018-07-17 14:46:15 +02:00
2019-02-20 13:59:34 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2019-02-19 22:57:51 +01:00
2018-07-17 14:46:15 +02:00
2018-07-16 18:55:40 +02:00
2018-07-17 14:46:15 +02:00
2021-01-17 08:50:57 -08:00
2018-10-07 21:54:49 +02:00
2018-10-07 21:54:49 +02:00
2018-10-07 21:54:49 +02:00
2018-10-07 21:54:49 +02:00
2018-10-07 21:54:49 +02:00
2018-10-07 21:54:49 +02:00
2020-05-14 22:38:20 +00:00
2018-07-17 14:46:15 +02:00
2019-01-17 01:17:39 +01:00
2018-07-12 17:16:40 +02:00
2018-07-17 14:46:15 +02:00
2019-01-15 10:51:03 +01:00
2019-05-10 14:57:05 +02:00
2019-02-20 15:23:23 +01:00
2018-11-23 15:12:06 +01:00
2018-07-17 14:46:15 +02:00
2018-07-17 14:46:15 +02:00
2018-09-21 14:40:26 +02:00
2018-07-17 14:46:15 +02:00
2020-07-01 00:51:15 +00:00
2019-01-17 16:55:42 +01:00
2018-07-17 14:46:15 +02:00
2019-01-15 15:21:14 +01:00