aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/StableNorm.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-08-15 13:12:50 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-08-15 13:12:50 +0200
commit13a8956188d1c8441c01a6218dc24c745ff0b210 (patch)
tree2012391d821debd79cbe5e4ada1ec291ec885c1b /Eigen/src/Core/StableNorm.h
parent7b60713e87ba24d3b0fa8f486bba8665151e9f31 (diff)
bugfix in inner-product specialization,
compilation fix in stable norm, optimize apply householder
Diffstat (limited to 'Eigen/src/Core/StableNorm.h')
-rw-r--r--Eigen/src/Core/StableNorm.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/Eigen/src/Core/StableNorm.h b/Eigen/src/Core/StableNorm.h
index 6056cafab..77fe79782 100644
--- a/Eigen/src/Core/StableNorm.h
+++ b/Eigen/src/Core/StableNorm.h
@@ -115,17 +115,17 @@ MatrixBase<Derived>::blueNorm() const
ei_assert(false && "the algorithm cannot be guaranteed on this computer");
}
iexp = -((1-iemin)/2);
- b1 = Scalar(std::pow(double(ibeta),iexp)); // lower boundary of midrange
+ b1 = RealScalar(std::pow(double(ibeta),iexp)); // lower boundary of midrange
iexp = (iemax + 1 - it)/2;
- b2 = Scalar(std::pow(double(ibeta),iexp)); // upper boundary of midrange
+ b2 = RealScalar(std::pow(double(ibeta),iexp)); // upper boundary of midrange
iexp = (2-iemin)/2;
- s1m = Scalar(std::pow(double(ibeta),iexp)); // scaling factor for lower range
+ s1m = RealScalar(std::pow(double(ibeta),iexp)); // scaling factor for lower range
iexp = - ((iemax+it)/2);
- s2m = Scalar(std::pow(double(ibeta),iexp)); // scaling factor for upper range
+ s2m = RealScalar(std::pow(double(ibeta),iexp)); // scaling factor for upper range
overfl = rbig*s2m; // overfow boundary for abig
- eps = Scalar(std::pow(double(ibeta), 1-it));
+ eps = RealScalar(std::pow(double(ibeta), 1-it));
relerr = ei_sqrt(eps); // tolerance for neglecting asml
abig = 1.0/eps - 1.0;
if (RealScalar(nbig)>abig) nmax = int(abig); // largest safe n