🤖 AI Summary
Eigen 5.0 is out, bringing broad API cleanup, performance fixes and a number of breaking changes that will affect users and downstream ML/linear-algebra projects. This release is the last major version to support C++14 (5.x requires at least C++14; future master will move to C++17), and Eigen has adopted semantic versioning (MAJOR.MINOR.PATCH). The CMake build system was modernized, LGPL-licensed code (e.g., constrained conjugate gradient) was removed, and a set of public API/behavior changes were introduced to reduce name clashes and unsafe practices.
Key technical changes to watch for: names Eigen::all and Eigen::last moved to Eigen::placeholders::all/last; direct inclusion of internal headers (../src/..) now fails compilation; runtime SVD thin/full U/V options are deprecated in favor of compile-time choices; BLAS wrappers now return void (not int); Eigen::aligned_allocator no longer inherits std::allocator; scalar comparison masks now use Scalar(1) to avoid UB; Euler-angle outputs and the RNG were changed and can alter numerical results. Practically, expect to update build flags (-std=c++14 or later), CMake targets, third-party integrations, and test suites for potential behavioral differences in random numbers, SVD behavior and angle representations. The switch to semantic versioning should make future breaking changes easier to track.
Loading comments...
login to comment
loading comments...
no comments yet