From eda2795f51f8defdacfb21b2e38a4e6b8bece123 Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Sat, 8 May 2010 15:57:56 -0400 Subject: use modern ei_first_aligned function, dont try compiling coeffRef() on rvalue expressions. --- Eigen/src/Core/StableNorm.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'Eigen/src/Core/StableNorm.h') diff --git a/Eigen/src/Core/StableNorm.h b/Eigen/src/Core/StableNorm.h index 70371d8ba..c2ce93779 100644 --- a/Eigen/src/Core/StableNorm.h +++ b/Eigen/src/Core/StableNorm.h @@ -62,13 +62,9 @@ MatrixBase::stableNorm() const Alignment = (int(Flags)&DirectAccessBit) || (int(Flags)&AlignedBit) ? 1 : 0 }; int n = size(); - int bi=0; - if ((int(Flags)&DirectAccessBit) && !(int(Flags)&AlignedBit)) - { - bi = ei_first_aligned(&const_cast_derived().coeffRef(0), n); - if (bi>0) - ei_stable_norm_kernel(this->head(bi), ssq, scale, invScale); - } + int bi = ei_first_aligned(derived()); + if (bi>0) + ei_stable_norm_kernel(this->head(bi), ssq, scale, invScale); for (; bisegment(bi,std::min(blockSize, n - bi)).template forceAlignedAccessIf(), ssq, scale, invScale); return scale * ei_sqrt(ssq); -- cgit v1.2.3