aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Geometry/AngleAxis.h2
-rw-r--r--Eigen/src/Geometry/Quaternion.h2
-rw-r--r--Eigen/src/Geometry/Rotation2D.h2
-rw-r--r--Eigen/src/QR/EigenSolver.h18
-rw-r--r--Eigen/src/QR/SelfAdjointEigenSolver.h2
-rw-r--r--Eigen/src/SVD/SVD.h24
-rw-r--r--Eigen/src/Sparse/SparseMatrix.h4
-rw-r--r--Eigen/src/Sparse/SparseProduct.h2
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