Repository navigation
Commit 92adbd4
committed
hdr: fix observe_batch alert gate and large-moment variance fallback
Two defects in the code recovered from #325, both found in review:
- observe_batch gated its drift alert on `old_n > 10`, while observe
counts the new element first and tests `> 10`, i.e. >= 10 prior. At
exactly 10 prior observations, observe_batch(&[x]) stayed silent where
observe(x) alerted. Gate is now `old_n >= 10`.
- MomentsU32::variance's fallback (when n*sum_sq or sum^2 overflows
u128) subtracted two ~2^64-scale f64 values and could cancel the
variance to 0 (2^33 values split between u32::MAX and u32::MAX-1:
0.0 instead of 0.25). It now centres on q = floor(sum/n) exactly in
u128 first, so the float step works on variance-sized quantities.
Each fix has a regression test that failed before the change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019HnekoM1EidTwQLS3oFVFm1 parent 1c31868 commit 92adbd4
2 files changed
Lines changed: 56 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
220 | 220 | | |
221 | 221 | | |
222 | 222 | | |
223 | | - | |
224 | | - | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
225 | 226 | | |
226 | 227 | | |
227 | 228 | | |
| |||
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
248 | | - | |
| 249 | + | |
249 | 250 | | |
250 | 251 | | |
251 | 252 | | |
| |||
888 | 889 | | |
889 | 890 | | |
890 | 891 | | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
891 | 911 | | |
892 | 912 | | |
893 | 913 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
414 | 416 | | |
415 | 417 | | |
416 | 418 | | |
| |||
419 | 421 | | |
420 | 422 | | |
421 | 423 | | |
422 | | - | |
423 | | - | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
424 | 436 | | |
425 | 437 | | |
426 | 438 | | |
| |||
481 | 493 | | |
482 | 494 | | |
483 | 495 | | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
484 | 514 | | |
485 | 515 | | |
486 | 516 | | |
| |||
0 commit comments