Uninitialised value in CholmodSupport may lead to incorrect results
Submitted by mcz
Assigned to Nobody
Link to original bugzilla bug (#681)
Version: 3.2
Description
Created attachment 386
Fixed CholmodSupport.h file
When using Cholmod* classes (CholmodSupport/CholmodSupport.h), I sometimes got incorrect results (depending on solver object initialisation). After checking with valgrind, I've noticed that the solver uses uninitialised values, which should default to zero. If I was lucky enough, they were zero indeed, leading to correct results.
The above-mentioned uninitialised values are:
RealScalar m_shiftOffset[2] field in CholmodBase class, which is only initialised in the second constructor, but not in the default one - CholmodBase()
res.z and res.nz fields in the first viewAsCholmod() function:
template<typename _Scalar, int _Options, typename _Index>
cholmod_sparse viewAsCholmod(SparseMatrix<_Scalar,_Options,_Index>& mat)
I attach the fixed CholmodSupport.h file (based on 3.2.0 stable release).
Thank you for creating such a great tool!
Michael
Attachment 386, "Fixed CholmodSupport.h file":
CholmodSupport.h