🧪 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

@ -21,4 +21,5 @@ proc-macro2 = "1.0"
sqlx = "0.8.6"
rusqlite = { version = "0.32.1", features = ["bundled"] }
tempfile = "3.12.0"
rand_core = "0.9.3"
rand_core = "0.6.4"
rand_chacha = { version = "0.3.1", features = ["serde1"] }