// negative_binomial_example2.cpp

// Copyright Paul A. Bristow 2007, 2010.

// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)

// Simple example demonstrating use of the Negative Binomial Distribution.

#include <boost/math/distributions/negative_binomial.hpp>
  using boost::math::negative_binomial_distribution;
  using boost::math::negative_binomial; // typedef

// In a sequence of trials or events
// (Bernoulli, independent, yes or no, succeed or fail)
// with success_fraction probability p,
// negative_binomial is the probability that k or fewer failures
// preceed the r th trial's success.

#include <iostream>
using std::cout;
using std::endl;
using std::setprecision;
using std::showpoint;
using std::setw;
using std::left;
using std::right;
#include <limits>
using std::numeric_limits;

int main()
{
  cout << "Negative_binomial distribution - simple example 2" << endl;
  // Construct a negative binomial distribution with:
  // 8 successes (r), success fraction (p) 0.25 = 25% or 1 in 4 successes.
  negative_binomial mynbdist(8, 0.25); // Shorter method using typedef.

  // Display (to check) properties of the distribution just constructed.
  cout << "mean(mynbdist) = " << mean(mynbdist) << endl; // 24
  cout << "mynbdist.successes() = " << mynbdist.successes()  << endl; // 8
  // r th successful trial, after k failures, is r + k th trial.
  cout << "mynbdist.success_fraction() = " << mynbdist.success_fraction() << endl; 
  // success_fraction = failures/successes or k/r = 0.25 or 25%. 
  cout << "mynbdist.percent success  = " << mynbdist.success_fraction() * 100 << "%"  << endl;
  // Show as % too.
  // Show some cumulative distribution function values for failures k = 2 and 8
  cout << "cdf(mynbdist, 2.) = " << cdf(mynbdist, 2.) << endl; // 0.000415802001953125
  cout << "cdf(mynbdist, 8.) = " << cdf(mynbdist, 8.) << endl; // 0.027129956288263202
  cout << "cdf(complement(mynbdist, 8.)) = " << cdf(complement(mynbdist, 8.)) << endl; // 0.9728700437117368
  // Check that cdf plus its complement is unity.
  cout << "cdf + complement = " << cdf(mynbdist, 8.) + cdf(complement(mynbdist, 8.))  << endl; // 1
  // Note: No complement for pdf! 

  // Compare cdf with sum of pdfs.
  double sum = 0.; // Calculate the sum of all the pdfs,
  int k = 20; // for 20 failures
  for(signed i = 0; i <= k; ++i)
  {
    sum += pdf(mynbdist, double(i));
  }
  // Compare with the cdf
  double cdf8 = cdf(mynbdist, static_cast<double>(k));
  double diff = sum - cdf8; // Expect the diference to be very small.
  cout << setprecision(17) << "Sum pdfs = " << sum << ' ' // sum = 0.40025683281803698
  << ", cdf = " << cdf(mynbdist, static_cast<double>(k)) //  cdf = 0.40025683281803687
  << ", difference = "  // difference = 0.50000000000000000
  << setprecision(1) << diff/ (std::numeric_limits<double>::epsilon() * sum)
  << " in epsilon units." << endl;

  // Note: Use boost::math::tools::epsilon rather than std::numeric_limits
  //  to cover RealTypes that do not specialize numeric_limits.

//[neg_binomial_example2

  // Print a table of values that can be used to plot
  // using Excel, or some other superior graphical display tool.

  cout.precision(17); // Use max_digits10 precision, the maximum available for a reference table.
  cout << showpoint << endl; // include trailing zeros.
  // This is a maximum possible precision for the type (here double) to suit a reference table.
  int maxk = static_cast<int>(2. * mynbdist.successes() /  mynbdist.success_fraction());
  // This maxk shows most of the range of interest, probability about 0.0001 to 0.999.
  cout << "\n"" k            pdf                      cdf""\n" << endl;
  for (int k = 0; k < maxk; k++)
  {
    cout << right << setprecision(17) << showpoint
      << right << setw(3) << k  << ", "
      << left << setw(25) << pdf(mynbdist, static_cast<double>(k))
      << left << setw(25) << cdf(mynbdist, static_cast<double>(k))
      << endl;
  }
  cout << endl;
//] [/ neg_binomial_example2]
  return 0;
} // int main()

/*

Output is:

negative_binomial distribution - simple example 2
mean(mynbdist) = 24
mynbdist.successes() = 8
mynbdist.success_fraction() = 0.25
mynbdist.percent success  = 25%
cdf(mynbdist, 2.) = 0.000415802001953125
cdf(mynbdist, 8.) = 0.027129956288263202
cdf(complement(mynbdist, 8.)) = 0.9728700437117368
cdf + complement = 1
Sum pdfs = 0.40025683281803692 , cdf = 0.40025683281803687, difference = 0.25 in epsilon units.

//[neg_binomial_example2_1
 k            pdf                      cdf
  0, 1.5258789062500000e-005  1.5258789062500003e-005  
  1, 9.1552734375000000e-005  0.00010681152343750000   
  2, 0.00030899047851562522   0.00041580200195312500   
  3, 0.00077247619628906272   0.0011882781982421875    
  4, 0.0015932321548461918    0.0027815103530883789    
  5, 0.0028678178787231476    0.0056493282318115234    
  6, 0.0046602040529251142    0.010309532284736633     
  7, 0.0069903060793876605    0.017299838364124298     
  8, 0.0098301179241389001    0.027129956288263202     
  9, 0.013106823898851871     0.040236780187115073     
 10, 0.016711200471036140     0.056947980658151209     
 11, 0.020509200578089786     0.077457181236241013     
 12, 0.024354675686481652     0.10181185692272265      
 13, 0.028101548869017230     0.12991340579173993      
 14, 0.031614242477644432     0.16152764826938440      
 15, 0.034775666725408917     0.19630331499479325      
 16, 0.037492515688331451     0.23379583068312471      
 17, 0.039697957787645101     0.27349378847076977      
 18, 0.041352039362130305     0.31484582783290005      
 19, 0.042440250924291580     0.35728607875719176      
 20, 0.042970754060845245     0.40025683281803687      
 21, 0.042970754060845225     0.44322758687888220      
 22, 0.042482450037426581     0.48571003691630876      
 23, 0.041558918514873783     0.52726895543118257      
 24, 0.040260202311284021     0.56752915774246648      
 25, 0.038649794218832620     0.60617895196129912      
 26, 0.036791631035234917     0.64297058299653398      
 27, 0.034747651533277427     0.67771823452981139      
 28, 0.032575923312447595     0.71029415784225891      
 29, 0.030329307911589130     0.74062346575384819      
 30, 0.028054609818219924     0.76867807557206813      
 31, 0.025792141284492545     0.79447021685656061      
 32, 0.023575629142856460     0.81804584599941710      
 33, 0.021432390129869489     0.83947823612928651      
 34, 0.019383705779220189     0.85886194190850684      
 35, 0.017445335201298231     0.87630727710980494      
 36, 0.015628112784496322     0.89193538989430121      
 37, 0.013938587078064250     0.90587397697236549      
 38, 0.012379666154859701     0.91825364312722524      
 39, 0.010951243136991251     0.92920488626421649      
 40, 0.0096507830144735539    0.93885566927869002      
 41, 0.0084738582566109364    0.94732952753530097      
 42, 0.0074146259745345548    0.95474415350983555      
 43, 0.0064662435824429246    0.96121039709227851      
 44, 0.0056212231142827853    0.96683162020656122      
 45, 0.0048717266990450708    0.97170334690560634      
 46, 0.0042098073105878630    0.97591315421619418      
 47, 0.0036275999165703964    0.97954075413276465      
 48, 0.0031174686783026818    0.98265822281106729      
 49, 0.0026721160099737302    0.98533033882104104      
 50, 0.0022846591885275322    0.98761499800956853      
 51, 0.0019486798960970148    0.98956367790566557      
 52, 0.0016582516423517923    0.99122192954801736      
 53, 0.0014079495076571762    0.99262987905567457      
 54, 0.0011928461106539983    0.99382272516632852      
 55, 0.0010084971662802015    0.99483122233260868      
 56, 0.00085091948404891532   0.99568214181665760      
 57, 0.00071656377604119542   0.99639870559269883      
 58, 0.00060228420831048650   0.99700098980100937      
 59, 0.00050530624256557675   0.99750629604357488      
 60, 0.00042319397814867202   0.99792949002172360      
 61, 0.00035381791615708398   0.99828330793788067      
 62, 0.00029532382517950324   0.99857863176306016      
 63, 0.00024610318764958566   0.99882473495070978      
//] [neg_binomial_example2_1 end of Quickbook]

*/
