Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > b5d6e5e84fc6929edbdeef5ef92c2500 > files > 1035

boost-examples-1.42.0-3.2mdv2010.1.i586.rpm

//  Copyright John Maddock 2007.
//  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 = 0;

//[policy_ref_snip1

#include <boost/math/special_functions/gamma.hpp>

using namespace boost::math::policies;
using namespace boost::math;

// Define a policy:
typedef policy<
      domain_error<errno_on_error>, 
      pole_error<errno_on_error>,
      overflow_error<errno_on_error>,
      policies::evaluation_error<errno_on_error> 
      > my_policy;
      
// call the function:
double t1 = tgamma(some_value, my_policy());

// Alternatively we could use make_policy and define everything at the call site:
double t2 = tgamma(some_value, make_policy(
         domain_error<errno_on_error>(), 
         pole_error<errno_on_error>(),
         overflow_error<errno_on_error>(),
         policies::evaluation_error<errno_on_error>() 
      ));

//]

#include <iostream>

int main()
{
   std::cout << t1 << " " << t2 << std::endl;
}