src/cplib/collections/wordsizetree_avx2

  Source   Edit

0..<2^24のキーを扱う、3段・256分岐のビット集合木です。

Types

WordsizeTreeAvx2 = object
  leaf: array[1 shl 18, uint64]
  middle: array[1 shl 10, uint64]
  top: array[4, uint64]
  Source   Edit

Procs

proc `[]`(self: var WordsizeTreeAvx2; x: int): bool {....raises: [], tags: [].}
要素xが含まれているかを返します。   Source   Edit
proc excl(self: var WordsizeTreeAvx2; x: int) {....raises: [], tags: [].}
要素xを削除します。   Source   Edit
proc ge(self: var WordsizeTreeAvx2; x: int): int {....raises: [], tags: [].}
x以上の最小の要素を返し、存在しなければ-1を返します。   Source   Edit
proc incl(self: var WordsizeTreeAvx2; x: int) {....raises: [], tags: [].}
要素xを追加します。   Source   Edit
proc initWordsizeTree(): WordsizeTreeAvx2 {....raises: [], tags: [].}
空のビット集合木を作成します。   Source   Edit
proc initWordsizeTree(v: openArray[bool]): WordsizeTreeAvx2 {....raises: [],
    tags: [].}
v[i]が真である位置iを要素とするビット集合木を作成します。   Source   Edit
proc le(self: var WordsizeTreeAvx2; x: int): int {....raises: [], tags: [].}
x以下の最大の要素を返し、存在しなければ-1を返します。   Source   Edit