diff options
author | Aki <please@ignore.pl> | 2022-02-09 22:23:03 +0100 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-02-09 22:53:55 +0100 |
commit | 373dc625f82b47096893add42c4472e4a57ab7eb (patch) | |
tree | 640228d02476d379de13071b13d1b1fa322b767f /Opcode/Ice/IceRevisitedRadix.h | |
parent | 2d7dd844219965b81e81848e60d7f7bf23035ee4 (diff) | |
download | starshatter-373dc625f82b47096893add42c4472e4a57ab7eb.zip starshatter-373dc625f82b47096893add42c4472e4a57ab7eb.tar.gz starshatter-373dc625f82b47096893add42c4472e4a57ab7eb.tar.bz2 |
Moved third-party libraries to a separate subdirectory
Diffstat (limited to 'Opcode/Ice/IceRevisitedRadix.h')
-rw-r--r-- | Opcode/Ice/IceRevisitedRadix.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/Opcode/Ice/IceRevisitedRadix.h b/Opcode/Ice/IceRevisitedRadix.h deleted file mode 100644 index 3bdfc22..0000000 --- a/Opcode/Ice/IceRevisitedRadix.h +++ /dev/null @@ -1,65 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/** - * Contains source code from the article "Radix Sort Revisited". - * \file IceRevisitedRadix.h - * \author Pierre Terdiman - * \date April, 4, 2000 - */ -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Include Guard -#ifndef __ICERADIXSORT_H__ -#define __ICERADIXSORT_H__ - - //! Allocate histograms & offsets locally - #define RADIX_LOCAL_RAM - - enum RadixHint - { - RADIX_SIGNED, //!< Input values are signed - RADIX_UNSIGNED, //!< Input values are unsigned - - RADIX_FORCE_DWORD = 0x7fffffff - }; - - class ICECORE_API RadixSort - { - public: - // Constructor/Destructor - RadixSort(); - ~RadixSort(); - // Sorting methods - RadixSort& Sort(const udword* input, udword nb, RadixHint hint=RADIX_SIGNED); - RadixSort& Sort(const float* input, udword nb); - - //! Access to results. mRanks is a list of indices in sorted order, i.e. in the order you may further process your data - inline_ const udword* GetRanks() const { return mRanks; } - - //! mIndices2 gets trashed on calling the sort routine, but otherwise you can recycle it the way you want. - inline_ udword* GetRecyclable() const { return mRanks2; } - - // Stats - udword GetUsedRam() const; - //! Returns the total number of calls to the radix sorter. - inline_ udword GetNbTotalCalls() const { return mTotalCalls; } - //! Returns the number of eraly exits due to temporal coherence. - inline_ udword GetNbHits() const { return mNbHits; } - - private: -#ifndef RADIX_LOCAL_RAM - udword* mHistogram; //!< Counters for each byte - udword* mOffset; //!< Offsets (nearly a cumulative distribution function) -#endif - udword mCurrentSize; //!< Current size of the indices list - udword* mRanks; //!< Two lists, swapped each pass - udword* mRanks2; - // Stats - udword mTotalCalls; //!< Total number of calls to the sort routine - udword mNbHits; //!< Number of early exits due to coherence - // Internal methods - void CheckResize(udword nb); - bool Resize(udword nb); - }; - -#endif // __ICERADIXSORT_H__ |