Interface FindRunsKernel


public interface FindRunsKernel
  • Method Details

    • getInstance

      static FindRunsKernel getInstance(ChunkType chunkType)
    • findRuns

      void findRuns(@NotNull @NotNull Chunk<? extends Any> sortedValues, @NotNull @NotNull WritableIntChunk<ChunkPositions> offsetsOut, @NotNull @NotNull WritableIntChunk<ChunkLengths> lengthsOut)
      Find runs of identical values in a sorted chunk. This is used as part of an overall sort, after the timsort (or other sorting) kernel to identify the runs that must be sorted according to secondary keys.

      Runs with only a single value are not included.

      Parameters:
      sortedValues - a chunk of sorted values
      offsetsOut - an output chunk, with offsets of starting locations that a run occurred
      lengthsOut - an output chunk, parallel to offsetsOut, with the lengths of found runs
    • findRunsSingles

      void findRunsSingles(@NotNull @NotNull Chunk<? extends Any> sortedValues, @NotNull @NotNull WritableIntChunk<ChunkPositions> offsetsOut, @NotNull @NotNull WritableIntChunk<ChunkLengths> lengthsOut)
      Find runs of identical values in a sorted chunk.

      Runs of a single values are included.

      Parameters:
      sortedValues - a chunk of sorted values
      offsetsOut - an output chunk, with offsets of starting locations that a run occurred
      lengthsOut - an output chunk, parallel to offsetsOut, with the lengths of found runs
    • findRuns

      void findRuns(@NotNull @NotNull Chunk<? extends Any> sortedValues, @NotNull @NotNull IntChunk<ChunkPositions> offsetsIn, @NotNull @NotNull IntChunk<ChunkLengths> lengthsIn, @NotNull @NotNull WritableIntChunk<ChunkPositions> offsetsOut, @NotNull @NotNull WritableIntChunk<ChunkLengths> lengthsOut)
      Find runs of identical values in a sorted chunk. This is used as part of an overall sort, after the timsort (or other sorting) kernel to identify the runs that must be sorted according to secondary keys.
      Parameters:
      sortedValues - a chunk of sorted values
      offsetsIn - the offsets within the chunk to check for runs
      lengthsIn - the lengths parallel to offsetsIn for run checking
      offsetsOut - an output chunk, with offsets of starting locations that a run occurred
      lengthsOut - an output chunk, parallel to offsetsOut, with the lengths of found runs Note, that lengthsIn must contain values greater than 1, and lengthsOut additionally only contain values greater than one
    • compactRuns

      int compactRuns(@NotNull @NotNull WritableChunk<? extends Any> sortedValues, @NotNull @NotNull IntChunk<ChunkPositions> offsetsIn)
      Compact already-found runs in sortedValues according to the offsets in offsetsIn.

      Additionally, verify that the elements are properly ordered; returning the first position of an out-of-order element.

      Parameters:
      sortedValues - The chunk of runs to compact
      offsetsIn - The start offsets for each run in sortedValues
      Returns:
      The first position of an out-of-order element, or -1 if all elements are in order