Open Search
    MergeSegment Class Reference

    #include <parallelsort.h>

    Classes

    struct  Span
     

    Public Member Functions

    template<typename SORTCLASS , typename SOURCEITERATOR , typename DESTITERATOR , typename HELPER >
    void ExecuteMerge (const SORTCLASS &sort, SOURCEITERATOR source, DESTITERATOR destination, const HELPER &helper) const
     
    template<typename SORTCLASS , typename ITERATOR >
    void Split (const SORTCLASS &sort, ITERATOR arr, BaseArray< MergeSegment > &seg, Int &segments) const
     
    Bool Init (Int block, Int chunksize, Int count)
     

    Public Attributes

    Span _a
     
    Span _b
     
    Int _destOffset
     

    Static Public Attributes

    static const Int maximumSplits
     
    static const Int maximumSegmentsPerSplit
     

    Private Member Functions

    template<typename SORTCLASS , typename TYPE , typename ITERATOR >
    TYPE * FindMergeInsertionIndex (const SORTCLASS &sort, const TYPE &key, ITERATOR arr, Int count, Int &insertionIndex) const
     

    Member Function Documentation

    ◆ ExecuteMerge()

    void ExecuteMerge ( const SORTCLASS &  sort,
    SOURCEITERATOR  source,
    DESTITERATOR  destination,
    const HELPER &  helper 
    ) const

    ◆ Split()

    void Split ( const SORTCLASS &  sort,
    ITERATOR  arr,
    BaseArray< MergeSegment > &  seg,
    Int segments 
    ) const

    ◆ Init()

    Bool Init ( Int  block,
    Int  chunksize,
    Int  count 
    )

    ◆ FindMergeInsertionIndex()

    TYPE * FindMergeInsertionIndex ( const SORTCLASS &  sort,
    const TYPE &  key,
    ITERATOR  arr,
    Int  count,
    Int insertionIndex 
    ) const
    private

    Member Data Documentation

    ◆ _a

    Span _a

    ◆ _b

    Span _b

    ◆ _destOffset

    Int _destOffset

    ◆ maximumSplits

    const Int maximumSplits
    static

    ◆ maximumSegmentsPerSplit

    const Int maximumSegmentsPerSplit
    static