"I have also seen some normal values changing from zero to something very close to zero." is part of the problem that win32, win64, linux32, linux64 *bsd, amd, intel, ppc, arm, etc, are all using diff code paths to convert from GMP (which stores integer fractions) into floating point numbers?