Ticket #6151 (closed Bugs: fixed)

Opened 6 years ago

Last modified 6 years ago

Wrong output from boot::math, cdf(complement(laplace_distribuiton<>(...))

Reported by: Yan Zhou <zhouyan@…> Owned by: pbristow
Milestone: Boost 1.49.0 Component: math
Version: Boost 1.48.0 Severity: Problem
Keywords: laplace distribution Cc:


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.


laplace.patch (571 bytes) - added by Yan Zhou <zhouyan@…> 6 years ago.
fix the bug

Change History

Changed 6 years ago by Yan Zhou <zhouyan@…>

fix the bug

comment:1 Changed 6 years ago by Yan Zhou <zhouyan@…>

  • Owner set to johnmaddock
  • Component changed from None to math

comment:2 Changed 6 years ago by johnmaddock

  • Owner changed from johnmaddock to pbristow

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:3 Changed 6 years ago by pbristow

OK, looks like a bug, and I think I wrote it, so will look at it soon.

comment:4 Changed 6 years ago by pbristow

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 Changed 6 years ago by pbristow

  • Keywords laplace distribution added
  • Status changed from new to closed
  • Resolution set to fixed
  • Milestone changed from To Be Determined to Boost 1.49.0

Add a comment

Modify Ticket

Change Properties
<Author field>
as closed
The resolution will be deleted. Next status will be 'reopened'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.