- Add rayon dependency for parallel processing - Implement rayon::broadcast for proper TFHE server key distribution across threads - Fix bitonic sort to handle non-power-of-2 input sizes by padding to nearest 2^k - Add parallel execution for recursive calls and comparison operations - Update API to accept encrypted max values for safe padding - Add Send/Sync traits for EncryptedNeighbor to enable thread safety - Modify perform_knn_selection to support bitonic sort requirements - Bump version to 0.2.0 This resolves the bitonic sort correctness issue where non-power-of-2 array sizes caused incorrect results. The algorithm now properly pads from 100 to 128 elements and should produce deterministic, correct results.
18 lines
383 B
TOML
18 lines
383 B
TOML
[package]
|
|
name = "hfe_knn"
|
|
version = "0.2.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
tfhe = { version = "1", features = ["integer"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
anyhow = "1"
|
|
rand = "0.9"
|
|
clap = { version = "4.5", features = ["derive"] }
|
|
serde_json = "1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
bincode = "2.0"
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
rayon = "1.10"
|