Indeed, there is no "sparse-selfadjoint to dense" direct conversion implemented. This would require a special path as there is no iterator over all non-zeros of the symmetric sparse matrix. So the easiest is probably something like:
dense = sparse.triangularView<Upper>();
dense += sparse.transpose().triangularView<StrictlyLower>();
The first ".triangularView<Upper>()" can be omitted if only the upper triangular part is stored. And best perf is:
for (int k=0; k<sparse.outerSize(); ++k)
for (SparseMatrix<double>::InnerIterator it(sparse,k); it; ++it)
dense(it.row(),it.col()) = dense(it.col(),it.row()) = it.value();
gael