// Copyright John Maddock 2007. // Copyright Paul A. Bristow 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) // Note that this file contains quickbook mark-up as well as code // and comments, don't change any of the special comment mark-ups! double some_value = 2.; //[policy_ref_snip3 #include using namespace boost::math::policies; using boost::math::tgamma; // Define a new policy *not* internally promoting RealType to double: typedef policy< promote_double > my_policy; // Call the function, applying the new policy: double t1 = tgamma(some_value, my_policy()); // Alternatively we could use helper function make_policy, // and concisely define everything at the call site: double t2 = tgamma(some_value, make_policy(promote_double())); //] //[\policy_ref_snip3] #include using std::cout; using std::endl; int main() { cout << "tgamma(some_value, my_policy()) = " << t1 << ", tgamma(some_value, make_policy(promote_double()) = " << t2 << endl; }