aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLia Lenckowski <lialenck@protonmail.com>2024-11-27 22:26:38 +0100
committerLia Lenckowski <lialenck@protonmail.com>2024-11-27 22:26:38 +0100
commit467674743fb638ea56713aecc719a80505b82a17 (patch)
treefee507cd1770539f5fa05a649e9fbe74e2c6eaae
parent33bb3cf8651b07b0c15f8bba63b2dc2f51a4e0e1 (diff)
downloadembeddings-sort-467674743fb638ea56713aecc719a80505b82a17.tar
embeddings-sort-467674743fb638ea56713aecc719a80505b82a17.tar.bz2
embeddings-sort-467674743fb638ea56713aecc719a80505b82a17.tar.zst
fix: 2-opt no longer crashes in debug builds due to an underflow
-rw-r--r--Cargo.lock2
-rw-r--r--src/tsp_approx.rs2
2 files changed, 2 insertions, 2 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 827a9aa..23f8ba3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -516,7 +516,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
[[package]]
name = "embeddings-sort"
-version = "0.3.0"
+version = "0.3.1"
dependencies = [
"ahash",
"anyhow",
diff --git a/src/tsp_approx.rs b/src/tsp_approx.rs
index 2c6cbf9..e3448a1 100644
--- a/src/tsp_approx.rs
+++ b/src/tsp_approx.rs
@@ -292,7 +292,7 @@ fn refine_2_opt(dist_cache: &DistCache, tour: Vec<usize>) -> (bool, Vec<usize>)
let mut tour: Vec<_> = tour
.into_iter()
.enumerate()
- .map(|(i, v)| (i - 1, v, i + 1))
+ .map(|(i, v)| (i.wrapping_sub(1), v, i + 1))
.collect();
let n = tour.len();
// fix boundary