mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04:00 
			
		
		
		
	
		
			
	
	
		
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|  | //  Copyright John Maddock 2007.
 | ||
|  | //  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)
 | ||
|  | 
 | ||
|  | #ifdef _MSC_VER
 | ||
|  | # pragma warning (disable : 4305) // 'initializing' : truncation from 'long double' to 'const eval_type'
 | ||
|  | # pragma warning (disable : 4244) //  conversion from 'long double' to 'const eval_type'
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #include <iostream>
 | ||
|  | using std::cout; using std::endl; | ||
|  | 
 | ||
|  | //[policy_eg_3
 | ||
|  | 
 | ||
|  | #include <boost/math/distributions/binomial.hpp>
 | ||
|  | using boost::math::binomial_distribution; | ||
|  | 
 | ||
|  | // Begin by defining a policy type, that gives the behaviour we want:
 | ||
|  | 
 | ||
|  | //using namespace boost::math::policies; or explicitly
 | ||
|  | using boost::math::policies::policy; | ||
|  | 
 | ||
|  | using boost::math::policies::promote_float; | ||
|  | using boost::math::policies::discrete_quantile; | ||
|  | using boost::math::policies::integer_round_nearest; | ||
|  | 
 | ||
|  | typedef policy< | ||
|  |    promote_float<false>, // Do not promote to double.
 | ||
|  |    discrete_quantile<integer_round_nearest> // Round result to nearest integer.
 | ||
|  | > mypolicy; | ||
|  | //
 | ||
|  | // Then define a new distribution that uses it:
 | ||
|  | typedef boost::math::binomial_distribution<float, mypolicy> mybinom; | ||
|  | 
 | ||
|  | //  And now use it to get the quantile:
 | ||
|  | 
 | ||
|  | int main() | ||
|  | { | ||
|  |    cout << "quantile(mybinom(200, 0.25), 0.05) is: " << | ||
|  |       quantile(mybinom(200, 0.25), 0.05) << endl; | ||
|  | } | ||
|  | 
 | ||
|  | //]
 | ||
|  | 
 | ||
|  | /*
 | ||
|  | 
 | ||
|  | Output: | ||
|  | 
 | ||
|  |   quantile(mybinom(200, 0.25), 0.05) is: 40 | ||
|  | 
 | ||
|  | */ | ||
|  | 
 |