You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//
 | 
						|
//=======================================================================
 | 
						|
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame.
 | 
						|
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
 | 
						|
//
 | 
						|
// Distributed under the Boost Software License, Version 1.0. (See
 | 
						|
// accompanying file LICENSE_1_0.txt or copy at
 | 
						|
// http://www.boost.org/LICENSE_1_0.txt)
 | 
						|
//=======================================================================
 | 
						|
//
 | 
						|
#if __KCC
 | 
						|
namespace std {
 | 
						|
 | 
						|
template <class RandomAccessIterator, class Distance>
 | 
						|
bool __is_heap(RandomAccessIterator first, RandomAccessIterator last,
 | 
						|
               Distance*)
 | 
						|
{
 | 
						|
  const Distance n = last - first;
 | 
						|
 | 
						|
  Distance parent = 0;
 | 
						|
  for (Distance child = 1; child < n; ++child) {
 | 
						|
    if (first[parent] < first[child]) 
 | 
						|
      return false;
 | 
						|
    if ((child & 1) == 0)
 | 
						|
      ++parent;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
template <class RandomAccessIterator>
 | 
						|
inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last)
 | 
						|
{
 | 
						|
  return __is_heap(first, last, distance_type(first));
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
template <class RandomAccessIterator, class Distance, class StrictWeakOrdering>
 | 
						|
bool __is_heap(RandomAccessIterator first, RandomAccessIterator last,
 | 
						|
               StrictWeakOrdering comp,
 | 
						|
               Distance*)
 | 
						|
{
 | 
						|
  const Distance n = last - first;
 | 
						|
 | 
						|
  Distance parent = 0;
 | 
						|
  for (Distance child = 1; child < n; ++child) {
 | 
						|
    if (comp(first[parent], first[child]))
 | 
						|
      return false;
 | 
						|
    if ((child & 1) == 0)
 | 
						|
      ++parent;
 | 
						|
  }
 | 
						|
  return true;
 | 
						|
}
 | 
						|
 | 
						|
template <class RandomAccessIterator, class StrictWeakOrdering>
 | 
						|
inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last,
 | 
						|
                    StrictWeakOrdering comp)
 | 
						|
{
 | 
						|
  return __is_heap(first, last, comp, distance_type(first));
 | 
						|
}
 | 
						|
 | 
						|
}
 | 
						|
#endif
 |