10 #ifndef IFPACK2_HEAP_HPP
11 #define IFPACK2_HEAP_HPP
19 template <
typename Scalar,
typename Ordinal>
20 struct greater_indirect {
23 ~greater_indirect() {}
34 template <
typename Ordinal,
typename SizeType>
36 if (heap.
size() == heap_len)
41 std::push_heap(heap.
begin(), heap.
begin() + heap_len, std::greater<Ordinal>());
47 template <
typename Ordinal,
typename SizeType,
class Compare>
49 if (heap.
size() == heap_len)
54 std::push_heap(heap.
begin(), heap.
begin() + heap_len, comp);
58 template <
typename Ordinal,
typename SizeType>
60 std::pop_heap(heap.
begin(), heap.
begin() + heap_len, std::greater<Ordinal>());
67 template <
typename Ordinal,
typename SizeType,
class Compare>
69 std::pop_heap(heap.
begin(), heap.
begin() + heap_len, comp);
void rm_heap_root(Teuchos::Array< Ordinal > &heap, SizeType &heap_len)
Definition: Ifpack2_Heap.hpp:59
static magnitudeType magnitude(T a)
void push_back(const value_type &x)
void add_to_heap(const Ordinal &idx, Teuchos::Array< Ordinal > &heap, SizeType &heap_len)
Definition: Ifpack2_Heap.hpp:35