IceRevisitedRadix.h
Go to the documentation of this file.
1 
8 
11 // Include Guard
12 #ifndef __ICERADIXSORT_H__
13 #define __ICERADIXSORT_H__
14 
16  #define RADIX_LOCAL_RAM
17 
18  enum RadixHint
19  {
22 
23  RADIX_FORCE_DWORD = 0x7fffffff
24  };
25 
27  {
28  public:
29  // Constructor/Destructor
30  RadixSort();
31  ~RadixSort();
32  // Sorting methods
33  RadixSort& Sort(const udword* input, udword nb, RadixHint hint=RADIX_SIGNED);
34  RadixSort& Sort(const float* input, udword nb);
35 
37  inline_ const udword* GetRanks() const { return mRanks; }
38 
40  inline_ udword* GetRecyclable() const { return mRanks2; }
41 
42  // Stats
43  udword GetUsedRam() const;
45  inline_ udword GetNbTotalCalls() const { return mTotalCalls; }
47  inline_ udword GetNbHits() const { return mNbHits; }
48 
49  private:
50 #ifndef RADIX_LOCAL_RAM
51  udword* mHistogram;
52  udword* mOffset;
53 #endif
57  // Stats
60  // Internal methods
61  void CheckResize(udword nb);
62  bool Resize(udword nb);
63  };
64 
65 #endif // __ICERADIXSORT_H__
RadixSort::GetNbHits
inline_ udword GetNbHits() const
Returns the number of eraly exits due to temporal coherence.
Definition: IceRevisitedRadix.h:47
RadixSort::mTotalCalls
udword mTotalCalls
Total number of calls to the sort routine.
Definition: IceRevisitedRadix.h:58
RadixSort::mRanks2
udword * mRanks2
Definition: IceRevisitedRadix.h:56
udword
unsigned int udword
sizeof(udword) must be 4
Definition: IceTypes.h:65
RadixSort::GetRanks
const inline_ udword * GetRanks() const
Access to results. mRanks is a list of indices in sorted order, i.e. in the order you may further pro...
Definition: IceRevisitedRadix.h:37
RadixSort::mNbHits
udword mNbHits
Number of early exits due to coherence.
Definition: IceRevisitedRadix.h:59
Sort
inline_ void Sort(udword &id0, udword &id1)
Definition: OPC_SweepAndPrune.cpp:24
RadixSort::mRanks
udword * mRanks
Two lists, swapped each pass.
Definition: IceRevisitedRadix.h:55
RadixSort
Definition: IceRevisitedRadix.h:26
RadixHint
RadixHint
Definition: IceRevisitedRadix.h:18
ICECORE_API
#define ICECORE_API
Definition: IcePreprocessor.h:73
RadixSort::GetRecyclable
inline_ udword * GetRecyclable() const
mIndices2 gets trashed on calling the sort routine, but otherwise you can recycle it the way you want...
Definition: IceRevisitedRadix.h:40
RADIX_UNSIGNED
@ RADIX_UNSIGNED
Input values are unsigned.
Definition: IceRevisitedRadix.h:21
RADIX_SIGNED
@ RADIX_SIGNED
Input values are signed.
Definition: IceRevisitedRadix.h:20
RadixSort::GetNbTotalCalls
inline_ udword GetNbTotalCalls() const
Returns the total number of calls to the radix sorter.
Definition: IceRevisitedRadix.h:45
RADIX_FORCE_DWORD
@ RADIX_FORCE_DWORD
Definition: IceRevisitedRadix.h:23
RadixSort::mCurrentSize
udword mCurrentSize
Current size of the indices list.
Definition: IceRevisitedRadix.h:54
inline_
#define inline_
Definition: IcePreprocessor.h:103


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:03