Hi Bill,
Yes I also reproduced the problem on an ubuntu system (compiling with
the -m32 flag to gcc). I know in older versions of GSL (1.15 and earlier
I think) the nonlinear least squares test suite was extremely primitive,
so its likely the issue has existed for a long time, it just wasn't
being tested thoroughly. In version 1.16, I added a lot of test problems
(originally there were 4 test problems, now there are around 40.
I don't know why the algorithm doesn't work well on 32 bit - the main
algorithm was ported from MINPACK which is considered a highly robust
implementation of Levenberg-Marquardt, so its puzzling why it would fail
on 32 bit systems. Perhaps some insight could be gained by stepping
through the iteration in a debugger using both a 32 and 64 bit build, to
see why the results are diverging so dramatically.
I'm sorry I haven't yet had a chance to look at your earlier patches.
They are still on my todo list but currently I am extremely busy with
other things. I will get to them as soon as I can!
Thanks,
Patrick
On 12/08/2015 01:44 PM, Bill Maier wrote:
I started to look into bug #46593 "Multifit test failure in 32 bit mode". My
system is Linux Mint 64-bit, and it had problems building using the 32-bit
flags described in that bug write-up. I discovered I could fix this problem
by installing g++ multilib with the command
sudo apt-get install g++-multilib
after which the build went smoothly and I was able to duplicate the
stated problem. Not sure if the set-up for this is documented anywhere.
Besides 32-bit and 64-bit builds, are there any other build options that need
to be
addressed during development?
During this process I also discovered that the hypergeometric code I
wrote for bug #45926 had a similar test failure in 32-bit mode. I'll need to
investigate and fix before that code is ready for production.
-Bill