SDSL 3.0.3
Succinct Data Structure Library
Loading...
Searching...
No Matches
rmq_support.hpp
Go to the documentation of this file.
1// Copyright (c) 2016, the SDSL Project Authors. All rights reserved.
2// Please see the AUTHORS file for details. Use of this source code is governed
3// by a BSD license that can be found in the LICENSE file.
8#ifndef INCLUDED_SDSL_RMQ_SUPPORT
9#define INCLUDED_SDSL_RMQ_SUPPORT
10
12
13template <class RandomAccessContainer, bool Minimum> // for range minimum queries
15{
16 static inline bool strict_compare(const typename RandomAccessContainer::value_type v1,
17 const typename RandomAccessContainer::value_type v2)
18 {
19 return v1 < v2;
20 }
21 static inline bool compare(const typename RandomAccessContainer::value_type v1,
22 const typename RandomAccessContainer::value_type v2)
23 {
24 return v1 <= v2;
25 }
26};
27
28template <class RandomAccessContainer> // for range maximum queries
29struct min_max_trait<RandomAccessContainer, false>
30{
31 static inline bool strict_compare(const typename RandomAccessContainer::value_type v1,
32 const typename RandomAccessContainer::value_type v2)
33 {
34 return v1 > v2;
35 }
36 static inline bool compare(const typename RandomAccessContainer::value_type v1,
37 const typename RandomAccessContainer::value_type v2)
38 {
39 return v1 >= v2;
40 }
41};
42
43#endif
static bool compare(const typename RandomAccessContainer::value_type v1, const typename RandomAccessContainer::value_type v2)
static bool strict_compare(const typename RandomAccessContainer::value_type v1, const typename RandomAccessContainer::value_type v2)
static bool strict_compare(const typename RandomAccessContainer::value_type v1, const typename RandomAccessContainer::value_type v2)
static bool compare(const typename RandomAccessContainer::value_type v1, const typename RandomAccessContainer::value_type v2)