Skip to content

Conversation

@bitshifter
Copy link

Tests added using common input values and comparing against the output
from original boost::math implementations.

The normal distribution CDF function is taken from the example code at
http://en.cppreference.com/w/cpp/numeric/math/erfc.

The erf_inv is based on code accompanying the article "Approximating
the erfinv function" in GPU Computing Gems, Volume 2. Orginally I was using the approximation described at https://en.wikipedia.org/wiki/Error_function#Approximation_with_elementary_functions but found them to be a lot less accurate than the boost::math version for some inputs.

I don't have a great background in this kind of maths, I've found algorithm descriptions through Googling and checked correctness by comparing against the values returned by boost math. It seems to be OK.

Tests added using common input values and comparing against the output
from original boost::math implementations.

The normal distribution cdf function is taken from the example code at
http://en.cppreference.com/w/cpp/numeric/math/erfc.

The erf_inv is based on code accompanying the article "Approximating
the erfinv function" in GPU Computing Gems, Volume 2.
@rmartinho rmartinho added this to the Boostless milestone Nov 15, 2016
@rmartinho
Copy link
Collaborator

rmartinho commented Nov 15, 2016

So this fixes #48? Very cool, thanks! I shall review and merge this with the next batch of free time :D

@bitshifter
Copy link
Author

Yep, I think it should fix #48 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants