From d2d2e8d8ae3d925849df2606637c69c0214c6b68 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Tue, 30 Jun 2026 19:54:00 +0800 Subject: [PATCH 1/2] Enable backwards-compatibility Eigen < 5 --- stan/math/fwd/fun/Eigen_NumTraits.hpp | 2 ++ stan/math/prim/meta/lazy_select_evaluator.hpp | 10 +++++----- stan/math/rev/core/Eigen_NumTraits.hpp | 2 ++ 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/stan/math/fwd/fun/Eigen_NumTraits.hpp b/stan/math/fwd/fun/Eigen_NumTraits.hpp index 20827456d09..9e627e46d1e 100644 --- a/stan/math/fwd/fun/Eigen_NumTraits.hpp +++ b/stan/math/fwd/fun/Eigen_NumTraits.hpp @@ -218,6 +218,7 @@ struct ScalarBinaryOpTraits>, namespace internal { +#if EIGEN_VERSION_AT_LEAST(5, 0, 0) /** * Partial specialization of Eigen's ternary evaluator for `.select()` * expressions on matrices of `fvar`, restoring the lazy (Eigen 3.x) @@ -247,6 +248,7 @@ struct ternary_evaluator< Arg1, Arg2, Arg3>; using Base::Base; }; +#endif } // namespace internal diff --git a/stan/math/prim/meta/lazy_select_evaluator.hpp b/stan/math/prim/meta/lazy_select_evaluator.hpp index 0cc579598f7..d3958169d83 100644 --- a/stan/math/prim/meta/lazy_select_evaluator.hpp +++ b/stan/math/prim/meta/lazy_select_evaluator.hpp @@ -71,11 +71,11 @@ struct lazy_select_evaluator & static_cast(Arg3Flags) & (StorageOrdersAgree ? Eigen::LinearAccessBit : 0))), Flags = (Flags0 & ~Eigen::RowMajorBit) | (Arg1Flags & Eigen::RowMajorBit), - Alignment = Eigen::internal::plain_enum_min( - Eigen::internal::plain_enum_min( - Eigen::internal::evaluator::Alignment, - Eigen::internal::evaluator::Alignment), - Eigen::internal::evaluator::Alignment) + Alignment = std::min({ + static_cast(Eigen::internal::evaluator::Alignment), + static_cast(Eigen::internal::evaluator::Alignment), + static_cast(Eigen::internal::evaluator::Alignment) + }) }; EIGEN_DEVICE_FUNC explicit lazy_select_evaluator(const XprType& xpr) diff --git a/stan/math/rev/core/Eigen_NumTraits.hpp b/stan/math/rev/core/Eigen_NumTraits.hpp index 7719e9a4aa3..ed5eebad4af 100644 --- a/stan/math/rev/core/Eigen_NumTraits.hpp +++ b/stan/math/rev/core/Eigen_NumTraits.hpp @@ -269,6 +269,7 @@ struct ScalarBinaryOpTraits, namespace internal { +#if EIGEN_VERSION_AT_LEAST(5, 0, 0) /** * Partial specialization of Eigen's ternary evaluator for `.select()` * expressions on matrices of `var`, restoring the lazy (Eigen 3.x) @@ -299,6 +300,7 @@ struct ternary_evaluator< Arg1, Arg2, Arg3>; using Base::Base; }; +#endif /** * Enable linear access of inputs when using read_vi_val_adj. From ad5ec5c5bfacfe4108c9f7089f1a6893f5f21563 Mon Sep 17 00:00:00 2001 From: Stan Jenkins Date: Tue, 30 Jun 2026 07:59:20 -0400 Subject: [PATCH 2/2] [Jenkins] auto-formatting by clang-format version 10.0.0-4ubuntu1 --- stan/math/prim/meta/lazy_select_evaluator.hpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/stan/math/prim/meta/lazy_select_evaluator.hpp b/stan/math/prim/meta/lazy_select_evaluator.hpp index d3958169d83..0543167b4ed 100644 --- a/stan/math/prim/meta/lazy_select_evaluator.hpp +++ b/stan/math/prim/meta/lazy_select_evaluator.hpp @@ -71,11 +71,10 @@ struct lazy_select_evaluator & static_cast(Arg3Flags) & (StorageOrdersAgree ? Eigen::LinearAccessBit : 0))), Flags = (Flags0 & ~Eigen::RowMajorBit) | (Arg1Flags & Eigen::RowMajorBit), - Alignment = std::min({ - static_cast(Eigen::internal::evaluator::Alignment), - static_cast(Eigen::internal::evaluator::Alignment), - static_cast(Eigen::internal::evaluator::Alignment) - }) + Alignment + = std::min({static_cast(Eigen::internal::evaluator::Alignment), + static_cast(Eigen::internal::evaluator::Alignment), + static_cast(Eigen::internal::evaluator::Alignment)}) }; EIGEN_DEVICE_FUNC explicit lazy_select_evaluator(const XprType& xpr)