From 074b067624e45c8e9f42f2347509d06d0d437226 Mon Sep 17 00:00:00 2001 From: "David H. Bailey" Date: Mon, 23 May 2011 11:20:13 +0200 Subject: fix implicit scalar conversions (needed to support fancy scalar types, see bug #276) --- Eigen/src/Jacobi/Jacobi.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'Eigen/src/Jacobi') diff --git a/Eigen/src/Jacobi/Jacobi.h b/Eigen/src/Jacobi/Jacobi.h index fb5a2c717..27058a97e 100644 --- a/Eigen/src/Jacobi/Jacobi.h +++ b/Eigen/src/Jacobi/Jacobi.h @@ -104,9 +104,9 @@ bool JacobiRotation::makeJacobi(RealScalar x, Scalar y, RealScalar z) else { RealScalar tau = (x-z)/(RealScalar(2)*internal::abs(y)); - RealScalar w = internal::sqrt(internal::abs2(tau) + 1); + RealScalar w = internal::sqrt(internal::abs2(tau) + static_cast(1)); RealScalar t; - if(tau>0) + if(tau>static_cast(0)) { t = RealScalar(1) / (tau + w); } @@ -114,8 +114,8 @@ bool JacobiRotation::makeJacobi(RealScalar x, Scalar y, RealScalar z) { t = RealScalar(1) / (tau - w); } - RealScalar sign_t = t > 0 ? 1 : -1; - RealScalar n = RealScalar(1) / internal::sqrt(internal::abs2(t)+1); + RealScalar sign_t = t > static_cast(0) ? static_cast(1) : static_cast(-1); + RealScalar n = RealScalar(1) / internal::sqrt(internal::abs2(t)+static_cast(1)); m_s = - sign_t * (internal::conj(y) / internal::abs(y)) * internal::abs(t) * n; m_c = n; return true; @@ -221,15 +221,15 @@ template void JacobiRotation::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::false_type) { - if(q==0) + if(q==static_cast(0)) { m_c = p(0)) { - m_c = 0; + m_c = Scalar(0); m_s = q