You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update CVP plan for refactored variant system and Copilot review
Changes from original plan:
- Remove problem_size_names/values (removed from Problem trait)
- Add declare_variants! with complexity metadata for i32/f64 variants
- Add VariantParam trait bound on T parameter
- Use variant_params![T] instead of variant_params![]
- CLI dispatch supports both i32 and f64 via variant map (SpinGlass pattern)
- Remove redundant VarBounds import in tests (super::* suffices)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-**Added `crate::variant::VariantParam` trait bound** on `T` (required by refactored variant system, per Copilot review)
285
+
-**Changed `variant_params![]` to `variant_params![T]`** since CVP is parameterized by element type `T` which maps to "weight" category (per Copilot review)
286
+
-**Removed `problem_size_names()` / `problem_size_values()`** — these methods were removed from the `Problem` trait. Size getters are now inherent methods only (already have `num_basis_vectors()` and `ambient_dimension()`)
287
+
-**Added `declare_variants!`** block registering both `i32` and `f64` concrete variants with complexity metadata. CVP complexity is `exp(num_basis_vectors)` — exact CVP is NP-hard under randomized reductions and the best known exact algorithms have exponential complexity in the lattice dimension
288
+
282
289
**Step 4: Run tests to verify they pass**
283
290
284
291
Run: `cargo test test_cvp -- --no-capture 2>&1 | tail -20`
Add match arm in `load_problem()` (after the `"ILP"` arm):
354
+
Add match arm in `load_problem()` (after the `"ILP"` arm), supporting both i32 and f64 via variant map (following SpinGlass pattern, per Copilot review):
0 commit comments