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
Issue1089 #168
Issue1089 #168
Conversation
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.
Looks good to me. I also grepped for "obedient" in the source code and it only occurs in the documentation note, so nothing seems to have gone under the radar.
NECESSARY = 3, | ||
GREEDY_NECESSARY = 2, | ||
NATURAL = 1, | ||
REASONABLE = 0 |
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.
This could theoretically cause problems if the code refers to the number instead of the name anywhere, but I certainly hope this is not the case. I quickly grepped for 4/3/2/1/0 and did not notice anything (of course quite possible that I would have missed it).
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 agree it's a bit risky but I've talked about this with Malte and we think it's best to start the counting at 0. There's certainly some clauses like if (order_type >= EdgeType::NATURAL)
but a simple shift does clearly not affect these cases.
Now we're at least two who tried to find further usages but weren't able to. :)
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.
It's never acceptable to use numbers instead of symbolic names for constants like these, so I wouldn't worry about the possibility that we do this anywhere in the code. If you want, we can also remove the numbers entirely and rely on the automatic numbers of enum values. But then we have to reverse the order, i.e., list them in the order REASONABLE, NATURAL, ... because numbering goes from 0 onwards.
@@ -10,13 +10,12 @@ class LandmarkFactoryReasonableOrdersHPS : public LandmarkFactory { | |||
virtual void generate_landmarks(const std::shared_ptr<AbstractTask> &task) override; | |||
|
|||
void approximate_reasonable_orders( | |||
const TaskProxy &task_proxy, bool obedient_orders); | |||
const TaskProxy &task_proxy); |
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.
Line break no longer needed.
No description provided.