Rasmus Munk Larsen
7294434099
Avoid UB in ploaduSegment
2025-04-25 21:13:52 +00:00
Tyler Veness
d6689a15d7
Replace instances of EIGEN_CONSTEXPR macro
2025-04-18 08:27:52 -07:00
Rasmus Munk Larsen
33f5f59614
Vectorize cbrt for float and double.
2025-04-17 23:31:20 +00:00
Charles Schlosser
28c3b26d53
masked load/store framework
2025-04-12 00:31:10 +00:00
Antonio Sánchez
b860042263
Add postream for ostream-ing packets more reliably.
2025-04-01 22:12:00 +00:00
Antonio Sánchez
d935916ac6
Add numext::fma and missing pmadd implementations.
2025-03-23 01:05:53 +00:00
Charles Schlosser
754bd24f5e
fix 2828
2025-03-22 17:19:44 +00:00
Rasmus Munk Larsen
1ea61a5d26
Improve pow(x,y): 25% speedup, increase accuracy for integer exponents.
2024-11-26 06:13:48 +00:00
Rasmus Munk Larsen
3f067c4850
Add exp2() as a packet op and array method.
2024-10-22 22:09:34 +00:00
Frédéric Chapoton
6331da95eb
fixing a lot of typos
2024-07-30 22:15:49 +00:00
Charles Schlosser
2fae4d7a77
Revert "fix scalar pselect"
2024-06-15 20:02:28 +00:00
Charles Schlosser
02bcf9b591
fix scalar pselect
2024-06-10 17:30:22 +00:00
Rasmus Munk Larsen
9148c47d67
Vectorize isfinite and isinf.
2024-05-29 00:20:12 +00:00
Charles Schlosser
8e47971789
Bit shifting functions
2024-05-03 18:55:02 +00:00
Charles Schlosser
fb95e90f7f
Add truncation op
2024-04-29 23:45:49 +00:00
Antonio Sánchez
f0795d35e3
Fix new psincos for ppc and arm32.
2024-04-19 00:31:09 +00:00
Charles Schlosser
6ad2ccea4e
Eigen pblend
2024-04-15 16:19:53 +00:00
Charles Schlosser
122befe54c
Fix "unary minus operator applied to unsigned type, result still unsigned" on MSVC and other stupid warnings
2024-04-12 19:35:04 +00:00
Rasmus Munk Larsen
5226566a14
Speed up pldexp_generic.
2024-04-12 01:32:17 +00:00
Rasmus Munk Larsen
126ba1a166
Add Packet2l for SSE.
2024-03-11 19:54:55 +00:00
Antonio Sánchez
7b87b21910
Fix UB in bool packetmath test.
2024-02-09 19:46:45 +00:00
Antonio Sánchez
a2cf99ec6f
Fix GPU+clang+asan.
2024-01-04 17:29:37 +00:00
Tobias Wood
f38e16c193
Apply clang-format
2023-11-29 11:12:48 +00:00
Kyle Macfarlan
5de0f2f89e
Fixes #2735 : Component-wise cbrt
2023-10-25 03:06:13 +00:00
Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Charles Schlosser
5527e78a64
Add missing x86 pcasts
2023-07-28 23:41:38 +00:00
Charles Schlosser
1a2bfca8f0
Fix annoying warnings
2023-07-07 20:19:58 +00:00
Chip Kerchner
211c5dfc67
Add optional offset parameter to ploadu_partial and pstoreu_partial
2023-06-23 19:53:05 +00:00
Charles Schlosser
59b3ef5409
Partially Vectorize Cast
2023-06-09 16:54:31 +00:00
Rasmus Munk Larsen
a347dbbab2
Delete last few occurences of HasHalfPacket.
2023-04-19 10:36:59 -07:00
Rasmus Munk Larsen
0488b708b4
Vectorize tensor.isnan() by using typed predicates.
2023-03-16 04:04:22 +00:00
Rasmus Munk Larsen
ce62177b5b
Vectorize atanh & add a missing definition and unit test for atan.
2023-02-21 03:14:05 +00:00
Charles Schlosser
94b19dc5f2
Add CArg
2023-02-15 21:33:06 +00:00
Rasmus Munk Larsen
37b2e97175
Tweak special case handling in atan2.
2023-01-31 17:48:00 -08:00
Charles Schlosser
0471e61b4c
Optimize various mathematical packet ops
2023-01-28 01:34:26 +00:00
Charles Schlosser
6d9f662a70
Tweak atan2
2023-01-26 17:38:21 +00:00
Charles Schlosser
82b152dbe7
Add signbit function
2022-11-04 00:31:20 +00:00
Rasmus Munk Larsen
273e0c884e
Revert "Add constexpr, test for C++14 constexpr."
2022-09-16 21:14:29 +00:00
Tobias Schlüter
133498c329
Add constexpr, test for C++14 constexpr.
2022-09-07 03:42:34 +00:00
Rasmus Munk Larsen
7064ed1345
Specialize psign<Packet8i> for AVX2, don't vectorize psign<bool>.
2022-08-26 17:02:37 +00:00
Rasmus Munk Larsen
97e0784dc6
Vectorize the sign operator in Eigen.
2022-08-09 19:54:57 +00:00
Chip Kerchner
84cf3ff18d
Add pload_partial, pstore_partial (and unaligned versions), pgather_partial, pscatter_partial, loadPacketPartial and storePacketPartial.
2022-06-27 19:18:00 +00:00
b-shi
518fc321cb
AVX512 Optimizations for Triangular Solve
2022-03-16 18:04:50 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Rasmus Munk Larsen
51311ec651
Remove inline assembly for FMA (AVX) and add remaining extensions as packet ops: pmsub, pnmadd, and pnmsub.
2022-01-26 04:25:41 +00:00
Rasmus Munk Larsen
ea2c02060c
Add reciprocal packet op and fast specializations for float with SSE, AVX, and AVX512.
2022-01-21 23:49:18 +00:00
Antonio Sanchez
cb50730993
Default eigen_packet_wrapper constructor.
...
This makes it trivial, allowing use of `memcpy`.
Fixes #2326
2021-09-14 10:57:22 -07:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Antonio Sanchez
3d98a6ef5c
Modify scalar pzero, ptrue, pselect, and p<binary> operations to avoid memset.
...
The `memset` function and bitwise manipulation only apply to POD types
that do not require initialization, otherwise resulting in UB. We currently
violate this in `ptrue` and `pzero`, we assume bitmasks for `pselect`, and
bitwise operations are applied byte-by-byte in the generic implementations.
This is causing issues for scalar types that do require initialization
or that contain non-POD info such as pointers (#2201 ). We either break
them, or force specializations of these functions for custom scalars,
even if they are not vectorized.
Here we modify these functions for scalars only - instead using only
scalar operations:
- `pzero`: `Scalar(0)` for all scalars.
- `ptrue`: `Scalar(1)` for non-trivial scalars, bitset to one bits for trivial scalars.
- `pselect`: ternary select comparing mask to `Scalar(0)` for all scalars
- `pand`, `por`, `pxor`, `pnot`: use operators `&`, `|`, `^`, `~` for all integer or non-trivial scalars, otherwise apply bytewise.
For non-scalar types, the original implementations are used to maintain
compatibility and minimize the number of changes.
Fixes #2201 .
2021-08-03 08:44:28 -07:00
Rasmus Munk Larsen
22edb46823
Align local arrays to Packet boundary.
2021-04-06 16:22:36 +00:00