Commit graph

26 commits

Author SHA1 Message Date
Aditya Chincholkar
dfc3d021c6
Fix #10513 - powmod is slow for ulong (#10688)
Co-authored-by: Iain Buclaw <ibuclaw@gdcproject.org>
2025-03-27 17:54:57 +08:00
Dennis
a6ad1522a5
Move std.math.exponential.pow implementation outside template (#9019)
* Move `std.math.exponential.pow` implementation outside template

* Fix compilation on Mac
2024-07-03 10:22:25 +03:00
Dennis Korpel
312a86d741 Mark std.math.exponential.pow @safe 2024-07-01 01:20:46 +02:00
Dennis Korpel
2bb54df391 Move floatTraits to std.math.traits 2024-01-09 13:00:50 +01:00
Iain Buclaw
65e380c339 std.math.exponential: Fix wrong placement of 1.0 in log1p coefficient 2023-03-11 14:52:06 +01:00
Iain Buclaw
f2ac205a9d std.math.exponential: Disable use of fyl2x and fyl2xp1 intrinsics on dmd/macOS port 2023-03-03 01:42:36 +01:00
Iain Buclaw
e74d997522 fix Issue 23750 - log1p for floats/doubles not actually providing extra accuracy 2023-03-01 12:13:52 +01:00
Iain Buclaw
a33d048302 std.math.exponential: Fix log10 coefficient order 2023-02-20 20:39:50 +01:00
Iain Buclaw
2a62b4c798 std.math.exponential: Add deprecations for calling log family functions with an integral argument 2022-12-13 00:56:49 +01:00
Iain Buclaw
8e799c14dc std.math.exponential: Implement log/log2/log10 for double- and float-precision 2022-12-12 19:59:05 +01:00
Iain Buclaw
ff16d73e4c std.math.exponential: Fix coefficients for log2 and log10 2022-07-05 23:24:50 +00:00
Iain Buclaw
0497537e22 std.math.exponential: Split generic logN implementations to own impl templates 2022-07-05 10:37:31 +02:00
Iain Buclaw
682e16d3ec std.math.exponential: Implement pure logb() for double and float precision 2022-07-04 23:48:56 +00:00
Luís Ferreira
a56287dd8b chore(math/exponential): avoid import constants if not InlineAsm_X87
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2022-05-09 18:44:14 +00:00
Martin Kinkelin
06037a25b4 std.math.exponential: Minimally relax a pow() unittest for targets with 64-bit real
Required since #7783.
2021-06-03 07:56:03 +00:00
Martin Kinkelin
8946209a9b Revert #7823 - Faster pow implementation for integral exponents
There are multiple issues with that commit, incl. out-of-bounds read
on x86 systems and a significant performance decrease for qualified
floating-point types; see #8124 for a full list of flaws.

I'm questioning the tackled goal in the first place, because I expect
users to use that `pow` mainly with small integral exponents, *not*
expecting underflows to 0 or overflows to ±infinity, so optimizing
for these cases and sacrificing performance for the regular case doesn't
make a lot of sense to me.
2021-06-03 09:57:57 +09:00
Martin Kinkelin
0a685c19ac std.math: Fix missing imports for non-x87 real after split-up 2021-05-29 14:48:17 +02:00
Iain Buclaw
52699fc020 std.math: Adjust whitespace of a few unittests 2021-05-11 09:14:14 +02:00
Nathan Sashihara
efced87ae8 Again use core.math intrinsics instead of std.math wrappers
As in PR #7821 & PR #7825. Mostly changes imports
from std.math being divided into submodules.
2021-05-04 15:59:34 +02:00
Iain Buclaw
1d0da90d82 std.math.exponential: Fix imports for non-INLINE_YL2X path 2021-04-30 02:15:43 +02:00
berni44
7f42447274 std.math: Move powmod to exponential submodule. 2021-04-20 04:54:59 +02:00
berni44
0c4dcb32a0 Narrow imports in std.math. 2021-04-19 22:32:55 +02:00
berni44
bb2432fdb4 Replace equalsDigit with isClose 2021-04-17 16:59:34 +02:00
berni44
64398c058f std.math: Move exponential functions into exponential submodule. 2021-04-14 16:18:20 +02:00
berni44
59f78a2ae8 std.math: Move pow function into submodule. 2021-04-12 02:43:35 +02:00
berni44
7031340f5f Add empty submodules to std.math. 2021-04-04 11:56:27 +02:00