Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid GeometricMean overflow by using exp and log #71

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

petoju
Copy link

@petoju petoju commented Nov 6, 2021

This PR complicates a formula a bit to avoid overflows.

Geometric mean of 100 numbers around 1 billion gets us overflow as
multiplying them yields infinity. Numeric roots from that still return
infinity.

We can take logarithm of all numbers to avoid most prominent overflows
that manifest themselves for just few numbers.

Add tests:
Test with 0 in input failed in previous implementation.
Test with more larger values shows the overflow issue.

This PR complicates a formula a bit to avoid overflows.

Geometric mean of 100 numbers around 1 billion gets us overflow as
multiplying them yields infinity. Numeric roots from that still return
infinity.

We can take logarithm of all numbers to avoid most prominent overflows
that manifest themselves for just few numbers.

Add tests:
Test with 0 in input failed in previous implementation.
Test with more larger values show the overflow issue.
@petoju petoju force-pushed the feature/geo-mean-without-overflow branch from fe577d2 to 06458f1 Compare November 6, 2021 19:43
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