Commit Graph

204 Commits

Author SHA1 Message Date
Dirkjan Ochtman 7bfca28d85 Add support for selection heuristic 2021-01-11 21:05:17 +01:00
Dirkjan Ochtman 09dd8d886b Make selection phase explicit in the code 2021-01-11 12:38:40 +01:00
Dirkjan Ochtman 19e451bac2 Default M to 12 2021-01-11 09:33:27 +01:00
Dirkjan Ochtman 0872d04665 Lower recall threshold to prevent spurious test failures 2021-01-07 21:44:11 +01:00
Dirkjan Ochtman df24ddc186 Test recall in randomized test 2021-01-07 21:38:53 +01:00
Dirkjan Ochtman 6def318423 Stick closer to algorithm 2 from the paper 2021-01-07 21:19:56 +01:00
Dirkjan Ochtman f01ed4a4a0 Re-order some code 2021-01-07 20:58:35 +01:00
Dirkjan Ochtman e6d200954e Discard empty layers 2021-01-07 20:55:08 +01:00
Dirkjan Ochtman e3c0224dc2 Update status with current layer 2021-01-07 20:53:21 +01:00
Dirkjan Ochtman f61659cca5 Search in appropriate layer during construction 2021-01-07 16:00:56 +01:00
Dirkjan Ochtman bd9c3f3897 Sort nearest neighbors after pushing batch peers 2021-01-07 16:00:41 +01:00
Dirkjan Ochtman d7c33e9e8f Keep track of candidate order using BinaryHeap 2021-01-07 15:59:41 +01:00
Dirkjan Ochtman 459f5e4d65 Tweak style 2021-01-07 15:58:46 +01:00
Dirkjan Ochtman db1d3128ec Add more extensive randomized test 2021-01-07 15:51:59 +01:00
Dirkjan Ochtman c4708ac032 Fix bug in discarding potential candidates 2021-01-07 14:15:03 +01:00
Dirkjan Ochtman df8388a8a1 Add API to set the seed for the RNG 2021-01-07 14:14:19 +01:00
Dirkjan Ochtman 4b3cb28820 Use more idiomatic way of generating random numbers 2021-01-07 11:23:42 +01:00
Dirkjan Ochtman a3f07f790f Move integration test into tests dir 2021-01-07 11:20:23 +01:00
Dirkjan Ochtman d02deec46b Remove obsolete comment 2021-01-07 11:16:50 +01:00
Dirkjan Ochtman 809fb0d192 Make mL parameter configurable 2021-01-07 11:07:09 +01:00
Dirkjan Ochtman abe24f3160 Upgrade to rand 0.8 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 3feb763d92 Add some documentation for the Builder type 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman d3f07fcad1 Simplify API some more 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman d42bf8adc9 Rename num argument to Layer::search() to links 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 3241070758 Rename Search::num to ef 2020-12-21 14:54:41 +01:00
Dirkjan Ochtman 5ceebde417 Increase batch size 2020-12-16 06:47:13 -08:00
Dirkjan Ochtman 9d959fce06 Implement parallel index construction 2020-12-16 13:51:24 +01:00
Dirkjan Ochtman e1f6b666c9 Slightly simplify search output loop variable 2020-12-16 12:43:51 +01:00
Dirkjan Ochtman ad60d38279 Deduplicate check for layer zero 2020-12-16 12:42:55 +01:00
Dirkjan Ochtman 1871b61b08 Make Search::reset() more robust to future changes 2020-12-16 12:39:28 +01:00
Dirkjan Ochtman 098a4e4ef6 Reset furthest value in Search 2020-12-16 12:05:02 +01:00
Dirkjan Ochtman b20f4efeae Reduce boilerplate in trait implementations 2020-12-16 12:03:46 +01:00
Dirkjan Ochtman fbfefdba6f Add Hnsw::iter() method 2020-12-16 12:03:46 +01:00
Dirkjan Ochtman 68b5c72067 Add an inital README 2020-12-16 10:30:45 +01:00
Dirkjan Ochtman 5eb43c4cb2 Add CI configuration 2020-12-16 10:17:29 +01:00
Dirkjan Ochtman 1a3f8483f5 Add configuration for cargo-deny 2020-12-16 10:17:29 +01:00
Dirkjan Ochtman 0850d82710 Fix clippy suggestion 2020-12-16 10:17:29 +01:00
Dirkjan Ochtman f8a0a2eaec Update tests to match changed API 2020-12-15 21:14:19 +01:00
Dirkjan Ochtman 0d0ae6ac16 Update license to MIT or Apache-2.0 2020-12-15 21:05:00 +01:00
Dirkjan Ochtman 6d984db261 Update crate name 2020-12-15 21:04:15 +01:00
Dirkjan Ochtman 71fd8cc15a Implement basic progress tracking 2020-12-15 11:51:00 +01:00
Dirkjan Ochtman ee46e7cd1a Simplify extraction of builder fields 2020-12-15 11:45:40 +01:00
Dirkjan Ochtman 07350f201c Moving boring impls down 2020-12-15 11:43:42 +01:00
Dirkjan Ochtman b7de137d9f Add builder API to facilitate modular construction 2020-12-15 11:40:12 +01:00
Dirkjan Ochtman 40af226a20 Optimize search algorithm by keeping track of furthest point 2020-12-14 16:52:44 +01:00
Dirkjan Ochtman 0e0ffe201e Use u32 for PointIds to save memory 2020-12-14 16:37:15 +01:00
Dirkjan Ochtman db925603d0 Remove Debug bound from P type 2020-12-14 16:02:23 +01:00
Dirkjan Ochtman 02cfa606c7 Add optional serde support 2020-12-14 15:49:36 +01:00
Dirkjan Ochtman 6a040672d1 Remove unused NodeId type 2020-12-14 15:49:06 +01:00
Dirkjan Ochtman aba1c33455 Remove Cargo lockfile 2020-12-14 15:39:49 +01:00