- Bump Cargo.toml + pyproject.toml from 2.0.0-alpha.1 to 2.0.0.
- Restore PyPI distribution name to 'optimizr' (continuity with v1.4.x).
Rust crate stays 'optimiz-rs'; both expose Python module 'optimizr'.
- README: new 'What's New in v2.0.0' section listing every advertised
primitive (solve_volterra, solve_fractional_ode, linear_bsde_constant_coeffs,
mean_reverting_mckean_vlasov, historical_var_py, etc.) with corrected
install command 'pip install optimizr'.
- tests/test_v2_api.py: 20-test non-regression suite with analytic
ground-truth checks for every v2 primitive plus a parametrised guard
over the v1.x public surface.
- CHANGELOG: 2.0.0 entry documenting the release.
Build verification:
- maturin develop --release --features python-bindings -> optimizr-2.0.0 wheel built
- pytest tests/test_v2_api.py: 20 passed, 0 failed
- cargo test --lib --no-default-features: 124 passed; 5 pre-existing failures
(mrsjd, ou_estimator, hurst_random_walk, hjb_solver_symmetry, regime_switching)
unchanged since v1.1.
- Replace all OptimizR references with Optimiz-rs in README
- Fix logo URL to use GitHub raw link (displays on PyPI)
- Bump version to 1.0.1 for metadata update
- Published to PyPI: https://pypi.org/project/optimiz-rs/1.0.1/
Changes:
- README.md: 7 instances of OptimizR → Optimiz-rs
- README.md: Logo URL now uses raw.githubusercontent.com
- pyproject.toml: version 1.0.0 → 1.0.1
- Cargo.toml: version 1.0.0 → 1.0.1
- Updated Cargo.toml: name = 'optimiz-rs'
- Maintains lib name as 'optimizr' for code compatibility
- Achieves naming consistency with PyPI (optimiz-rs)
Both registries now use the same base name:
- crates.io: optimiz-rs
- PyPI: optimiz-rs
- Remove unused OptimizrError imports in pde_solvers and mod.rs
- Remove unused Array2 import in optimal_transport.rs
- Remove unused Grid and pde_solvers imports in nash_equilibrium.rs
- Fix m_new variable declaration in forward_backward.rs
- Add #[allow(non_snake_case)] for T field/parameter in python_bindings.rs
- Prefix unused hist_cr variable in shade.rs
All changes fix compilation warnings while preserving functionality.
Major Features:
• Comprehensive Differential Evolution with 5 strategies (rand1, best1, currenttobest1, rand2, best2)
• Adaptive jDE algorithm for self-tuning F and CR parameters
• Convergence tracking with history records and early stopping
• Mathematical toolkit module (780 lines): gradient, hessian, jacobian, statistics, linear algebra
• Optimal control framework: HJB solvers, regime switching, jump diffusion, MRSJD
• Sparse optimization: Sparse PCA, Box-Tao decomposition, ADMM, Elastic Net
• Rayon parallelization infrastructure (ready for pure Rust objectives)
Performance:
• 74-88× speedup for DE vs SciPy
• 50-100× speedup overall vs pure Python
Refactoring & Cleanup:
• Removed 5 legacy files (de_refactored.rs, hmm_legacy.rs, hmm_refactored.rs, mcmc_legacy.rs, mcmc_refactored.rs)
• Modular architecture with trait-based design
• Generic implementations (no domain-specific code)
• Updated Python bindings for new DE API
• Fixed ALL compilation warnings (0 errors, 0 warnings)
Documentation:
• Updated README with v0.2.0 features and benchmarks
• Created RELEASE_NOTES_v0.2.0.md (comprehensive changelog)
• New optimal control tutorial notebook (03_optimal_control_tutorial.ipynb)
• Updated API examples in README
• Created test_release.py for release validation
Version Bumps:
• Cargo.toml: 0.1.0 → 0.2.0
• pyproject.toml: 0.1.0 → 0.2.0
• python/__init__.py: 0.1.0 → 0.2.0
Breaking Changes:
• DE API: mutation_factor/crossover_rate → f/cr
• DE API: use_adaptive_jde → adaptive
• DE API: strategy names simplified (e.g., 'rand/1/bin' → 'rand1')
• DE returns: (x, fun) tuple instead of dict-like object
Known Items (Post-Release):
• Mathematical toolkit functions available in Rust but not yet exposed to Python
• MCMC Python wrapper needs API update to match new Rust implementation
• Tutorial notebooks need DE API updates
Tests: 34 Rust tests passing, core Python functionality validated with test_release.py
✨ What's New:
- Sparse PCA with L1 regularization for sparse portfolio construction
- Box & Tao decomposition (Robust PCA) for separating low-rank and sparse components
- Elastic Net regression for sparse cointegration analysis
- Hurst exponent calculation via R/S analysis for mean-reversion testing
- Comprehensive risk metrics computation (Sharpe, Sortino, Calmar, VaR, CVaR, etc.)
- Half-life estimation for mean-reverting processes
- Bootstrap returns for confidence interval estimation
🚀 Performance:
- All algorithms implemented in Rust with ndarray-linalg for optimized linear algebra
- PyO3 bindings for seamless Python integration
- 10-15x speedup compared to pure Python implementations
📦 Module Structure:
- src/sparse_optimization.rs: Sparse PCA, Box-Tao, Elastic Net
- src/risk_metrics.rs: Risk analysis and statistics
- Python wrapper: optimizr package with intuitive API
🔧 Technical Improvements:
- Fixed compilation errors in HMM and MCMC modules
- Updated to ndarray-linalg 0.16 with openblas-system
- Enhanced type safety and error handling
- Comprehensive documentation and examples