# Changelog

## Score

- CAI 48 → 46 (-2.1)
- Rubric changed (rubric-2026.08.18 → rubric-2026.08.15) — scores are not directly comparable.

## Lenses

- Code Health 89 → 64 (-24.9)
- Architecture 99 → 92 (-6.6)
- Maturity 38 → 39 (+1.5)
- Readiness 33 → 33 (+0.0)
- Security 89 → 89 (+0.0)
- Performance 70 → 70 (+0.0)

## Resolved (20)

- Coverage not measured — analyzer environment
- Dormant codebase
- Duplicated block (11 lines × 2) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- Duplicated block (12 lines × 2) (LibOptimization/Optimization/clsOptNelderMeadANMS.vb)
- Duplicated block (12 lines × 2) (TestLibOptimization/UnitTestLibOptimization.vb)
- Duplicated block (15 lines × 2) (LibOptimization/Optimization/clsOptDE.vb)
- Duplicated block (16 lines × 4) (LibOptimization/Optimization/clsOptDEJADE.vb)
- Duplicated block (18 lines × 3) (LibOptimization/Optimization/clsOptRealGABLX.vb)
- Duplicated block (21 lines × 3) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- Duplicated block (22 lines × 2) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- Duplicated block (23 lines × 2) (SampleCSharp/Program.cs)
- Duplicated block (5 lines × 2) (TestLibOptimization/UnitTestLibOptimization.vb)
- Duplicated block (9 lines × 2) (LibOptimization/Optimization/clsOptNewtonMethod.vb)
- Duplicated block (9 lines × 2) (LibOptimization/Optimization/clsOptRealGAREX.vb)
- Largest orphaned file (LibOptimization/MathTool/DenseMatrix.vb)
- Largest orphaned file (LibOptimization/Util/clsUtil.vb)
- Largest orphaned file (TestLibOptimization/UnitTestLinearAlgebra.vb)
- No tests discovered
- Typo in class name: 'MyObjecticeFunctionForSA' appears to be a misspelling of 'MyObjectiveFunction'. The 'c' and 'i' are swapped in 'Objectice' vs 'Objective'.
- dormant codebase — no living knowledge left to concentrate

## New (40)

- Change coupling: clsBenchDeJongFunction1.vb ↔ clsBenchDeJongFunction2.vb (LibOptimization/BenchmarkFunctions/clsBenchDeJongFunction1.vb)
- Change coupling: clsOptPSO.vb ↔ clsOptPSOAIW.vb (LibOptimization/Optimization/clsOptPSO.vb)
- Change coupling: clsOptPSO.vb ↔ clsOptPSOChaoticIW.vb (LibOptimization/Optimization/clsOptPSO.vb)
- Change coupling: clsOptPSO.vb ↔ clsOptPSOLDIW.vb (LibOptimization/Optimization/clsOptPSO.vb)
- Change coupling: clsOptPSOAIW.vb ↔ clsOptPSOChaoticIW.vb (LibOptimization/Optimization/clsOptPSOAIW.vb)
- Change coupling: clsOptPSOAIW.vb ↔ clsOptPSOLDIW.vb (LibOptimization/Optimization/clsOptPSOAIW.vb)
- Change coupling: clsOptPSOChaoticIW.vb ↔ clsOptPSOLDIW.vb (LibOptimization/Optimization/clsOptPSOChaoticIW.vb)
- Change coupling: clsOptRealGABLX.vb ↔ clsOptRealGAREX.vb (LibOptimization/Optimization/clsOptRealGABLX.vb)
- Change coupling: clsOptRealGABLX.vb ↔ clsOptRealGASPX.vb (LibOptimization/Optimization/clsOptRealGABLX.vb)
- Change coupling: clsOptRealGAREX.vb ↔ clsOptRealGASPX.vb (LibOptimization/Optimization/clsOptRealGAREX.vb)
- Coverage not measured
- Duplicated block (10 lines × 2) (LibOptimization/Optimization/clsOptRealGAREX.vb)
- Duplicated block (11 lines × 2) (LibOptimization/Optimization/clsOptNewtonMethod.vb)
- Duplicated block (17 lines × 2) (TestLibOptimization/UnitTestLibOptimization.vb)
- Duplicated block (17 lines × 3) (LibOptimization/Optimization/clsOptNelderMead.vb)
- Duplicated block (17 lines × 4) (LibOptimization/Optimization/clsOptDEJADE.vb)
- Duplicated block (18 lines × 2) (LibOptimization/Optimization/clsOptDE.vb)
- Duplicated block (18 lines × 2) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- Duplicated block (19 lines × 2) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- Duplicated block (20 lines × 2) (TestLibOptimization/UnitTestLinearAlgebra.vb)
- …and 20 more

## Architecture

- Unchanged — 3 containers · 0 contexts · 0 edges
