fix: harden MERIDIAN modules from code review + security audit
- domain.rs: atomic instance counter for unique Linear weight seeds (C3) - rapid_adapt.rs: adapt() returns Result instead of panicking (C5), bounded calibration buffer with max_buffer_frames cap (F1-HIGH), validate lora_rank >= 1 (F10) - geometry.rs: 24-bit PRNG precision matching f32 mantissa (C2) - virtual_aug.rs: guard against room_scale=0 division-by-zero (F6) - signal/lib.rs: re-export AmplitudeStats from hardware_norm (W1) - train/lib.rs: crate-root re-exports for all MERIDIAN types (W2) All 201 tests pass (96 unit + 24 integration + 18 subcarrier + 10 metrics + 7 doctests + 105 signal + 10 validation + 1 signal doctest). Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -50,6 +50,7 @@ impl Linear {
|
||||
}
|
||||
|
||||
/// Deterministic xorshift64 uniform in `[lo, hi)`.
|
||||
/// Uses 24-bit precision (matching f32 mantissa) for uniform distribution.
|
||||
fn det_uniform(n: usize, lo: f32, hi: f32, seed: u64) -> Vec<f32> {
|
||||
let r = hi - lo;
|
||||
let mut s = seed.wrapping_add(0x9E37_79B9_7F4A_7C15);
|
||||
@@ -58,7 +59,7 @@ fn det_uniform(n: usize, lo: f32, hi: f32, seed: u64) -> Vec<f32> {
|
||||
s ^= s << 13;
|
||||
s ^= s >> 7;
|
||||
s ^= s << 17;
|
||||
lo + (s >> 11) as f32 / (1u64 << 53) as f32 * r
|
||||
lo + (s >> 40) as f32 / (1u64 << 24) as f32 * r
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user