| 613 | } |
| 614 | |
| 615 | PhaseStatus |
| 616 | MaxConstraint::getPhaseStatusInAssignment( const Map<unsigned, double> &assignment ) const |
| 617 | { |
| 618 | auto byAssignment = [&]( const unsigned &a, const unsigned &b ) { |
| 619 | return assignment[a] < assignment[b]; |
| 620 | }; |
| 621 | unsigned largestVariable = |
| 622 | *std::max_element( _elements.begin(), _elements.end(), byAssignment ); |
| 623 | double value = assignment[largestVariable]; |
| 624 | if ( _haveFeasibleEliminatedPhases && FloatUtils::lt( value, _maxValueOfEliminatedPhases ) ) |
| 625 | return MAX_PHASE_ELIMINATED; |
| 626 | else |
| 627 | return variableToPhase( largestVariable ); |
| 628 | } |
| 629 | |
| 630 | String MaxConstraint::serializeToString() const |
| 631 | { |