fix twisted selfadjoint to selfadjoint (conjugation issue)
diff --git a/Eigen/src/Sparse/SparseSelfAdjointView.h b/Eigen/src/Sparse/SparseSelfAdjointView.h index 3749c60..0f76ed5 100644 --- a/Eigen/src/Sparse/SparseSelfAdjointView.h +++ b/Eigen/src/Sparse/SparseSelfAdjointView.h
@@ -367,6 +367,7 @@ typedef SparseMatrix<Scalar,DestOrder,Index> Dest; Dest& dest(_dest.derived()); typedef Matrix<Index,Dynamic,1> VectorI; + internal::conj_if<SrcUpLo!=DstUpLo> cj; Index size = mat.rows(); VectorI count(size); @@ -404,7 +405,7 @@ Index ip = perm? perm[i] : i; Index k = count[DstUpLo==Lower ? std::min(ip,jp) : std::max(ip,jp)]++; dest._innerIndexPtr()[k] = DstUpLo==Lower ? std::max(ip,jp) : std::min(ip,jp); - dest._valuePtr()[k] = it.value(); + dest._valuePtr()[k] = cj(it.value()); } } }