summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/math/example/policy_ref_snip3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/math/example/policy_ref_snip3.cpp')
-rw-r--r--src/boost/libs/math/example/policy_ref_snip3.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/boost/libs/math/example/policy_ref_snip3.cpp b/src/boost/libs/math/example/policy_ref_snip3.cpp
new file mode 100644
index 00000000..b3820ad3
--- /dev/null
+++ b/src/boost/libs/math/example/policy_ref_snip3.cpp
@@ -0,0 +1,40 @@
+// 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 <boost/math/special_functions/gamma.hpp>
+
+using namespace boost::math::policies;
+using boost::math::tgamma;
+
+// Define a new policy *not* internally promoting RealType to double:
+typedef policy<
+ promote_double<false>
+ > 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<false>()));
+
+//] //[\policy_ref_snip3]
+
+#include <iostream>
+using std::cout; using std::endl;
+
+int main()
+{
+ cout << "tgamma(some_value, my_policy()) = " << t1
+ << ", tgamma(some_value, make_policy(promote_double<false>()) = " << t2 << endl;
+}