Behdad Esfahbod
067225a86d
[set] Optimize const page_for() using last_page_lookup caching
...
Similar to previous commit.
This speeds up SetLookup benchmark by 50%, but that's because that
lookup always hits the same page...
2022-04-29 13:04:36 -06:00
Behdad Esfahbod
c283e41ce3
[set] Optimize non-const page_for() using last_page_lookup caching
...
This speeds up SetOrderedInsert tests by 15 to 40 percent, and the
subset_mplus1p benchmarks by 9 to 27 percent.
2022-04-29 12:45:48 -06:00
Behdad Esfahbod
0a38878549
[set] Minor touch-up on the previous commit
2022-03-25 09:42:36 -06:00
Andrew John
0182988229
[set] Add call to export set contents to an array. ( #3500 )
...
[set] Add hb_set_next_many.
2022-03-25 09:36:44 -06:00
Andy John
ef588ea97b
Add option to insert a sorted arrays of values to sets.
2022-03-21 15:32:59 -06:00
Andy John
7a1e79c3ba
Fix typo.
2022-03-21 14:34:22 -06:00
Andy John
4ee00f943f
Use bit shifting instead of multiplying and dividing.
2022-03-21 14:34:22 -06:00
Behdad Esfahbod
a28ea8d7f3
Simplify swap()
2021-11-01 22:50:54 -06:00
Behdad Esfahbod
38debbab7e
[set] Add successful check in swap()
2021-11-01 22:17:35 -06:00
Behdad Esfahbod
1e3f57c079
[bit-set] Implement standard-5 methods plus swap
2021-11-01 21:14:12 -06:00
Behdad Esfahbod
41b9f2abcd
[set] Add TODO item
2021-08-29 10:47:20 -06:00
Behdad Esfahbod
93ac700da6
[set] Add copy-constructor/assignment again
2021-08-29 10:47:20 -06:00
Behdad Esfahbod
c90678cbc5
[set] One more try to fix things
...
That I don't let a "make check -j10" run finish before pushing things
out means either that we need to speed up our build / test process,
or I need a faster laptop...
2021-08-24 11:11:12 -06:00
Behdad Esfahbod
357976963e
[set] One more try at fixing clear() on empty set
2021-08-24 10:59:31 -06:00
Behdad Esfahbod
b5177d2147
[set] Fix seam exposed by previous commit
2021-08-24 10:43:37 -06:00
Behdad Esfahbod
dc800ffd6c
[bit-set] Remove TODO items we don't intend to finish
2021-08-19 15:41:27 -06:00
Behdad Esfahbod
e8911d137c
[bit-set-invertible] Implement a couple other missing corner cases
...
Also, in bit-set, don't compute population in is_equal/is_subset()
if we don't have it computed already.
2021-08-19 15:00:33 -06:00
Behdad Esfahbod
ee4e331a6e
[bit-set] Remove unused get_min(inverted)
2021-08-19 13:24:15 -06:00
Behdad Esfahbod
b94f24ec79
[bit-set-invertible] Implement set algebra
2021-08-19 00:48:00 -06:00
Behdad Esfahbod
8aa92ff8f0
[bit-set-invertible] Implement get_min/max
2021-08-18 23:01:06 -06:00
Behdad Esfahbod
18f50275ed
[bit-set] Restructure get_min/max() in prep for adding inverted
2021-08-18 22:08:06 -06:00
Behdad Esfahbod
0efa614c04
[bit-set] Add del_array/del_sorted_array()
2021-08-18 21:18:32 -06:00
Behdad Esfahbod
48ad9eef1e
[bit-set] Merge page_for_insert() into page_for()
2021-08-18 21:05:21 -06:00
Behdad Esfahbod
f0c3804fa2
[set] Add hb_bit_set_invertible_t and resurrect hb_set_invert()
...
Implementation is NOT complete yet.
2021-08-17 19:53:43 -06:00
Behdad Esfahbod
fad452bffb
[set] Move main functionality into hb_bit_set_t
...
To add inversion on top in hb_invertible_set_t and use that as hb_set_t.
2021-08-17 10:47:18 -06:00