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