Google OR-Tools: ortools/util/range_query_function.h Source File

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17#ifndef ORTOOLS_UTIL_RANGE_QUERY_FUNCTION_H_

18#define ORTOOLS_UTIL_RANGE_QUERY_FUNCTION_H_

19

20#include <cstdint>

21#include <functional>

22

24

25

27 public:

29

30

31

32

33 virtual int64_t Query(int64_t argument) const = 0;

34

35 virtual int64_t RangeMin(int64_t from, int64_t to) const = 0;

36

37 virtual int64_t RangeMax(int64_t from, int64_t to) const = 0;

38

39

41 int64_t range_end,

42 int64_t interval_begin,

43 int64_t interval_end) const = 0;

44

45

47 int64_t range_end,

48 int64_t interval_begin,

49 int64_t interval_end) const = 0;

50};

51

52

53

54

55

56

57

59 public:

61

62

63

65

66

68};

69

70

71

73 std::function<int64_t(int64_t)> f);

74

75

76

78 const std::function<int64_t(int64_t)>& f, int64_t domain_start,

79 int64_t domain_end);

80

81

83 const std::function<int64_t(int64_t)>& f, int64_t domain_start,

84 int64_t domain_end);

85}

86

87#endif

virtual int64_t RangeMin(int64_t from, int64_t to) const =0

virtual ~RangeIntToIntFunction()=default

virtual int64_t RangeLastInsideInterval(int64_t range_begin, int64_t range_end, int64_t interval_begin, int64_t interval_end) const =0

virtual int64_t RangeFirstInsideInterval(int64_t range_begin, int64_t range_end, int64_t interval_begin, int64_t interval_end) const =0

virtual int64_t Query(int64_t argument) const =0

virtual int64_t RangeMax(int64_t from, int64_t to) const =0

virtual int64_t RangeMinArgument(int64_t from, int64_t to) const =0

virtual int64_t RangeMaxArgument(int64_t from, int64_t to) const =0

virtual ~RangeMinMaxIndexFunction()=default

RangeIntToIntFunction * MakeCachedIntToIntFunction(const std::function< int64_t(int64_t)> &f, int64_t domain_start, int64_t domain_end)

RangeIntToIntFunction * MakeBareIntToIntFunction(std::function< int64_t(int64_t)> f)

RangeMinMaxIndexFunction * MakeCachedRangeMinMaxIndexFunction(const std::function< int64_t(int64_t)> &f, int64_t domain_start, int64_t domain_end)

trees with all degrees equal to