<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Configuration and Policies</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../index.html" title="Math Toolkit">
<link rel="up" href="../main_overview.html" title="Overview">
<link rel="prev" href="compilers_overview.html" title="Compilers">
<link rel="next" href="threads.html" title="Thread Safety">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilers_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="threads.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="math_toolkit.main_overview.pol_overview"></a><a class="link" href="pol_overview.html" title="Configuration and Policies"> Configuration
      and Policies</a>
</h3></div></div></div>
<p>
        </p>
<p>
          Policies are a powerful fine-grain mechanism that allow you to customise
          the behaviour of this library according to your needs. There is more information
          available in the <a class="link" href="../policy/pol_tutorial.html" title="Policy Tutorial">policy
          tutorial</a> and the <a class="link" href="../policy/pol_ref.html" title="Policy Reference">policy
          reference</a>.
        </p>
<p>
        </p>
<p>
          Generally speaking, unless you find that the <a class="link" href="../policy/pol_tutorial/policy_tut_defaults.html" title="Policies Have Sensible Defaults">default
          policy behaviour</a> when encountering 'bad' argument values does not
          meet your needs, you should not need to worry about policies.
        </p>
<p>
        </p>
<p>
          Policies are a compile-time mechanism that allow you to change error-handling
          or calculation precision either program wide, or at the call site.
        </p>
<p>
        </p>
<p>
          Although the policy mechanism itself is rather complicated, in practice
          it is easy to use, and very flexible.
        </p>
<p>
        </p>
<p>
          Using policies you can control:
        </p>
<p>
        </p>
<div class="itemizedlist"><ul type="disc">
<li>
              <a class="link" href="../policy/pol_ref/error_handling_policies.html" title="Error Handling Policies">How
              results from 'bad' arguments are handled</a>, including those that
              cannot be fully evaluated.
            </li>
<li>
              How <a class="link" href="../policy/pol_ref/internal_promotion.html" title="Internal Floating-point Promotion Policies">accuracy
              is controlled by internal promotion</a> to use more precise types.
            </li>
<li>
              What working <a class="link" href="../policy/pol_ref/precision_pol.html" title="Precision Policies">precision</a>
              should be used to calculate results.
            </li>
<li>
              What to do when a <a class="link" href="../policy/pol_ref/assert_undefined.html" title="Mathematically Undefined Function Policies">mathematically
              undefined function</a> is used: Should this raise a run-time or
              compile-time error?
            </li>
<li>
              Whether <a class="link" href="../policy/pol_ref/discrete_quant_ref.html" title="Discrete Quantile Policies">discrete
              functions</a>, like the binomial, should return real or only integral
              values, and how they are rounded.
            </li>
<li>
              How many iterations a special function is permitted to perform in a
              series evaluation or root finding algorithm before it gives up and
              raises an <a class="link" href="error_handling.html#evaluation_error">evaluation_error</a>.
            </li>
</ul></div>
<p>
        </p>
<p>
          You can control policies:
        </p>
<p>
        </p>
<div class="itemizedlist"><ul type="disc">
<li>
              Using <a class="link" href="../policy/pol_ref/policy_defaults.html" title="Using macros to Change the Policy Defaults">macros</a>
              to change any default policy: the is the prefered method for installation
              wide policies.
            </li>
<li>
              At your chosen <a class="link" href="../policy/pol_ref/namespace_pol.html" title="Setting Polices at Namespace Scope">namespace
              scope</a> for distributions and/or functions: this is the prefered
              method for project, namespace, or translation unit scope policies.
            </li>
<li>
              In an ad-hoc manner <a class="link" href="../policy/pol_tutorial/ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">by
              passing a specific policy to a special function</a>, or to a <a class="link" href="../policy/pol_tutorial/ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">statistical
              distribution</a>.
            </li>
</ul></div>
<p>
      </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
      Thijs van den Berg<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="compilers_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="threads.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
