// 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 using std::cout; using std::endl; //[policy_eg_3 #include 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, // Do not promote to double. discrete_quantile // Round result to nearest integer. > mypolicy; // // Then define a new distribution that uses it: typedef boost::math::binomial_distribution 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 */