diff --git a/src/interval/interval_def.h b/src/interval/interval_def.h index 88fcc4d002..b9e6cdbc67 100644 --- a/src/interval/interval_def.h +++ b/src/interval/interval_def.h @@ -1314,17 +1314,17 @@ template void interval::cosh () { numeric_traits::set_rounding(false); numeric_traits::cosh(m_lower); numeric_traits::set_rounding(true); - numeric_traits::cosh(m_lower); + numeric_traits::cosh(m_upper); lean_assert(check_invariant()); return; } if(numeric_traits::is_neg(m_upper) || numeric_traits::is_zero(m_upper)) { // [a, b] where a <= b < 0 - numeric_traits::set_rounding(true); - numeric_traits::cosh(m_lower); + std::swap(m_lower, m_upper); numeric_traits::set_rounding(false); numeric_traits::cosh(m_lower); - std::swap(m_lower, m_upper); + numeric_traits::set_rounding(true); + numeric_traits::cosh(m_upper); lean_assert(check_invariant()); return; }