304 Commits
Author SHA1 Message Date
Florian Maurin 8763a05898 Core: Avoid NaN seeds in RVV min/max reductions
libeigen/eigen!2890
2026-08-21 09:13:09 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen c095d7e78e Core: Make PropagateNaN min/max agree on signed-zero ties
libeigen/eigen!2865

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-08-19 15:18:17 -07:00
onalante-ebay 43d03664d1 Optimize NEON 64-bit integral packets
libeigen/eigen!2817
2026-08-17 21:11:32 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 8cef20fd23 Core: Fix SSE2 pcmp_lt<Packet2l> comparing low halves as signed
libeigen/eigen!2831

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-08-16 17:39:42 -07:00
onalante-ebay 5ee913f028 Fix unsafe use of EIGEN_ALIGN_MAX for aligned-packet data
libeigen/eigen!2785
2026-08-14 10:01:08 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 58ce80b3a7 Core: Fix typed is-nan/inf/finite predicates for integer packets
libeigen/eigen!2779

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-08-12 04:20:14 -07:00
Florian Maurin 3769791e3c Cleanup: Remove obsolete and unused code
libeigen/eigen!2752
2026-08-10 15:37:20 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen b941180f8d Core: keep NaN/Inf constants out of fast-math poison in packet kernels
libeigen/eigen!2700

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-07-10 17:55:17 -07:00
9d5669f470 Core: add ArrayBase::ldexp() and Eigen::ldexp() for exact scaling by 2^e
libeigen/eigen!2707

Co-authored-by: Rasmus Munk Larsen <rlarsen@nvidia.com>
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-07-10 16:03:11 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen dfa92d7c0a Core: fix pldexp intermediate overflow for |e| >= 2^ExponentBits
libeigen/eigen!2706

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-07-10 13:53:41 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen b4e88b90d9 packetmath: fix signed-integer-overflow UB in test reference helpers
libeigen/eigen!2671

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-06-30 16:32:22 -07:00
Florian Maurin 039764e20a Constexpr compile time branches
libeigen/eigen!2575
2026-05-22 13:18:49 -07:00
Florian Maurin 567fd4cb95 Cleanup: raise compiler minimums for C++14
libeigen/eigen!2536
2026-05-15 10:12:14 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen fddb6dcd3d Perf: tighter pldexp 4-way split (tree multiply, vpmovsxdq expansion, drop pnegate)
libeigen/eigen!2527

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-10 16:45:48 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 9046e3c38a Fix: pexp_float no longer flushes subnormals to zero
libeigen/eigen!2526

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-10 16:37:38 -07:00
Florian Maurin 83184e67da Cleanup: Modernize internal utilities for C++14
libeigen/eigen!2518
2026-05-07 16:43:22 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 8a3d61c790 Licensing: SPDX identifiers, REUSE.toml, and checkformat:reuse CI job
libeigen/eigen!2509

Closes #2868

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-04 00:36:12 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen 92c7bb75ee Core: patanh fast-exit and plog10_float hi+lo accuracy fix
libeigen/eigen!2497

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-05-02 08:03:34 -07:00
Florian Maurin 879885e10d Modernize internal utilities for C++14
libeigen/eigen!2490
2026-05-01 09:54:04 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 5da2b96696 Drop cxx11_ prefix from tensor tests and remove stale pre-C++11 comments
libeigen/eigen!2441

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-04-18 21:47:59 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 64885cc6a3 Fix remaining MSVC warnings in Windows CI (C4804, C4244, C4146, C4305)
libeigen/eigen!2374

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-04-01 17:20:31 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 843ffcec8b Fix warnings reported by NVHPC 26.1
libeigen/eigen!2324

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-22 11:43:40 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 6490b17e6f Fix sanitizer regressions in sparse serializer and packet tests
libeigen/eigen!2319

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-22 09:10:16 -07:00
Rasmus Munk LarsenandRasmus Munk Larsen 8eaa7552fe Fix three flaky tests: packetmath, array_cwise, polynomialsolver
libeigen/eigen!2267

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-03-08 14:59:23 -07:00
Antonio Sánchez 20fce70e5a Fix another complex div edge case.
libeigen/eigen!2257
2026-03-06 13:37:26 -08:00
Rasmus Munk LarsenandRasmus Munk Larsen 78b76986b7 Comment cleanup v3: trailing ??, informal language, FIXME/TODO colons
libeigen/eigen!2197

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-22 21:20:08 -08:00
Rasmus Munk LarsenandRasmus Munk Larsen 44c6132163 Fix ~40 typos found by codespell across the codebase
libeigen/eigen!2181

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-21 21:29:50 -08:00
Rasmus Munk LarsenandRasmus Munk Larsen b6b2f31ba8 Fix compiler warnings from GCC 13 and Clang 18
libeigen/eigen!2146

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-17 10:09:39 -08:00
Rasmus Munk LarsenandRasmus Munk Larsen e6e5b5c4c8 Fix pexp_complex for complex<double> (issue #3022)
libeigen/eigen!2140

Closes #3022

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
2026-02-16 15:30:31 -08:00
Antonio Sánchez 1a2b80727c Fix pdiv for complex packets involving infinites.
libeigen/eigen!2131
2026-02-14 17:47:32 -08:00
Antonio Sánchez 4d05fcf8da Fix packetmath tests on M* macs.
libeigen/eigen!2120
2026-02-08 10:07:24 -08:00
Charles Schlosser 3d6f5fe8fe Tests: skip denorms in ARM ieee tests
libeigen/eigen!2115
2026-01-27 17:43:19 +00:00
Charles Schlosser fdfdd4c96b test suite: emit the function name when an ieee test fails
libeigen/eigen!2114
2026-01-22 02:32:38 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen a7674b70d3 Improve packet op test coverage for IEEE special values.
libeigen/eigen!2075

Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com>
2025-11-12 22:19:50 +00:00
ec93a6d098 Add a generic Eigen backend based on clang vector extensions
The goal of this MR is to implement a generic SIMD backend (packet ops) for Eigen that uses clang vector extensions instead of platform-dependent intrinsics. Ideally, this should make it possible to build Eigen and achieve reasonable speed on any platform that has a recent clang compiler, without having to write any inline assembly or intrinsics.

Caveats:

* The current implementation is a proof of concept and supports vectorization for float, double, int32_t, and int64_t using fixed-size 512-bit vectors (a somewhat arbitrary choice). I have not done much to tune this for speed yet.
* For now, there is no way to enable this other than setting -DEIGEN_VECTORIZE_GENERIC on the command line.
* This only compiles with newer versions of clang. I have tested that it compiles and all tests pass with clang 19.1.7.

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors

Closes #2998 and #2997

See merge request libeigen/eigen!2051

Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com>
Co-authored-by: Antonio Sánchez <cantonios@google.com>
2025-11-06 21:52:19 +00:00
Rasmus Munk LarsenandRasmus Munk Larsen b6fcddccfc Get rid of pblend packet op.
There was only a single code path left in TensorEvaluator using pblend. We can replace that with a call to the more general TernarySelectOp and get rid of pblend entirely from Core.

Closes #2998

See merge request libeigen/eigen!2056

Co-authored-by: Rasmus Munk Larsen <rmlarsen@google.com>
2025-11-03 23:27:50 +00:00
Antonio Sánchez 2e8cc042a1 Replace calls to numext::fma with numext:madd. 2025-08-28 21:40:19 +00:00
Antonio Sánchez db8bd5b825 Modify pselect and various masks to use Scalar(1) for true. 2025-06-20 22:40:46 +00:00
Antonio Sánchez c458d68fae Fix compile warning about * with bool. 2025-06-05 22:48:57 +00:00
Rasmus Munk Larsen 33f5f59614 Vectorize cbrt for float and double. 2025-04-17 23:31:20 +00:00
Antonio Sánchez b860042263 Add postream for ostream-ing packets more reliably. 2025-04-01 22:12:00 +00:00
Antonio Sanchez 8e32cbf7da Reduce flakiness of test for Eigen::half. 2025-03-23 22:31:25 -07:00
Antonio Sánchez d935916ac6 Add numext::fma and missing pmadd implementations. 2025-03-23 01:05:53 +00:00
Antonio Sánchez 70f2aead9a Use native _Float16 for AVX512FP16 and update vectorization. 2025-03-19 19:55:26 +00:00
Charles Schlosser 10e62ccd22 Fix x86 complex vectorized fma 2025-03-12 17:06:32 +00:00
Antonio Sánchez d79bac0d3c Fix boolean scatter and random generation for tensors. 2025-02-25 21:37:09 +00:00
Rasmus Munk Larsen 5064cb7d5e Add test for using pcast on scalars. 2024-11-25 22:27:26 -08:00
Rasmus Munk Larsen 3f067c4850 Add exp2() as a packet op and array method. 2024-10-22 22:09:34 +00:00
Charles Schlosser 9d3d37c5b7 Complex Numtraits::HasSign and nmsub test 2024-08-28 03:02:47 +00:00
Charles Schlosser fb95e90f7f Add truncation op 2024-04-29 23:45:49 +00:00