fix the flags and matrix options, to always have the right RowMajor bit in the vector case

This commit is contained in:
Benoit Jacob
2010-03-19 02:12:23 -04:00
parent 9dba86df0b
commit 547269da35
20 changed files with 80 additions and 58 deletions

View File

@@ -96,7 +96,7 @@ void MatrixBase<Derived>::applyHouseholderOnTheLeft(
}
else
{
Map<Matrix<Scalar, 1, Base::ColsAtCompileTime, PlainObject::Options, 1, Base::MaxColsAtCompileTime> > tmp(workspace,cols());
Map<typename ei_plain_row_type<PlainObject>::type> tmp(workspace,cols());
Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
tmp.noalias() = essential.adjoint() * bottom;
tmp += this->row(0);
@@ -118,7 +118,7 @@ void MatrixBase<Derived>::applyHouseholderOnTheRight(
}
else
{
Map<Matrix<Scalar, Base::RowsAtCompileTime, 1, PlainObject::Options, Base::MaxRowsAtCompileTime, 1> > tmp(workspace,rows());
Map<typename ei_plain_col_type<PlainObject>::type> tmp(workspace,rows());
Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
tmp.noalias() = right * essential.conjugate();
tmp += this->col(0);