- examples/animate_propagation_of_chaos.py: 4-panel McKean-Vlasov
simulator at N in {20, 100, 500, 4000} with reference N=12000;
bottom panel tracks W_2(mu^N_t, mu_t) on log scale -> visible
1/sqrt(N) decay (Sznitman 1991).
- examples/propagation_of_chaos.gif (1.6 MB)
- README: new 'Propagation of chaos' subsection under
Mean-field & agent-based dynamics, with empirical-measure
formula, k-tuple factorisation and GIF embed.
- examples/notebooks/14_mckean_vlasov.ipynb: sandwich PRE/code/POST
cells demonstrating W2 ~ 1/sqrt(N) on the same simulator.
Verified executed: sqrt(N)*W2 ~ 0.7 across N (theoretical const).
- Restore correct PyPI distribution name 'optimiz-rs' (continuity with v1.0.x).
Rust crate stays 'optimiz-rs'; Python module is 'optimizr'.
- python/optimizr/__init__.py:
* Bump __version__ from stale '0.2.0' to '2.0.0'.
* Eagerly bind every v2 primitive from _core (so dir(optimizr), IDE
auto-complete and 'from optimizr import X' all work without relying on
the lazy __getattr__ fallback).
* Extend __all__ with 38 new v2 entries.
- README.md: full v2 features section grouped by domain (rough volatility,
BSDE/PDE, stochastic control, mean-field, topology/graphs/signatures,
risk/robust inference, point processes, Kalman). Embedded
examples/mckean_vlasov.gif at the top. Added v2 benchmark table.
- examples/benchmark_v2.py: honest benchmark vs pure-Python/NumPy
references on intrinsically loopy workloads. Best-of-3, single-thread,
Apple M2: HMM 67.7x, DE 13.9x, signatures 11.2x, Hawkes 3.3x, MCMC 1.7x.
- examples/animate_mckean_vlasov.py + examples/mckean_vlasov.gif (5MB):
cinematic 800-particle mean-reverting McKean-Vlasov flow animation
using optimizr.mean_reverting_mckean_vlasov.
- tests/test_v2_api.py already in place: 20/20 pass.
- 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
Logo Updates:
- ✅ New logo: logo_optimizrs.png (1024x1536 PNG)
- ✅ README.md: Updated logo reference
- ✅ docs/source/conf.py: Updated html_logo and html_favicon
- ✅ Removed old logos: logo_optimizr_valid.png, logo_optimizr_valid.jpeg
- ✅ Copied from: business/logo/logo_optimizrs.png
The logo now reflects the new optimiz-rs package name across:
- GitHub README
- ReadTheDocs documentation
- Sphinx HTML output
- favicon
All documentation will automatically use the updated branding.
Publication Details:
- ✅ Package name: optimiz-rs (cleaner than optimizr-rs)
- ✅ PyPI URL: https://pypi.org/project/optimiz-rs/1.0.0/
- ✅ Installation tested: pip install optimiz-rs works perfectly
- ✅ Functionality verified: imports and DE algorithm working
Updated Documentation:
- README.md: Updated installation instructions
- RELEASE_NOTES_v1.0.0.md: Removed '(publishing in progress)'
- FINAL_RELEASE_STATUS.md: Updated to 100% complete status
Both Registries Now Live:
- crates.io: https://crates.io/crates/optimizr
- PyPI: https://pypi.org/project/optimiz-rs/
v1.0.0 is now 100% published and ready for the world! 🚀
- Shorter, cleaner package name
- Updated pyproject.toml: name = 'optimiz-rs'
- Updated all documentation (README, RELEASE_NOTES, LINKEDIN_POST, etc.)
- Rebuilt wheel: optimiz_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl
- Tested: Python import and DE algorithm working correctly
Package verified and ready for PyPI publication.
crates.io:
- Successfully published optimizr v1.0.0
- Available at: https://crates.io/crates/optimizr
PyPI Preparation:
- Renamed package to optimizr-rs (avoid name conflict)
- Updated pyproject.toml with new name
- Built wheel: optimizr_rs-1.0.0-cp38-abi3-macosx_10_12_x86_64.whl
- Ready for upload (need API token)
Documentation Updates:
- Updated RELEASE_NOTES with crates.io link
- Updated README.md installation instructions
- Updated LINKEDIN_POST.md with correct package names
- Created PYPI_PUBLISHING.md with token instructions
Next: Get PyPI API token and run twine upload
- Replace non-existent Python examples with actual files
- Fix all placeholder yourusername URLs to ThotDjehuty
- Remove references to non-existent optimal_control.md theory doc
- Update examples to reference: hmm_regime_detection.py, parallel_de_benchmark.py, polaroid_optimizr_integration.py, timeseries_integration.py
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