summaryrefslogtreecommitdiff
path: root/utils/best.h
blob: 689e76008f80fb63bbd390db12d6bd0549236422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef UTILS__BEST_H
#define UTILS__BEST_H

#include "max_plus.h"

typedef MaxPlus<double> best_t;

inline bool operator <(best_t const& a,best_t const& b) {
  return a.v_>b.v_; // intentionally reversed, so default min-heap, sort, etc. put best first.
}
struct BetterP {
  inline bool operator ()(best_t const& a,best_t const& b) const {
    return a.v_>b.v_; // intentionally reversed, so default min-heap, sort, etc. put best first.
  }
};

inline void maybe_improve(best_t &a,best_t const& b) {
  if (a.v_>b.v_)
    a.v_=b.v_;
}

template <class O>
inline void maybe_improve(best_t &a,O const& b) {
  if (a.v_>b.v_)
    a.v_=b.v_;
}

#endif