From bb3a9b4941ad45704b6929453d5210e3d7be26cc Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Mon, 22 Jun 2015 17:48:28 +0200 Subject: Use Ref<> to bypass forceAlignmentIf --- Eigen/src/Core/StableNorm.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'Eigen/src/Core/StableNorm.h') diff --git a/Eigen/src/Core/StableNorm.h b/Eigen/src/Core/StableNorm.h index 83a973365..f702fd8e2 100644 --- a/Eigen/src/Core/StableNorm.h +++ b/Eigen/src/Core/StableNorm.h @@ -164,12 +164,14 @@ MatrixBase::stableNorm() const enum { Alignment = (int(Flags)&DirectAccessBit) || (int(Flags)&AlignedBit) ? 1 : 0 }; + typedef typename internal::conditional, Aligned>, + typename Base::ConstSegmentReturnType>::type SegmentWrapper; Index n = size(); Index bi = internal::first_aligned(derived()); if (bi>0) internal::stable_norm_kernel(this->head(bi), ssq, scale, invScale); for (; bisegment(bi,numext::mini(blockSize, n - bi)).template forceAlignedAccessIf(), ssq, scale, invScale); + internal::stable_norm_kernel(SegmentWrapper(this->segment(bi,numext::mini(blockSize, n - bi))), ssq, scale, invScale); return scale * sqrt(ssq); } -- cgit v1.2.3