aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/PermutationMatrix.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-11-15 11:19:19 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-11-15 11:19:19 +0100
commit46dd1bb1be49cad4e7eecc12813bd0ee5772cefe (patch)
treec84155c50ed334b7e3cff66a3a48d2645920a06c /Eigen/src/Core/PermutationMatrix.h
parent6b471f205ef00572abebaf403d55433f2ce40eee (diff)
Workaround fixing aliasing issue in x = SparseLU::solve(x)
Diffstat (limited to 'Eigen/src/Core/PermutationMatrix.h')
-rw-r--r--Eigen/src/Core/PermutationMatrix.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/Eigen/src/Core/PermutationMatrix.h b/Eigen/src/Core/PermutationMatrix.h
index 4fc5dd318..1297b8413 100644
--- a/Eigen/src/Core/PermutationMatrix.h
+++ b/Eigen/src/Core/PermutationMatrix.h
@@ -553,7 +553,8 @@ struct permut_matrix_product_retval
template<typename Dest> inline void evalTo(Dest& dst) const
{
const Index n = Side==OnTheLeft ? rows() : cols();
-
+ // FIXME we need an is_same for expression that is not sensitive to constness. For instance
+ // is_same_xpr<Block<const Matrix>, Block<Matrix> >::value should be true.
if(is_same<MatrixTypeNestedCleaned,Dest>::value && extract_data(dst) == extract_data(m_matrix))
{
// apply the permutation inplace