From 1c04484a01cffeff2112440718c20339da148a2d Mon Sep 17 00:00:00 2001 From: Benoit Jacob Date: Tue, 18 May 2010 08:24:06 -0400 Subject: [PATCH] bug fix, since the last storage order changes, this InnerSize calculation was wrong --- Eigen/src/Core/Block.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Eigen/src/Core/Block.h b/Eigen/src/Core/Block.h index dd07142c6..79c9dd421 100644 --- a/Eigen/src/Core/Block.h +++ b/Eigen/src/Core/Block.h @@ -81,8 +81,7 @@ struct ei_traits > : ei_tr : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0 : XprTypeIsRowMajor, HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor), - InnerSize = XprTypeIsRowMajor // notice how it's XprTypeIsRowMajor here, not IsRowMajor. Inner size is computed wrt the host matrix's storage order. - ? int(ColsAtCompileTime) : int(RowsAtCompileTime), + InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime), InnerStrideAtCompileTime = HasSameStorageOrderAsXprType ? int(ei_inner_stride_at_compile_time::ret) : int(ei_outer_stride_at_compile_time::ret),