diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-04-13 18:32:56 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-04-13 18:32:56 +0200 |
commit | b7716c032893f4cc6f0e635bcffc2d8bc3d956ab (patch) | |
tree | 0624876b6adb34254e958a4d89b2fd61ef9bcb66 /Eigen | |
parent | 2630d97c625d642a205ecf00723efd8e28b9639e (diff) |
Fix incomplete previous patch on matrix comparision.
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Core/ProductEvaluators.h | 2 | ||||
-rw-r--r-- | Eigen/src/Householder/HouseholderSequence.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/Eigen/src/Core/ProductEvaluators.h b/Eigen/src/Core/ProductEvaluators.h index bd63b87ff..2cdcf1c02 100644 --- a/Eigen/src/Core/ProductEvaluators.h +++ b/Eigen/src/Core/ProductEvaluators.h @@ -1007,7 +1007,7 @@ struct transposition_matrix_product StorageIndex j = 0; const typename Dest::Scalar *dst_data = internal::extract_data(dst); - if(!(is_same<MatrixTypeCleaned,Dest>::value && dst_data == extract_data(mat))) + if(!(is_same<MatrixTypeCleaned,Dest>::value && dst_data!=0 && dst_data == extract_data(mat))) dst = mat; for(Index k=(Transposed?size-1:0) ; Transposed?k>=0:k<size ; Transposed?--k:++k) diff --git a/Eigen/src/Householder/HouseholderSequence.h b/Eigen/src/Householder/HouseholderSequence.h index 74cd0a472..3f5f9293b 100644 --- a/Eigen/src/Householder/HouseholderSequence.h +++ b/Eigen/src/Householder/HouseholderSequence.h @@ -243,8 +243,9 @@ template<typename VectorsType, typename CoeffsType, int Side> class HouseholderS { workspace.resize(rows()); Index vecs = m_length; + const typename Dest::Scalar *dst_data = internal::extract_data(dst); if( internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value - && internal::extract_data(dst) == internal::extract_data(m_vectors)) + && dst_data!=0 && dst_data == internal::extract_data(m_vectors)) { // in-place dst.diagonal().setOnes(); |