Bugzilla – Bug 681
Uninitialised value in CholmodSupport may lead to incorrect results
Last modified: 2013-10-17 00:11:34 UTC
Created attachment 386 [details]
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 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!
Thanks for the report. Fixed in default and 3.2: