Skip to content

Preserve streaming covariance precision near large offsets - #5

Merged
pralav-25 merged 1 commit into
mainfrom
fix/covariance-offset-precision
Sep 25, 2026
Merged

pralav-25 merged 1 commit into
mainfrom
fix/covariance-offset-precision

Conversation

@pralav-25

Copy link
Copy Markdown
Owner

Paired Welford updates on observations (1e16, 1e16) and (1e16 + 2, 1e16 + 2) returned sample covariance 4 instead of the exact value 2: the large-coordinate midpoint cannot be represented as a float.

Shift each observation by the first pair before updating the running means and cross-moment. This keeps O(1) streaming state and preserves small deviations near large common offsets. Add exact translation-based regressions for positive and negative covariance and both offset signs; retain the existing standard-library oracle for moderate data.

Validation: 303 tests pass; all doctests, Ruff lint, and formatting pass locally.

@pralav-25
pralav-25 merged commit 7bd388f into main Sep 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant