🧪 workspace, varo: Implement RNG with ChaCha8 and add optimization function

- Updated `Cargo.toml` and `Cargo.lock` to downgrade `rand_core` to 0.6.4 and add `rand_chacha` dependency with `serde1` feature.
- Implemented `Rng` struct wrapping `ChaCha8Rng` with seed initialization, stream selection, and number generation methods.
- Added `rng_new`, `rng_from_seed`, `rng_set_stream`, `rng_next_u32`, `rng_next_u64`, `rng_fill_bytes`, `rng_gen_f32`, and `rng_gen_gaussian` functions.
- Made `value` field in `Score` and `values` field in `OptimizationResult` public.
- Implemented `Distribution::sample` method that generates Gaussian numbers when moments are available.
- Added `From<f32>` implementation for `Score`.
- Implemented `optimize` function that evaluates candidates using cloned RNG streams and returns sorted results.
- Added integration test `test_optimize` that verifies optimization sorting behavior.
This commit is contained in:
Markus Scully 2025-08-06 16:46:58 +03:00
parent 5614cfe95f
commit db531c8c73
Signed by: mascully
GPG key ID: 93CA5814B698101C
5 changed files with 103 additions and 27 deletions

View file

@ -14,6 +14,7 @@ blake3.workspace = true
vanth = { path = "../vanth" }
vanth_derive = { path = "../vanth_derive" }
rand_core.workspace = true
rand_chacha.workspace = true
[dev-dependencies]
tempfile = { workspace = true }