Opened 11 years ago
Closed 11 years ago
#6151 closed Bugs (fixed)
Wrong output from boot::math, cdf(complement(laplace_distribuiton<>(...))
Reported by: | Owned by: | Paul A. Bristow | |
---|---|---|---|
Milestone: | Boost 1.49.0 | Component: | math |
Version: | Boost 1.48.0 | Severity: | Problem |
Keywords: | laplace distribution | Cc: |
Description
To illustrate the bug, see the following code,
#include <boost/math/distributions/laplace.hpp> #include <iostream> int main () { boost::math::laplace lap(1, 1); std::cout << boost::math::cdf(lap, 1) << std::endl; std::cout << boost::math::cdf(boost::math::complement(lap, 1)) << std::endl; return 0; }
The output should be two numbers sum up to 1. Instead, it print
0.5 (this is correct) 0.0676676 (this is wrong)
I have double read the boost::math documents, to make sure that I didn't misused the library. Hopefully I am not making a stupid mistake here. Otherwise, the bug looks so stupid to me that I still don't believe this is a bug in boost::math, instead I did something wrong here.
Attachments (1)
Change History (6)
by , 11 years ago
Attachment: | laplace.patch added |
---|
comment:1 by , 11 years ago
Component: | None → math |
---|---|
Owner: | set to |
comment:2 by , 11 years ago
Owner: | changed from | to
---|
Ouch. Nasty bug.
Paul, did you work on this one? I can't remember now, except I don't think I've touched it...
comment:4 by , 11 years ago
Ok I did some work on this, but Thijs did most of it ;-)
Thanks for Yan Zhou for patch which looks good. Test adjusted (previous test was wrong too) and now passes cdf + complement == 1 for a range of scale, location, x and p, cdf and quantiles.
Both committed to trunk At revision: 75592
comment:5 by , 11 years ago
Keywords: | laplace distribution added |
---|---|
Milestone: | To Be Determined → Boost 1.49.0 |
Resolution: | → fixed |
Status: | new → closed |
fix the bug