466 Commits
Author SHA1 Message Date
andrew 593657c9aa Remove duplicate code 2024-02-09 15:32:06 -08:00
andrew d1ee3d8b69 Bring back nextSibling 2024-02-09 15:26:54 -08:00
andrew 80a79aab1f Still need a better way identify left/right sidedness 2024-02-09 15:17:37 -08:00
andrew f3e7279c2c Do less work 2024-02-09 13:10:40 -08:00
andrew 403608c794 WIP just need to identify nodes on begin -> end path 2024-02-09 12:51:09 -08:00
andrew 8e918acc05 Remove dead code 2024-02-09 11:51:51 -08:00
andrew d320fb6eee Remove dead code 2024-02-08 14:59:27 -08:00
andrew 2bd1bf93a9 Check indices between left and right after they diverge 2024-02-08 14:50:53 -08:00
andrew b018ccc3ae Add TODO 2024-02-08 10:16:31 -08:00
andrew d388f6488d Remove dead code 2024-02-08 10:13:53 -08:00
andrew 968e03403d Revert to linear range checking, but keep short-circuiting 2024-02-08 10:05:22 -08:00
andrew 2cbb6e0170 Short-circuiting, efficient checkRangeRead 2024-02-07 16:31:54 -08:00
andrew 9363d7866c Specify maxVersion meaning 2024-02-07 15:33:15 -08:00
andrew 855b7fa069 Prepare for new invariant 2024-02-07 13:44:46 -08:00
andrew 98124d5493 Sublinear read range checking
Still slow though
2024-02-06 16:52:20 -08:00
andrew 6be23803a3 Add standalone bench target 2024-02-06 15:03:54 -08:00
andrew 9a80c96533 Short circuit point reads based on maxVersion 2024-02-06 14:38:39 -08:00
andrew 68239cd80b Maintain nextSib in firstGeq
This is slower, but I think it's closer to what we want for our eventual bespoke
"fused-check-and-search" implementation.
2024-02-06 12:37:02 -08:00
andrew 03e9dc01fd Implement firstGeq directly 2024-02-06 12:11:50 -08:00
andrew d2c89f605f Use rangeVersion indicating < instead of >
This should allow us to use firstGeq (which should be possible to make
more efficient), and generally make things nicer
2024-02-06 11:11:45 -08:00
andrew 0aa2f67f88 Check that all children have reachable present entries 2024-02-05 16:59:21 -08:00
andrew d78afe0823 Interleave checks for point reads
This doesn't actually seem faster, but it should prepare us to implement
range reads non-naively. It probably should be faster. To be
investigated.
2024-02-05 16:44:57 -08:00
andrew 57ec97f2ee Naive range reads implementation and test 2024-02-05 13:59:10 -08:00
andrew a632d0cbbb gcc fixes 2024-02-03 13:16:13 -08:00
andrew 81f178face Remove unused code 2024-02-01 18:31:36 -08:00
andrew 20bd5c2fa6 More corpus tinkering. Missing coverage for Node256 2024-02-01 18:22:45 -08:00
andrew 22daf0b9cb Improve range write performance 2024-02-01 16:52:22 -08:00
andrew 0eff5628bd Fix lastLeq bug 2024-02-01 11:24:57 -08:00
andrew 96aca4a1da Range write WIP 2024-01-31 17:06:59 -08:00
andrew 812eb27708 Return inserted physical node from insert 2024-01-31 16:22:34 -08:00
andrew 31a555c44c Use bitset index for Node48 too 2024-01-31 16:04:03 -08:00
andrew bafe1edfa4 Remove call to memcmp for partial keys 2024-01-31 14:32:25 -08:00
andrew 5a69ec82df Partial keys seem to be working 2024-01-31 11:10:41 -08:00
andrew 220c5caf27 WIP compressed key. Tests fail 2024-01-30 17:31:44 -08:00
andrew ecd549857b Add printTree 2024-01-30 17:16:46 -08:00
andrew 906a007c3a Fix use of uninitialized memory 2024-01-30 14:50:26 -08:00
andrew f2c9267b48 Use a bitset to speed up Node256 scans 2024-01-30 14:21:30 -08:00
andrew 8edac4d811 Use c++20 std::count{l,r}_zero 2024-01-30 13:20:26 -08:00
andrew 3c9c5bd9fb Add benchmarks for getChild{L,G}eq 2024-01-30 13:08:01 -08:00
andrew eca1b9993a Improve symbols test
Remove seed argument and check for disallowed undefined symbols
2024-01-30 11:46:03 -08:00
andrew 3735a43553 Add TestDriver class 2024-01-30 11:13:21 -08:00
andrew 47faa51a35 Add Internal.h 2024-01-30 10:49:49 -08:00
andrew 831088aad9 Leave in the faster version for now 2024-01-26 10:25:48 -08:00
andrew b8de633ca1 Update maxVersion to max(maxVersion, writeVersion) 2024-01-26 10:25:32 -08:00
andrew 270f887584 Annotate unused functions 2024-01-25 15:31:48 -08:00
andrew 4d71cf5b75 Implement x86 getChildLeq/getChildGeq 2024-01-25 14:57:03 -08:00
andrew b15bec6b38 SIMD for Node16 in lastLeq and firstGeq 2024-01-25 12:40:11 -08:00
andrew 35cf3f3132 MacOS fixes 2024-01-24 15:55:44 -08:00
andrew d76ac2a254 Try exported symbols list for Apple
visibility annotations seem to be working for gcc
2024-01-24 15:18:00 -08:00
andrew a6a2ad61d9 Export shared and static libraries 2024-01-24 15:10:06 -08:00