26template <
typename RangeType,
typename PredicateType>
30template <
typename RangeType,
typename PredicateType>
52template <
typename T,
typename IndexType,
typename PredicateType>
54template <
typename T,
typename IndexType,
typename PredicateType>
56template <
typename T,
typename IndexType,
typename PredicateType>
58template <
typename T,
typename IndexType,
typename PredicateType>
60template <
typename T,
typename IndexType,
typename PredicateType>
74template <
typename RangeType,
typename PredicateType>
80template <
typename RangeType>
86template <
typename RangeType,
typename PredicateType>
92template <
typename RangeType,
typename PredicateType>
103template <
typename T,
typename IndexType,
typename PredicateType>
124 constexpr int32 MinBatchSize = 16;
137 IndexType BatchSize = (
Num + TaskCount - 1) / TaskCount;
156 const IndexType BufferSize = ((BatchSize <<
Round) + 1) / 2 + 1;
221template <
typename T,
typename IndexType,
typename PredicateType>
225 IndexType BufferSize = (
Num + 1) / 2 + 1;
235template <
typename T,
typename IndexType,
typename PredicateType>
251template <
typename T,
typename IndexType,
typename PredicateType>
254 IndexType WriteHead = 0;
282 TEXT(
"ParallelSort bug: MergeBuffer not preallocated large enough. %d < %d. ")
283 TEXT(
"AllocatedSize=%d, ConstructorSite=%d, InputNum=%d, Round=%d, BatchSize=%d."),
342template <
typename T,
typename IndexType,
typename PredicateType>
408 checkf(
false,
TEXT(
"ParallelSort bug: SmallSort was passed Num > 3"));
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
auto GetNum(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Length())
Definition StringConv.h:808
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Launch.Build.cs:10
Definition AndroidPlatformMisc.h:14
Definition RingBuffer.h:135
void Reset()
Definition RingBuffer.h:266
Definition ParallelSort.h:41
void ParallelMergeSortPointerAndNum(T *First, IndexType Num, PredicateType Predicate)
Definition ParallelSort.h:104
void SmallSort(T *First, IndexType Num, PredicateType Predicate)
Definition ParallelSort.h:343
void MergeSortPointerAndNum(T *First, IndexType Num, PredicateType Predicate)
Definition ParallelSort.h:222
void MergeSortRecursive(T *First, IndexType Num, PredicateType Predicate, TMergeBuffer< T > &MergeBuffer)
Definition ParallelSort.h:236
Definition ParallelSort.h:13
void ParallelSortForceSingleThreaded(RangeType &&Range, PredicateType Predicate)
Definition ParallelSort.h:87
void ParallelSort(RangeType &&Range, PredicateType Predicate)
Definition ParallelSort.h:75
Definition AnalyticsProviderLog.h:8
Definition ParallelSort.h:44
int32 InputNum
Definition ParallelSort.h:48
int32 ConstructorSite
Definition ParallelSort.h:47
int32 Round
Definition ParallelSort.h:50
int32 AllocatedSize
Definition ParallelSort.h:46
TRingBuffer< T > Buffer
Definition ParallelSort.h:45
int32 BatchSize
Definition ParallelSort.h:49