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..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 = 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.