Commit Graph

5 Commits

Author SHA1 Message Date
Melvin Alvarez a3117fe4a2 fix(build): enable python-bindings feature in maturin config
- Add python-bindings feature to maturin build configuration
- Ensures PyO3 extension module is built correctly for PyPI
- Fixes PyInit__core symbol warning during wheel build

This is required because we removed python-bindings from default features
to fix cargo publish linking issues. Maturin now explicitly enables it.
2026-02-16 16:26:49 +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 5f6bf5798c fix: Clean up unused imports and variables in mean_field modules
- 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.
2026-01-08 23:11:01 +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