mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-04 05:50:31 -05:00 
			
		
		
		
	
		
			
	
	
		
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								// test_real_concept.cpp
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Copyright Paul A. Bristow 2010.
							 | 
						||
| 
								 | 
							
								// Copyright John Maddock 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)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Tests real_concept for Negative Binomial and Geometric Distribution.
							 | 
						||
| 
								 | 
							
								// find_upper_bound ...
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/math/concepts/real_concept.hpp> // for real_concept
							 | 
						||
| 
								 | 
							
								using ::boost::math::concepts::real_concept;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/math/distributions/geometric.hpp> // for geometric_distribution
							 | 
						||
| 
								 | 
							
								using boost::math::geometric_distribution;
							 | 
						||
| 
								 | 
							
								using boost::math::geometric; // using typedef for geometric_distribution<double> 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/math/distributions/negative_binomial.hpp> // for some comparisons.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <iostream>
							 | 
						||
| 
								 | 
							
								using std::cout;
							 | 
						||
| 
								 | 
							
								using std::endl;
							 | 
						||
| 
								 | 
							
								using std::setprecision;
							 | 
						||
| 
								 | 
							
								using std::showpoint;
							 | 
						||
| 
								 | 
							
								#include <limits>
							 | 
						||
| 
								 | 
							
								using std::numeric_limits;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template <class RealType>
							 | 
						||
| 
								 | 
							
								void test_spot(RealType)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    using boost::math::negative_binomial_distribution;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // NOT boost::math::negative_binomial or boost::math::geometric 
							 | 
						||
| 
								 | 
							
								    // - because then you get the default negative_binomial_distribution<double>!!!
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    RealType k = static_cast<RealType>(2.L);
							 | 
						||
| 
								 | 
							
								    RealType alpha = static_cast<RealType>(0.05L);
							 | 
						||
| 
								 | 
							
								    RealType p = static_cast<RealType>(0.5L);
							 | 
						||
| 
								 | 
							
								    RealType result;
							 | 
						||
| 
								 | 
							
								    result = negative_binomial_distribution<RealType>::find_lower_bound_on_p(static_cast<RealType>(k), static_cast<RealType>(1), static_cast<RealType>(alpha));
							 | 
						||
| 
								 | 
							
								    result = negative_binomial_distribution<RealType>::find_lower_bound_on_p(k, 1, alpha);
							 | 
						||
| 
								 | 
							
								    result = geometric_distribution<RealType>::find_lower_bound_on_p(k, alpha);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int main()
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  test_spot(boost::math::concepts::real_concept(0.)); // Test real concept.
							 | 
						||
| 
								 | 
							
								  return 0;
							 | 
						||
| 
								 | 
							
								} 
							 |