18 Commits

Author SHA1 Message Date
ThotDjehuty b6a1e1a953 feat(v2): propagation-of-chaos animation, README section, notebook sandwich
- 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).
2026-05-14 22:43:47 +02:00
ThotDjehuty 24556f51d7 release(v2.0.0): finalize PyPI metadata, README rewrite, v2 benchmark + McKean-Vlasov animation
- 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.
2026-05-14 21:54:49 +02:00
ThotDjehuty 1799a2fa7b release(v2.0.0): promote alpha to stable, fix PyPI naming, add v2 non-regression suite
- 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.
2026-05-14 14:00:39 +02:00
ThotDjehuty d780ed81d7 release(v1.1.0): additive CPU-only generic numerical primitives
Adds 9 new top-level / sub-modules to the Rust API only (no Python
bindings yet), with at least one analytic unit test per module.

New Rust modules:
- optimal_control::matrix_riccati  (RK4 backward solver)
- timeseries_utils::nonsync_covariance  (Hayashi-Yoshida)
- timeseries_utils::wavelet  (Haar / Daubechies DWT and MODWT)
- risk_measures  (VaR, CVaR, projected sub-gradient CVaR minimisation)
- graph::laplacian + graph::spectral_clustering  (Jacobi + k-means++)
- topology  (Vietoris-Rips persistent homology, bottleneck distance)
- volterra  (Caputo Adams, Markovian lift, second-kind Volterra,
             Fourier inversion of characteristic functions)
- signatures  (truncated tensor signature, log-sig, random reservoir,
               Salvi-Cass-Lyons signature kernel, shuffle product)

All previously stable APIs untouched; abi3-py38 ABI preserved.
New module tests: 29/29 passing. Pre-existing 5 unrelated failures
unchanged.
2026-05-12 10:59:09 +02:00
ThotDjehuty efde8d19a5 fix: Update PyPI metadata with Optimiz-rs branding and logo (v1.0.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
2026-02-17 10:22:42 +01:00
ThotDjehuty bfd0d3c591 docs: Update all crates.io references to optimiz-rs
Updated Documentation:
-  README.md: cargo add optimiz-rs
-  RELEASE_NOTES_v1.0.0.md: Updated URLs and install commands
-  LINKEDIN_POST.md: Updated crates.io link
-  FINAL_RELEASE_STATUS.md: Updated all registry tables
-  PYPI_PUBLISHING.md: Updated crates.io URL
-  PUBLICATION_GUIDE_v1.0.0.md: Updated all references

Complete Naming Consistency Achieved:
- crates.io: optimiz-rs 
- PyPI: optimiz-rs 
- Old 'optimizr' package yanked on crates.io

Both registries now use identical naming: optimiz-rs
2026-02-17 10:02:29 +01:00
ThotDjehuty fed03f5bdf feat: Update logo to optimiz-rs branding 🎨
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.
2026-02-17 09:56:23 +01:00
ThotDjehuty 5f2d2d6187 feat: Successfully published optimiz-rs v1.0.0 to PyPI! 🎉
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! 🚀
2026-02-17 09:45:43 +01:00
ThotDjehuty 4714ce03e9 refactor: Rename PyPI package from optimizr-rs to optimiz-rs
- 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.
2026-02-17 09:43:04 +01:00
ThotDjehuty e93d43f290 feat: Publish to crates.io and prepare 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
2026-02-17 09:30:20 +01:00
Melvin Alvarez f44280edd7 chore: prepare v1.0.0 release for crates.io and PyPI
BREAKING CHANGES:
- Version bumped to 1.0.0 (stable release)
- Default features: Removed python-bindings from default (fixes linking issues)
- python-bindings now opt-in feature for PyO3 builds

Metadata Updates:
- Authors: HFThot Research Lab <contact@hfthot-lab.eu>
- Repository: https://github.com/ThotDjehuty/optimiz-r
- Homepage: https://hfthot-lab.eu
- Documentation: https://optimiz-r.readthedocs.io

README Updates:
- Version badge: 0.3.0 → 1.0.0
- What's New section updated for v1.0.0 stable release
- Citation author updated
- Contact information updated

This prepares OptimizR for publication to:
- crates.io (Rust package registry)
- PyPI (Python package index)

API is now stable and follows semantic versioning from v1.0.0 forward.
2026-02-16 16:24:25 +01:00
Melvin Alvarez f43659c8e6 docs: add Documentation & Getting Started section with ReadTheDocs link 2026-02-16 16:05:23 +01:00
Melvin Alvarez 6e3367c396 docs: deepen theory and benchmarks 2026-02-09 17:09:27 +01:00
Melvin Alvarez 43af949904 docs(optimizr): add logo and fix rtd deps 2026-02-09 16:15:41 +01:00
Melvin Alvarez c1f4c0bde7 docs: add ReadTheDocs configuration and Sphinx documentation structure 2026-02-08 17:16:41 +01:00
Melvin Alvarez cafb3476a4 docs: fix 404 broken links
- 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
2026-01-06 14:36:08 +01:00
Melvin Avarez 79f51e4775 Release v0.2.0: Comprehensive DE, Mathematical Toolkit, Optimal Control
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
2025-12-10 18:54:32 +01:00
Melvin Avarez 923d27e87b Initial commit: OptimizR - High-performance optimization algorithms in Rust with Python bindings 2025-12-03 18:16:48 +01:00