[Coin-lpsolver] Problems with Clp on Dec Alpha...

Edwards, Nathan J. Nathan.Edwards at celera.com
Mon Feb 10 10:45:05 EST 2003


I've been using Clp as the LP solver in the Sbb and Bcp integer program solvers 
on the Dec/Compaq/HP Alpha platform. 

While Clp seems pretty reliable by itself, when used in these IP solvers it 
fails (with a floating point exception core dump) on many of the problems I'm 
solving. When I debug the problem, it invariably ends up being in the Clp module, 
typically due to floating point "overflow". 

For example: 

COIN_Feb03:ClpSimplex.cpp:2972:
  value=upper_[i]-lower_[i];

fails (floating point exception core dump) if the result is > MAX_DOUBLE 
or < -MAX_DOUBLE. I've experienced this failure "in the wild". 
My fix is to test for "infinity":

  if (upper_[i] > 1.0e100 ||
      lower_[i] < -1.0e100) {
    value = 1.0e100;
  } else {
    value=upper_[i]-lower_[i];
  } 

I'm surprised that others haven't noticed this failure mode, which leads me to wonder whether some code (silently) turns this into an ieee infinity and continues, generating correct results. If this is the case, I'll certainly need to go looking for the equivalent option on the alphas. Do others experience this failure mode?

If, on the other hand, these failures represent bugs, then I need to know how to submit fixes to the CLP code (or bug reports, at the very least). 

Thanks,

nathan

Nathan Edwards 
Infomatics Research
Applied Biosystems
45 West Gude Drive
Rockville, MD 20852
Phone: (240) 453-3612
Fax:   (240) 453-3324
Email: EdwardNJ at AppliedBiosystems.Com



More information about the Clp mailing list