-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add two utility functions to HighsDomain.cpp #1784
Conversation
…into neos4LargeBnds # Conflicts: # src/mip/HighsDomain.cpp
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to trust that your rationalisation of the duplicated code is correct. Did you do a MIP benchmark run?
I only tested on a handful of instances so far. I hope to have the full results by the end of next week, if that's OK. |
accept = true; | ||
else | ||
accept = false; | ||
bound = static_cast<double>(floor(boundVal + mipsolver->mipdata_->feastol)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Floor is now computed (using HighsCDouble) before casting back to double. This causes a behavior change on 7 out of 854 problems that I tested.
accept = true; | ||
else | ||
accept = false; | ||
bound = static_cast<double>(ceil(boundVal - mipsolver->mipdata_->feastol)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ceiling is now computed (using HighsCDouble) before casting back to double. This causes a behavior change on 7 out of 854 problems that I tested.
Test results show that HiGHS' behavior is affected on problems neos-1605075, neos-619167, neos-693347, noswot, ns1685374, pigeon-10 and rocI-4-11 (see comments above). Other than that performance is identical. |
I added two small utility functions to
src/mip/HighsDomain.cpp
to remove identical code blocks:computeDelta
for computing change in bounds on constraint activitiesboundRange
for computing the bound range.I also fixed some typos along the way.