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
5a9919c802
std.math.hardware: Use forceOp in another ieeeFlags test
2022-12-04 20:26:28 +01:00
Iain Buclaw
2e1f8de817
std.math.hardware: Fix broken IEEE FP flags tests
...
1. The `pragma(inline, false)` doesn't do what the author thinks it does
(Issue 23520).
2. Change that introduced `blockopt` seems to have a slight
misunderstanding about what constant propagation is (`a /= 0.0L` can
always be constant propagated regardless of what surrounds it).
3. Undocument tests that depend on the need for forcing operations to
disarm the optimizer, and replace with simple tests behind StdDdoc.
2022-12-03 00:17:36 +01:00
Iain Buclaw
d957f13db3
std.math: Faster floor(double) implementation
2022-07-13 00:16:51 +00: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
Ast-x64
0c56468d19
RISCV: Fix wrong ExceptionMask values
...
According to RISCV specifications
https://riscv.org/wp-content/uploads/2019/12/riscv-spec-20191213.pdf ,
figure 11.2, the mask flags should be NX, UF, OF, DZ, NV in order.
2022-06-16 20:22:10 +00:00
Ast-x64
b2d5da9c43
Extend floating point precision in some tests
...
These tests may work better with quadruple-presicion real types now.
2022-06-16 19:53:02 +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
Luís Ferreira
19c6e8d251
chore(math/hardware): align spaces by 4 instead of by 3
...
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2022-05-09 18:42:23 +00:00
Petar Kirov
dfaaf8fa53
Merge remote-tracking branch 'upstream/stable' into merge_stable
2021-11-09 10:30:28 +02:00
Brian Callahan
8a42656f67
Fix Issue 22416 - Unify polyImpl implementations
2021-10-18 05:40:34 +00:00
Brian Callahan
36eeb42292
OpenBSD: Add polyImpl implementation for x86
...
Fix Issue 22393 - OpenBSD: Add polyImpl implementation for x86
2021-10-16 08:05:02 -04:00
Per Nordlöw
46d416fa9d
Qualify some function parameters under std.format as const to reduce template bloat
2021-09-22 23:12:15 +00:00
Iain Buclaw
1cbbb845af
std.math: Reference Issue 5305 in unittest taking pointer to function
2021-08-25 19:27:16 +00:00
Luís Ferreira
62e01fc442
std.math.trigonometry: fix tan asm x86 implementation for ldc compiler
...
Somehow, separating asm blocks in small pieces produces additional
`mov`s and other instructions on LDC that breaks the tanAsm logic and
therefore returns wrong values.
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2021-08-21 17:29:15 +01:00
Luís Ferreira
8514636059
std.math.algebraic: use fabs from druntime
...
Signed-off-by: Luís Ferreira <contact@lsferreira.net>
2021-08-19 09:56:55 +00:00
Martin Nowak
3fff60bc50
Merge remote-tracking branch 'upstream/stable' into merge_stable
2021-07-13 12:24:06 +02:00
Walter Bright
13d84801e7
declaring templates inside static foreach is not reliable
2021-06-08 10:57:08 +00:00
The Dlang Bot
19003dd639
Merge pull request #8127 from kinke/bitpattern
...
[stable] std.math.operations: Slightly revise extractBitpattern()
Signed-off-by: Razvan Nitu <RazvanN7@users.noreply.github.com>
Merged-on-behalf-of: Razvan Nitu <RazvanN7@users.noreply.github.com>
2021-06-07 18:22:22 +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
3d90677e51
std.math.operations: Fix extractBitpattern() unittest
2021-06-02 21:22:27 +02:00
Martin Kinkelin
4d8be9050b
std.math.operations: Slightly simplify extractBitpattern()
2021-06-02 20:45:13 +02:00
Martin Kinkelin
5a46c9ecf6
std.math.operations: Make extractBitpattern() @trusted
...
To enable unsafe reinterpret-casts directly, without extra lambdas.
2021-06-02 20:42:09 +02:00
Martin Kinkelin
ddd044d6c7
std.math.operations: Fix out-of-bounds read in extractBitpattern()
...
For 32-bit x86 targets with `real.sizeof == 12`.
2021-06-02 20:38:25 +02:00
Martin Kinkelin
a5b66d6614
std.math.hardware: Remove unused InlineAsm_X87* version declarations
2021-05-29 14:50:32 +02: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
79bf8c3c32
std.math.algebraic: Convert hypot to a template
2021-05-11 12:22:13 +02:00
Iain Buclaw
52699fc020
std.math: Adjust whitespace of a few unittests
2021-05-11 09:14:14 +02:00
Iain Buclaw
543a3d0cd6
std.math.algebraic: Support more float types in hypot
2021-05-11 02:59:57 +02:00
berni44
e53d010def
extractBitpattern: Add implied bit to mantissa and subtract bias from exponent.
2021-05-07 09:37:18 +02:00
Razvan Nitu
9909b6ebe3
Merge pull request #8030 from berni44/fixup_7775
...
Add transition note from approxEqual to isClose.
2021-05-07 15:00:23 +08: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
berni44
8408ce3108
Add transition note from approxEqual to isClose.
2021-05-03 11:41:44 +02:00
berni44
8d97da17d0
Move bitpattern extraction from std.format to std.math.
2021-04-30 09:37:22 +02:00
Iain Buclaw
1d0da90d82
std.math.exponential: Fix imports for non-INLINE_YL2X path
2021-04-30 02:15:43 +02:00
berni44
661c7a83b1
Clean up std.math.package
2021-04-20 10:04:22 +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
943cf022ea
std.math: Move some stranded unittests to correct place.
2021-04-19 18:22:33 +02:00
berni44
4a4af2d78e
std.math: Move hardware support into hardware submodule.
2021-04-19 10:46:14 +02:00
berni44
e9014c4342
std.math: Move floating point operations into operations submodule.
2021-04-17 21:52:27 +02:00
Iain Buclaw
7a258f293f
std.math.algebraic: Add overload for three-dimensional hypotenuse
2021-04-17 18:13:07 +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
9812f41efd
std.math: Move introspection functions into submodule.
2021-04-14 14:16:52 +02:00
berni44
66324313a8
Remove std.math.integral.
2021-04-14 14:15:38 +02:00