* suppressed some minor warnings

This commit is contained in:
Kenneth Frank Riddile 2009-01-06 04:38:00 +00:00
parent 1c29d70312
commit 6736e52d25
8 changed files with 28 additions and 28 deletions

View File

@ -147,7 +147,7 @@ public:
inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other) inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
{ {
m_axis = other.axis().template cast<Scalar>(); 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 /** \returns \c true if \c *this is approximately equal to \a other, within the precision

View File

@ -459,7 +459,7 @@ struct ei_quaternion_assign_impl<Other,3,3>
int j = (i+1)%3; int j = (i+1)%3;
int k = (j+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; q.coeffs().coeffRef(i) = Scalar(0.5) * t;
t = Scalar(0.5)/t; t = Scalar(0.5)/t;
q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t; q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;

View File

@ -114,7 +114,7 @@ public:
template<typename OtherScalarType> template<typename OtherScalarType>
inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other) 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 /** \returns \c true if \c *this is approximately equal to \a other, within the precision

View File

@ -282,7 +282,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH)
int n = nn-1; int n = nn-1;
int low = 0; int low = 0;
int high = nn-1; int high = nn-1;
Scalar eps = pow(2.0,-52.0); Scalar eps = Scalar(pow(2.0,-52.0));
Scalar exshift = 0.0; Scalar exshift = 0.0;
Scalar p=0,q=0,r=0,s=0,z=0,t,w,x,y; 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 else if (l == n-1) // Two roots found
{ {
w = matH.coeff(n,n-1) * matH.coeff(n-1,n); 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; q = p * p + w;
z = ei_sqrt(ei_abs(q)); z = ei_sqrt(ei_abs(q));
matH.coeffRef(n,n) = matH.coeff(n,n) + exshift; 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) for (int i = low; i <= n; ++i)
matH.coeffRef(i,i) -= x; matH.coeffRef(i,i) -= x;
s = ei_abs(matH.coeff(n,n-1)) + ei_abs(matH.coeff(n-1,n-2)); s = ei_abs(matH.coeff(n,n-1)) + ei_abs(matH.coeff(n-1,n-2));
x = y = 0.75 * s; x = y = Scalar(0.75 * s);
w = -0.4375 * s * s; w = Scalar(-0.4375 * s * s);
} }
// MATLAB's new ad hoc shift // MATLAB's new ad hoc shift
if (iter == 30) if (iter == 30)
{ {
s = (y - x) / 2.0; s = Scalar((y - x) / 2.0);
s = s * s + w; s = s * s + w;
if (s > 0) if (s > 0)
{ {
s = ei_sqrt(s); s = ei_sqrt(s);
if (y < x) if (y < x)
s = -s; 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) for (int i = low; i <= n; ++i)
matH.coeffRef(i,i) -= s; matH.coeffRef(i,i) -= s;
exshift += 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) { if (k != m) {
p = matH.coeff(k,k-1); p = matH.coeff(k,k-1);
q = matH.coeff(k+1,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); x = ei_abs(p) + ei_abs(q) + ei_abs(r);
if (x != 0.0) if (x != 0.0)
{ {
@ -647,7 +647,7 @@ void EigenSolver<MatrixType>::hqr2(MatrixType& matH)
x = matH.coeff(i,i+1); x = matH.coeff(i,i+1);
y = matH.coeff(i+1,i); 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; 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)) 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)); vr = eps * norm * (ei_abs(w) + ei_abs(q) + ei_abs(x) + ei_abs(y) + ei_abs(z));

View File

@ -334,7 +334,7 @@ MatrixBase<Derived>::operatorNorm() const
template<typename RealScalar, typename Scalar> template<typename RealScalar, typename Scalar>
static void ei_tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, int start, int end, Scalar* matrixQ, int n) 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 e2 = ei_abs2(subdiag[end-1]);
RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * ei_sqrt(td*td + e2)); RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * ei_sqrt(td*td + e2));
RealScalar x = diag[start] - mu; RealScalar x = diag[start] - mu;

View File

@ -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(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.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) if (k-1>0)
m_matU.col(k).start(k-1).setZero(); 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. // Main iteration loop for the singular values.
int pp = p-1; int pp = p-1;
int iter = 0; int iter = 0;
Scalar eps(pow(2.0,-52.0)); Scalar eps(Scalar(pow(2.0,-52.0)));
while (p > 0) while (p > 0)
{ {
int k=0; int k=0;
@ -260,7 +260,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
// s(k), ..., s(p) are not negligible (qr step). // s(k), ..., s(p) are not negligible (qr step).
// kase = 4 if e(p-1) is negligible (convergence). // 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) if (k == -1)
break; break;
@ -277,11 +277,11 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
else else
{ {
int ks; int ks;
for (ks = p-1; ks >= k; ks--) for (ks = p-1; ks >= k; --ks)
{ {
if (ks == k) if (ks == k)
break; 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) if (ei_abs(m_sigma[ks]) <= eps*t)
{ {
m_sigma[ks] = 0.0; m_sigma[ks] = 0.0;
@ -313,9 +313,9 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
{ {
Scalar f(e[p-2]); Scalar f(e[p-2]);
e[p-2] = 0.0; 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 cs(m_sigma[j]/t);
Scalar sn(f/t); Scalar sn(f/t);
m_sigma[j] = t; m_sigma[j] = t;
@ -344,7 +344,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
e[k-1] = 0.0; e[k-1] = 0.0;
for (j = k; j < p; ++j) 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 cs( m_sigma[j]/t);
Scalar sn(f/t); Scalar sn(f/t);
m_sigma[j] = t; m_sigma[j] = t;
@ -375,7 +375,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
Scalar epm1 = e[p-2]/scale; Scalar epm1 = e[p-2]/scale;
Scalar sk = m_sigma[k]/scale; Scalar sk = m_sigma[k]/scale;
Scalar ek = e[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 c = (sp*epm1)*(sp*epm1);
Scalar shift = 0.0; Scalar shift = 0.0;
if ((b != 0.0) || (c != 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) for (j = k; j < p-1; ++j)
{ {
Scalar t = hypot(f,g); Scalar t = Scalar(hypot(f,g));
Scalar cs = f/t; Scalar cs = f/t;
Scalar sn = g/t; Scalar sn = g/t;
if (j != k) if (j != k)
@ -410,7 +410,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
m_matV(i,j) = t; m_matV(i,j) = t;
} }
} }
t = hypot(f,g); t = Scalar(hypot(f,g));
cs = f/t; cs = f/t;
sn = g/t; sn = g/t;
m_sigma[j] = t; m_sigma[j] = t;
@ -439,7 +439,7 @@ void SVD<MatrixType>::compute(const MatrixType& matrix)
// Make the singular values positive. // Make the singular values positive.
if (m_sigma[k] <= 0.0) 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) if (wantv)
m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1); m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1);
} }

View File

@ -361,14 +361,14 @@ class SparseMatrix
{ {
EIGEN_DBG_SPARSE( EIGEN_DBG_SPARSE(
s << "Nonzero entries:\n"; 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 << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
} }
s << std::endl; s << std::endl;
s << std::endl; s << std::endl;
s << "Column pointers:\n"; 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] << " "; s << m.m_outerIndex[i] << " ";
} }

View File

@ -150,7 +150,7 @@ struct ei_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
float ratioRes = std::min(ratioLhs * avgNnzPerRhsColumn, 1.f); float ratioRes = std::min(ratioLhs * avgNnzPerRhsColumn, 1.f);
res.resize(rows, cols); res.resize(rows, cols);
res.startFill(ratioRes*rows*cols); res.startFill(int(ratioRes*rows*cols));
for (int j=0; j<cols; ++j) 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 // let's do a more accurate determination of the nnz ratio for the current column j of res