Commit Graph

63 Commits

Author SHA1 Message Date
Manuel Raimann abe15bdd7b feat: add TrialPruned error variant and Pruned trial state
- Add `Pruned` variant to `TrialState`
- Add `Error::TrialPruned` variant and standalone `TrialPruned` struct
  with `From<TrialPruned> for Error` for ergonomic `?` usage
- Add `state` field to `CompletedTrial` (defaults to `Complete`)
- Add `Study::prune_trial()` and `Study::n_pruned_trials()`
- `optimize()` and `optimize_with_callback()` detect `TrialPruned`
  errors via Any downcasting and record pruned trials instead of
  failing them
- `best_trial()` / `best_value()` now filter to only `Complete` trials
- Re-export `TrialPruned` from crate root and prelude
2026-02-11 16:24:57 +01:00
Manuel Raimann 4d8af3242b feat: add intermediate values and pruner integration to Trial
- Add report(step, value) and should_prune() methods to Trial
- Store intermediate_values in Trial, copied to CompletedTrial on completion
- Pass pruner through trial factory so trials can consult it
- Rebuild trial factory when pruner is changed via set_pruner()
2026-02-11 16:08:25 +01:00
Manuel Raimann 2651e61b2c feat: add Pruner trait and NopPruner default implementation
Introduce the pruning extension point for the trial pruning system.
The Pruner trait allows deciding whether to stop a trial early based
on intermediate values. NopPruner (never prunes) is the default.
2026-02-11 15:46:56 +01:00
Manuel Raimann d88280c152 chore: release v0.5.1 v0.5.1 2026-02-10 09:30:58 +01:00
Manuel Raimann 0e8fc82201 refactor: update random number generation to use rand::make_rng() and upgrade rand to version 0.10 2026-02-10 09:30:39 +01:00
Manuel Raimann d7ad3f60db chore: release v0.5.0 v0.5.0 2026-02-06 18:55:06 +01:00
Manuel Raimann 5dc81fa0ab Implement Parameters API
- Add `.name()` builder method on all 5 parameter types for custom labels
- Add `CompletedTrial::get(&param)` for typed parameter access
- Add `Display` impl on `ParamValue`
- Add prelude module at `optimizer::prelude::*`
- Shadow `_with_sampler` methods on `Study<f64>` so `optimize()` auto-uses
  the configured sampler; deprecate `_with_sampler` variants
- Use runtime `Any` downcasting with `trial_factory` to avoid E0592
- Update all examples and tests to use the new API

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 18:54:55 +01:00
Manuel Raimann 55e50e6afb Implement Parameters API 2026-02-06 17:15:47 +01:00
Manuel Raimann 2fef1ab3c3 docs: add missing derive feature flag to README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:51:13 +01:00
Manuel Raimann aa1718fed7 docs: update quick start example to use typed Parameter API
The old example used the removed string-based trial.suggest_float()
API. Updated to use FloatParam::new() with param.suggest(trial).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:50:59 +01:00
Manuel Raimann f9227df96e docs: update features list with boolean, enum, and derive support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:50:43 +01:00
Manuel Raimann 02ec9498c4 refactor: reorganize sampler module and update imports 2026-02-04 13:14:22 +01:00
Manuel Raimann 183a78c09e chore: remove log dependency from Cargo.toml 2026-02-02 17:33:03 +01:00
Manuel Raimann ce817c1f38 feat: add 'consts' to default extended words in typos configuration 2026-02-02 17:32:20 +01:00
Manuel Raimann b9f8844e60 chore: release v0.4.0 v0.4.0 2026-02-02 17:31:35 +01:00
Manuel Raimann d1c8925fc3 refactor: remove warn_independent_sampling option from MultivariateTpeSampler 2026-02-02 17:31:25 +01:00
Manuel Raimann 4ce4311c68 Implement Multivariant TPE 2026-02-02 17:25:50 +01:00
Manuel Raimann 293b992e75 feat: implement gamma strategies for TPE sampler with examples 2026-02-02 13:40:33 +01:00
Manuel Raimann af8a9f7638 feat: add examples for async API parameter optimization and ML hyperparameter tuning 2026-01-31 11:56:50 +01:00
Manuel Raimann b9a90ebec3 Format 2026-01-31 11:56:37 +01:00
Manuel Raimann 24e921b7b9 style: format suggest method for improved readability 2026-01-31 11:45:58 +01:00
Manuel Raimann 6363540269 fix: handle end value in suggest method to avoid panic on underflow 2026-01-31 11:44:33 +01:00
Manuel Raimann 9f3c0f0d3b chore: release v0.3.1 2026-01-31 11:34:36 +01:00
Manuel Raimann 747e1928b9 feat: add tests for suggest_bool and suggest_range methods 2026-01-31 11:34:36 +01:00
Manuel Raimann 15a43d9485 feat: add SuggestableRange trait and suggest_range method for parameter suggestion from ranges 2026-01-31 11:34:36 +01:00
Manuel Raimann 1091429697 feat: add suggest_bool method for boolean parameter suggestion 2026-01-31 11:34:36 +01:00
Manuel Raimann b482d56e89 Implement grid search 2026-01-30 22:01:44 +01:00
Manuel Raimann 90bf73a39f feat: add documentation, keywords, categories, and readme to Cargo.toml 2026-01-30 19:57:21 +01:00
Manuel Raimann 473b973408 feat: add permissions for read access to contents in CI and scheduled workflows 2026-01-30 19:28:47 +01:00
Manuel Raimann d8ef4352c3 refactor: replace TpeError with Error in the optimizer library 2026-01-30 19:24:58 +01:00
Manuel Raimann eb57519506 feat: allow publishing with dirty workspace in CI 2026-01-30 19:23:32 +01:00
Manuel Raimann cb5ecf33f0 chore: release v0.3.0 2026-01-30 19:21:54 +01:00
Manuel Raimann 3898136341 Refactor 2026-01-30 19:21:54 +01:00
Manuel Raimann 6a8a938b6e feat: enhance publish step to handle already uploaded versions 2026-01-30 18:47:55 +01:00
Manuel Raimann 6912cc83d9 feat: add cross-target compilation checks in CI 2026-01-30 18:46:31 +01:00
Manuel Raimann fae57e48f3 chore: release v0.2.0 2026-01-30 18:43:45 +01:00
Manuel Raimann daab3ea202 Remove Serde 2026-01-30 18:43:45 +01:00
Manuel Raimann aaf880e1c7 fix: remove unused dependency 'ordered-float' from Cargo.toml 2026-01-30 18:43:45 +01:00
Manuel Raimann 22527b5d5f feat: add CI step for unused dependencies check with cargo-machete 2026-01-30 18:24:22 +01:00
Manuel Raimann 34d61bc544 feat: add CI step to publish to crates.io 2026-01-30 18:20:00 +01:00
Manuel Raimann 8f339a2341 feat: add default typo extension for 'Tpe' 2026-01-30 18:18:30 +01:00
Manuel Raimann ee4999ce74 chore: release v0.1.1 v0.1.1 2026-01-30 18:13:32 +01:00
Manuel Raimann 39e8675988 refactor: Fix 2026-01-30 18:13:02 +01:00
Manuel Raimann 9fd6fbea1f chore: release v0.1.0 2026-01-30 18:11:59 +01:00
Manuel Raimann e2aae35093 refactor: remove Cargo.lock from release process 2026-01-30 18:10:10 +01:00
Manuel Raimann 2e96115db7 refactor: remove Miri job from CI configuration 2026-01-30 18:09:25 +01:00
Manuel Raimann 530faba61c refactor: rename library from optimize to optimizer 2026-01-30 18:08:13 +01:00
Manuel Raimann 12d572025f feat: add typos check job to CI with Rust installation and caching 2026-01-30 18:03:35 +01:00
Manuel Raimann 8a11dd8ca4 feat: enhance CI configuration with additional jobs for MSRV, Cargo Deny, Semver Check, Miri, Minimal Versions, and Typos 2026-01-30 18:02:36 +01:00
Manuel Raimann d93f384f1e feat: add scheduled CI workflow for Rust compilation and testing 2026-01-30 17:57:00 +01:00