From 5458727d900da1981ac4e38722c7346d0b240805 Mon Sep 17 00:00:00 2001 From: TheRadDani Date: Sun, 15 Mar 2026 08:04:59 -0500 Subject: [PATCH 1/2] Refactor code for improved readability and performance in optimization algorithms --- crates/vectorprime-optimizer/src/bayes.rs | 19 ++++++++++--------- .../vectorprime-optimizer/src/hierarchical.rs | 2 +- crates/vectorprime-optimizer/src/lib.rs | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/crates/vectorprime-optimizer/src/bayes.rs b/crates/vectorprime-optimizer/src/bayes.rs index d2681f8..73e5567 100644 --- a/crates/vectorprime-optimizer/src/bayes.rs +++ b/crates/vectorprime-optimizer/src/bayes.rs @@ -105,7 +105,7 @@ impl SearchSpace { /// for small sample counts, which leads to better initial coverage. pub fn halton_samples(&self, n: usize) -> Vec { // Start at index 1 (index 0 maps to all-zeros, a degenerate point). - (1..=n).map(|i| halton_point(i)).collect() + (1..=n).map(halton_point).collect() } } @@ -473,7 +473,7 @@ impl GpModel { /// system is singular or has zero rows. /// /// `a` is modified in-place as part of elimination. -fn solve_linear(a: &mut Vec>, b: &[f64]) -> Vec { +fn solve_linear(a: &mut [Vec], b: &[f64]) -> Vec { let n = b.len(); if n == 0 || a.is_empty() { return vec![]; @@ -510,18 +510,19 @@ fn solve_linear(a: &mut Vec>, b: &[f64]) -> Vec { aug.swap(col, pivot); let scale = aug[col][col]; - for j in col..=n { - aug[col][j] /= scale; + for val in aug[col].iter_mut().skip(col) { + *val /= scale; } - for row in 0..n { + // Collect pivot row once to avoid borrow checker issues with nested indexing + let pivot_row: Vec = aug[col][col..=n].to_vec(); + for (row, row_data) in aug.iter_mut().enumerate() { if row == col { continue; } - let factor = aug[row][col]; - for j in col..=n { - let v = aug[col][j] * factor; - aug[row][j] -= v; + let factor = row_data[col]; + for (i, val) in pivot_row.iter().enumerate() { + row_data[col + i] -= val * factor; } } } diff --git a/crates/vectorprime-optimizer/src/hierarchical.rs b/crates/vectorprime-optimizer/src/hierarchical.rs index d97e09d..2f1ade6 100644 --- a/crates/vectorprime-optimizer/src/hierarchical.rs +++ b/crates/vectorprime-optimizer/src/hierarchical.rs @@ -120,8 +120,8 @@ async fn run_phase1( // benchmark::run_benchmarks, since AdapterRegistry is not Send). let handles: Vec<_> = runtimes .iter() - .cloned() .map(|runtime| { + let runtime = runtime.clone(); let model = Arc::clone(&model); let cfg = Arc::clone(&cfg); tokio::task::spawn_blocking(move || { diff --git a/crates/vectorprime-optimizer/src/lib.rs b/crates/vectorprime-optimizer/src/lib.rs index a4542b8..224be21 100644 --- a/crates/vectorprime-optimizer/src/lib.rs +++ b/crates/vectorprime-optimizer/src/lib.rs @@ -79,7 +79,7 @@ fn all_llamacpp_not_installed( && llamacpp_results.iter().all(|(_, r)| { r.as_ref() .err() - .map(|e| is_not_installed(e)) + .map(is_not_installed) .unwrap_or(false) }) } From 990a7117c041b8c2991d28a77c7d0764d4ea36a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 15 Mar 2026 13:06:42 +0000 Subject: [PATCH 2/2] Apply automatic code formatting fixes --- crates/vectorprime-optimizer/src/lib.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/crates/vectorprime-optimizer/src/lib.rs b/crates/vectorprime-optimizer/src/lib.rs index 224be21..bdf0b85 100644 --- a/crates/vectorprime-optimizer/src/lib.rs +++ b/crates/vectorprime-optimizer/src/lib.rs @@ -76,12 +76,9 @@ fn all_llamacpp_not_installed( .filter(|(cfg, _)| cfg.runtime == RuntimeKind::LlamaCpp) .collect(); !llamacpp_results.is_empty() - && llamacpp_results.iter().all(|(_, r)| { - r.as_ref() - .err() - .map(is_not_installed) - .unwrap_or(false) - }) + && llamacpp_results + .iter() + .all(|(_, r)| r.as_ref().err().map(is_not_installed).unwrap_or(false)) } /// Remove entries where the error is [`RuntimeError::NotInstalled`] for any