Numerical exception on Windows with preprocess=on
preprocess=on or all other values I tried beside off result in a crash on Windows, works on Linux.
https://github.com/christoph-cullmann/ilp/blob/main/value_110885599.lp
Tried to debug it a bit, runs into error in
[0x0] clpsolve!computeGcd+0x29 (Inline Function) (Inline Function)
If I inspect the code, we use long there, is that a good thing? That will be on most 64 bit systems 64 bit, just not on Windows.
@jjhforrest
Does it get through preprocessing? I am not sure I understand the "clpsolve" bit. I think code should work even with 32 bits - maybe someone else can help.
If I use this patch, it passes the preprocessing without crash and with the right end result:
I think this and some other gcd copy in gomory are the only places that try to use 'long' for such computations and therefore do very different stuff on Win64 compared to other 64 bit operating systems that have 64 bit longs.
That patch fixes most of my Windows only issues, some timeouts and rounding issues, too.
To be more specific, CglGMI and CglGomory at least have the same issues.
Great! Are you going to update master?
I can try to create a pull request. Is int64_t ok or do you want long long?
int64_t is fine.
I merged the PR, but should stable branches also be patched? The PR was only for master.