diff options
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Geometry/AngleAxis.h | 2 | ||||
-rw-r--r-- | Eigen/src/Geometry/Quaternion.h | 2 | ||||
-rw-r--r-- | Eigen/src/Geometry/Rotation2D.h | 2 | ||||
-rw-r--r-- | Eigen/src/QR/EigenSolver.h | 18 | ||||
-rw-r--r-- | Eigen/src/QR/SelfAdjointEigenSolver.h | 2 | ||||
-rw-r--r-- | Eigen/src/SVD/SVD.h | 24 | ||||
-rw-r--r-- | Eigen/src/Sparse/SparseMatrix.h | 4 | ||||
-rw-r--r-- | Eigen/src/Sparse/SparseProduct.h | 2 |
8 files changed, 28 insertions, 28 deletions
diff --git a/Eigen/src/Geometry/AngleAxis.h b/Eigen/src/Geometry/AngleAxis.h index 289b3e62d..3c8b7d027 100644 --- a/Eigen/src/Geometry/AngleAxis.h +++ b/Eigen/src/Geometry/AngleAxis.h @@ -147,7 +147,7 @@ public: inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other) { m_axis = other.axis().template cast<Scalar>(); - m_angle = other.angle(); + m_angle = Scalar(other.angle()); } /** \returns \c true if \c *this is approximately equal to \a other, within the precision diff --git a/Eigen/src/Geometry/Quaternion.h b/Eigen/src/Geometry/Quaternion.h index 31ea9ef36..058eff7f1 100644 --- a/Eigen/src/Geometry/Quaternion.h +++ b/Eigen/src/Geometry/Quaternion.h @@ -459,7 +459,7 @@ struct ei_quaternion_assign_impl<Other,3,3> int j = (i+1)%3; int k = (j+1)%3; - t = ei_sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + 1.0); + t = Scalar(ei_sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + 1.0)); q.coeffs().coeffRef(i) = Scalar(0.5) * t; t = Scalar(0.5)/t; q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t; diff --git a/Eigen/src/Geometry/Rotation2D.h b/Eigen/src/Geometry/Rotation2D.h index f638ee245..5dea645c8 100644 --- a/Eigen/src/Geometry/Rotation2D.h +++ b/Eigen/src/Geometry/Rotation2D.h @@ -114,7 +114,7 @@ public: template<typename OtherScalarType> inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other) { - m_angle = other.angle(); + m_angle = Scalar(other.angle()); } /** \returns \c true if \c *this is approximately equal to \a other, within the precision diff --git a/Eigen/src/QR/EigenSolver.h b/Eigen/src/QR/EigenSolver.h index 7fcd8cd4a..8cc34851c 100644 --- a/Eigen/src/QR/EigenSolver.h +++ b/Eigen/src/QR/EigenSolver.h @@ -282,7 +282,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH) int n = nn-1; int low = 0; int high = nn-1; - Scalar eps = pow(2.0,-52.0); + Scalar eps = Scalar(pow(2.0,-52.0)); Scalar exshift = 0.0; Scalar p=0,q=0,r=0,s=0,z=0,t,w,x,y; @@ -328,7 +328,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH) else if (l == n-1) // Two roots found { w = matH.coeff(n,n-1) * matH.coeff(n-1,n); - p = (matH.coeff(n-1,n-1) - matH.coeff(n,n)) / 2.0; + p = Scalar((matH.coeff(n-1,n-1) - matH.coeff(n,n)) / 2.0); q = p * p + w; z = ei_sqrt(ei_abs(q)); matH.coeffRef(n,n) = matH.coeff(n,n) + exshift; @@ -405,25 +405,25 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH) for (int i = low; i <= n; ++i) matH.coeffRef(i,i) -= x; s = ei_abs(matH.coeff(n,n-1)) + ei_abs(matH.coeff(n-1,n-2)); - x = y = 0.75 * s; - w = -0.4375 * s * s; + x = y = Scalar(0.75 * s); + w = Scalar(-0.4375 * s * s); } // MATLAB's new ad hoc shift if (iter == 30) { - s = (y - x) / 2.0; + s = Scalar((y - x) / 2.0); s = s * s + w; if (s > 0) { s = ei_sqrt(s); if (y < x) s = -s; - s = x - w / ((y - x) / 2.0 + s); + s = Scalar(x - w / ((y - x) / 2.0 + s)); for (int i = low; i <= n; ++i) matH.coeffRef(i,i) -= s; exshift += s; - x = y = w = 0.964; + x = y = w = Scalar(0.964); } } @@ -469,7 +469,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH) if (k != m) { p = matH.coeff(k,k-1); q = matH.coeff(k+1,k-1); - r = (notlast ? matH.coeff(k+2,k-1) : 0.0); + r = Scalar(notlast ? matH.coeff(k+2,k-1) : 0.0); x = ei_abs(p) + ei_abs(q) + ei_abs(r); if (x != 0.0) { @@ -647,7 +647,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH) x = matH.coeff(i,i+1); y = matH.coeff(i+1,i); vr = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag() - q * q; - vi = (m_eivalues.coeff(i).real() - p) * 2.0 * q; + vi = Scalar((m_eivalues.coeff(i).real() - p) * 2.0 * q); if ((vr == 0.0) && (vi == 0.0)) vr = eps * norm * (ei_abs(w) + ei_abs(q) + ei_abs(x) + ei_abs(y) + ei_abs(z)); diff --git a/Eigen/src/QR/SelfAdjointEigenSolver.h b/Eigen/src/QR/SelfAdjointEigenSolver.h index 36188bcf9..a99a0b79b 100644 --- a/Eigen/src/QR/SelfAdjointEigenSolver.h +++ b/Eigen/src/QR/SelfAdjointEigenSolver.h @@ -334,7 +334,7 @@ MatrixBase<Derived>::operatorNorm() const template<typename RealScalar, typename Scalar> static void ei_tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, int start, int end, Scalar* matrixQ, int n) { - RealScalar td = (diag[end-1] - diag[end])*0.5; + RealScalar td = (diag[end-1] - diag[end])*RealScalar(0.5); RealScalar e2 = ei_abs2(subdiag[end-1]); RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * ei_sqrt(td*td + e2)); RealScalar x = diag[start] - mu; diff --git a/Eigen/src/SVD/SVD.h b/Eigen/src/SVD/SVD.h index b8432c943..7041d16b5 100644 --- a/Eigen/src/SVD/SVD.h +++ b/Eigen/src/SVD/SVD.h @@ -208,7 +208,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) m_matU.col(j).end(m-k) += t * m_matU.col(k).end(m-k); } m_matU.col(k).end(m-k) = - m_matU.col(k).end(m-k); - m_matU(k,k) = 1.0 + m_matU(k,k); + m_matU(k,k) = Scalar(1) + m_matU(k,k); if (k-1>0) m_matU.col(k).start(k-1).setZero(); } @@ -242,7 +242,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) // Main iteration loop for the singular values. int pp = p-1; int iter = 0; - Scalar eps(pow(2.0,-52.0)); + Scalar eps(Scalar(pow(2.0,-52.0))); while (p > 0) { int k=0; @@ -260,7 +260,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) // s(k), ..., s(p) are not negligible (qr step). // kase = 4 if e(p-1) is negligible (convergence). - for (k = p-2; k >= -1; k--) + for (k = p-2; k >= -1; --k) { if (k == -1) break; @@ -277,11 +277,11 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) else { int ks; - for (ks = p-1; ks >= k; ks--) + for (ks = p-1; ks >= k; --ks) { if (ks == k) break; - Scalar t( (ks != p ? ei_abs(e[ks]) : 0.) + (ks != k+1 ? ei_abs(e[ks-1]) : 0.)); + Scalar t( Scalar((ks != p ? ei_abs(e[ks]) : 0.) + (ks != k+1 ? ei_abs(e[ks-1]) : 0.)) ); if (ei_abs(m_sigma[ks]) <= eps*t) { m_sigma[ks] = 0.0; @@ -313,9 +313,9 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) { Scalar f(e[p-2]); e[p-2] = 0.0; - for (j = p-2; j >= k; j--) + for (j = p-2; j >= k; --j) { - Scalar t(hypot(m_sigma[j],f)); + Scalar t(Scalar(hypot(m_sigma[j],f))); Scalar cs(m_sigma[j]/t); Scalar sn(f/t); m_sigma[j] = t; @@ -344,7 +344,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) e[k-1] = 0.0; for (j = k; j < p; ++j) { - Scalar t(hypot(m_sigma[j],f)); + Scalar t(Scalar(hypot(m_sigma[j],f))); Scalar cs( m_sigma[j]/t); Scalar sn(f/t); m_sigma[j] = t; @@ -375,7 +375,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) Scalar epm1 = e[p-2]/scale; Scalar sk = m_sigma[k]/scale; Scalar ek = e[k]/scale; - Scalar b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/2.0; + Scalar b = Scalar(((spm1 + sp)*(spm1 - sp) + epm1*epm1)/2.0); Scalar c = (sp*epm1)*(sp*epm1); Scalar shift = 0.0; if ((b != 0.0) || (c != 0.0)) @@ -392,7 +392,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) for (j = k; j < p-1; ++j) { - Scalar t = hypot(f,g); + Scalar t = Scalar(hypot(f,g)); Scalar cs = f/t; Scalar sn = g/t; if (j != k) @@ -410,7 +410,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) m_matV(i,j) = t; } } - t = hypot(f,g); + t = Scalar(hypot(f,g)); cs = f/t; sn = g/t; m_sigma[j] = t; @@ -439,7 +439,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix) // Make the singular values positive. if (m_sigma[k] <= 0.0) { - m_sigma[k] = (m_sigma[k] < 0.0 ? -m_sigma[k] : 0.0); + m_sigma[k] = Scalar((m_sigma[k] < 0.0 ? -m_sigma[k] : 0.0)); if (wantv) m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1); } diff --git a/Eigen/src/Sparse/SparseMatrix.h b/Eigen/src/Sparse/SparseMatrix.h index c829dfbac..6820ae403 100644 --- a/Eigen/src/Sparse/SparseMatrix.h +++ b/Eigen/src/Sparse/SparseMatrix.h @@ -361,14 +361,14 @@ class SparseMatrix { EIGEN_DBG_SPARSE( s << "Nonzero entries:\n"; - for (unsigned int i=0; i<m.nonZeros(); ++i) + for (int i=0; i<m.nonZeros(); ++i) { s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") "; } s << std::endl; s << std::endl; s << "Column pointers:\n"; - for (unsigned int i=0; i<m.cols(); ++i) + for (int i=0; i<m.cols(); ++i) { s << m.m_outerIndex[i] << " "; } diff --git a/Eigen/src/Sparse/SparseProduct.h b/Eigen/src/Sparse/SparseProduct.h index f8f1fa443..36dfb31ac 100644 --- a/Eigen/src/Sparse/SparseProduct.h +++ b/Eigen/src/Sparse/SparseProduct.h @@ -150,7 +150,7 @@ struct ei_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor> float ratioRes = std::min(ratioLhs * avgNnzPerRhsColumn, 1.f); res.resize(rows, cols); - res.startFill(ratioRes*rows*cols); + res.startFill(int(ratioRes*rows*cols)); for (int j=0; j<cols; ++j) { // let's do a more accurate determination of the nnz ratio for the current column j of res |